Raccolta ragionata dei comandi CLI per diagnosticare FortiLink, Layer 2, porte, risorse di sistema e cattura del traffico su FortiSwitch gestiti da FortiGate

Questa guida raccoglie i comandi CLI più utili per diagnosticare e risolvere i problemi dei FortiSwitch gestiti da un FortiGate tramite FortiLink. Per ogni comando trovi dove eseguirlo (FortiGate o FortiSwitch), a cosa serve, come leggere l'output e in quali scenari usarlo. I comandi sono raggruppati per argomento: connessione FortiLink, Layer 2, porte fisiche, risorse di sistema e cattura del traffico.

ℹ️ Convenzioni usate nella guida

Nei comandi i valori da sostituire sono indicati tra parentesi angolari: è il nome dello switch gestito (come compare nella colonna SWITCH-ID), il nome della porta (es. port4), il nome del trunk. Negli screenshot hostname, numeri di serie, indirizzi IP e MAC sono stati oscurati.

Indice

1. Prima di iniziare

In un'architettura FortiLink il FortiGate fa da switch controller: la configurazione degli switch si fa dal FortiGate e viene sincronizzata sugli switch. Molti comandi di diagnostica esistono quindi in due versioni: una sul FortiGate (execute switch-controller ... o diagnose switch-controller switch-info ... ), che interroga lo switch per conto tuo, e una equivalente sulla CLI del FortiSwitch (diagnose switch ..., get switch ...).

1.1 Compatibilità FortiLink tra FortiOS e FortiSwitchOS

Prima di analizzare qualsiasi problema di connessione verifica che la combinazione di versioni FortiOS (FortiGate) e FortiSwitchOS sia supportata. Fortinet pubblica una matrice di compatibilità in cui le combinazioni consigliate sono marcate con R. Usare versioni non supportate può causare switch offline, funzioni dello switch controller non disponibili o problemi dopo un aggiornamento (vedi i link utili in fondo, in particolare l'articolo sugli switch che vanno offline dopo l'aggiornamento a FortiOS 7.6.1).

Matrice di compatibilità FortiLink tra versioni FortiOS e FortiSwitchOS
Figura 1 – Matrice di compatibilità FortiLink (fonte: Fortinet Document Library)

💡 Ordine di aggiornamento

Quando aggiorni l'infrastruttura, controlla la matrice per entrambe le versioni di destinazione. In genere si aggiornano prima i FortiSwitch e poi il FortiGate, così che lo switch controller non risulti più recente di quanto supportato dagli switch.

1.2 Accesso alla CLI del FortiSwitch dal FortiGate

Per i comandi da eseguire direttamente sullo switch non serve una sessione separata: dalla CLI del FortiGate puoi aprire una sessione SSH verso l'indirizzo FortiLink dello switch (lo trovi nella colonna ADDRESS di get-conn-status).

FortiOS CLI
execute ssh @
Accesso SSH a un FortiSwitch dalla CLI del FortiGate
Figura 2 – Sessione SSH verso il FortiSwitch avviata dal FortiGate

Per tornare al FortiGate digita exit.

ComandoDoveA cosa serve
execute switch-controller get-conn-statusFortiGate / FortiSwitchStato della connessione FortiLink
execute switch-controller get-sync-status allFortiGateSincronizzazione della configurazione
execute switch-controller diagnose-connectionFortiGateVerifica guidata di FortiLink, DHCP e NTP
execute switch-controller get-physical-conn standardFortiGateTopologia fisica FortiLink
diagnose debug application fortilinkd 3FortiGateDebug del rilevamento FortiLink
get switch lldp auto-isl-statusFortiSwitchFormazione automatica degli ISL
get switch lldp neighbors-summaryFortiSwitchVicini LLDP per porta
diagnose switch mac-address listFortiSwitchTabella MAC
diagnose netlink aggregate name FortiGateStato LACP dell'aggregato
diagnose switch trunk listFortiSwitchStato di trunk e membri
diagnose switch-controller switch-info stpFortiGateSpanning Tree
diagnose switch mrp statusFortiSwitchStato dell'anello MRP
diagnose loop-guard statusFortiSwitchStato del Loop Guard
diagnose switch-controller switch-info port-statsFortiGateContatori e stato di una porta
diagnose switch physical-port linerate upFortiSwitchBanda TX/RX per porta
get switch modules summaryFortiSwitchTransceiver SFP
get system performance statusFortiSwitchCPU, memoria, uptime
fn top / diagnose sys topFortiSwitchProcessi
diagnose debug crashlog readFortiSwitchCrash dei processi
execute log displayFortiSwitchLog in console
diagnose debug reportFortiSwitchReport completo per il supporto
diagnose sniffer packetFortiGate / FortiSwitchCattura del traffico

Quando uno switch risulta offline, non autorizzato o con configurazione non allineata, parti da questa sezione: verifica lo stato della connessione, la sincronizzazione, la topologia fisica e, se serve, attiva il debug.

2.1 Stato della connessione (get-conn-status)

Lato FortiSwitch

FortiOS CLI
execute switch-controller get-conn-status

Eseguito sullo switch mostra lo stato della connessione verso il FortiGate: Connection (deve essere Connected), versione firmware del FortiGate, Remote Address (l'indirizzo FortiLink del FortiGate), orario di aggancio e versione DTLS del canale di gestione.

Output di execute switch-controller get-conn-status eseguito sulla CLI del FortiSwitch
Figura 3 – get-conn-status eseguito sul FortiSwitch

Lato FortiGate

FortiOS CLI
execute switch-controller get-conn-status
execute switch-controller get-conn-status 

Senza argomenti elenca tutti gli switch gestiti dall'interfaccia FortiLink con versione firmware, stato, flag, indirizzo, orario di aggancio e numero di serie. In fondo all'output il riepilogo Managed-Switches indica quanti switch sono up e quanti down.

Output di execute switch-controller get-conn-status sul FortiGate con l'elenco degli switch gestiti
Figura 4 – Elenco degli switch gestiti visto dal FortiGate

Come leggere le colonne principali:

  • STATUS: Authorized/Up è lo stato normale. Authorized/Down indica uno switch autorizzato ma non raggiungibile (alimentazione, cablaggio, uplink o ISL): verifica la topologia fisica e il debug FortiLink.
  • FLAG: C config sync, U upgrading, S staged, D riavvio ritardato in attesa, E errore di sincronizzazione della configurazione (vedi get-sync-status), 2/3 switch Layer 2/Layer 3, V VXLAN, T tunnel, X esterno.
  • VERSION: utile per individuare switch con firmware diversi o non compatibili (vedi sezione 1.1).
Spiegazione delle colonne dell'output get-conn-status: switch ID, versione firmware, stato, indirizzo e seriale
Figura 5 – Significato delle colonne di get-conn-status

Aggiungendo lo switch ID ottieni il dettaglio del singolo switch: stato di amministrazione, tipo di connessione (capwap), immagine firmware, seriale e lo stato di tutte le porte, con l'indicazione di quelle che fanno parte di un trunk FortiLink o ISL e l'elenco delle interfacce aggregate (ISL, ICL MCLAG, trunk FortiLink).

Dettaglio di get-conn-status per un singolo switch con stato delle porte e trunk ISL
Figura 6 – Dettaglio di un singolo switch

2.2 Stato della sincronizzazione

FortiOS CLI
execute switch-controller get-sync-status all
execute switch-controller get-sync-status group 
execute switch-controller get-sync-status name 
execute switch-controller get-sync-status switch-id 

Mostra per ogni switch lo stato di sincronizzazione della configurazione, della tabella MAC e dell'eventuale aggiornamento firmware via HTTP. Uno switch che resta a lungo in Synchronizing o Pending (o con il flag E in get-conn-status) ha un problema nell'applicare la configurazione inviata dal FortiGate.

Output di execute switch-controller get-sync-status all
Figura 7 – Stato di sincronizzazione degli switch

2.3 Diagnosi guidata della connessione

FortiOS CLI
execute switch-controller diagnose-connection

Esegue una serie di controlli sull'interfaccia FortiLink e sui servizi da cui dipende: interfaccia FortiLink abilitata, server DHCP sull'interfaccia (assegna gli indirizzi agli switch), server NTP e sua sincronizzazione, modalità HA. Ogni voce riporta OK o l'errore riscontrato: è il primo comando da lanciare quando nuovi switch non vengono rilevati.

Output di execute switch-controller diagnose-connection
Figura 8 – Verifica guidata di FortiLink, DHCP, NTP e HA

2.4 Topologia fisica FortiLink

FortiOS CLI
execute switch-controller get-physical-conn standard

Mostra il grafo dei collegamenti dal punto di vista del FortiGate, organizzato per livelli: il FortiGate con le sue porte FortiLink, gli switch di Tier 1 collegati direttamente e quelli di Tier 2+ collegati a valle (anche tramite anello). Per ogni collegamento sono indicate le porte locali e remote. Senza il parametro standard il comando restituisce Command fail.

⚠️ Quando il grafo è incompleto

Lo switch non compare se non è autorizzato, se è in stato idle o se il peer ISL riporta informazioni incoerenti. In questi casi controlla get-conn-status e lo stato LLDP/ISL.

Output di execute switch-controller get-physical-conn standard con la topologia FortiLink per livelli
Figura 9 – Topologia FortiLink per livelli
FortiOS CLI
diagnose debug application fortilinkd 3
diagnose debug enable

Attiva sul FortiGate il debug del demone fortilinkd, che gestisce il rilevamento e l'aggancio degli switch. Il livello 3 è quello consigliato: mostra i pacchetti di discovery ricevuti per porta, il seriale dello switch e la macchina a stati della connessione (es. FL_STATE_WAIT_CONN). Il debug resta attivo per 30 minuti.

Debug FortiLink sul FortiGate con diagnose debug application fortilinkd 3
Figura 10 – Debug del rilevamento FortiLink

Per interromperlo:

FortiOS CLI
diagnose debug disable
diagnose debug reset

💡 Quando usarlo

Usa il debug quando uno switch collegato non compare tra i dispositivi gestiti o passa ciclicamente da up a down. Per le cause più comuni consulta anche gli articoli Fortinet nei link utili.

3. Layer 2: LLDP, MAC, trunk e protezione dai loop

3.1 LLDP e formazione automatica degli ISL

FortiOS CLI
get switch lldp auto-isl-status

FortiLink usa LLDP per riconoscere gli altri FortiSwitch e creare automaticamente i trunk ISL (Inter-Switch Link). Per ogni porta il comando mostra il peer (seriale dello switch vicino), la porta remota, se la porta è inserita in un trunk (in-trunk) e con quale nome, e i contatori dei pacchetti LLDP ricevuti. Se in-trunk è No tra due switch collegati, l'ISL non si è formato: verifica cablaggio, VLAN native e versioni firmware.

Output di get switch lldp auto-isl-status con peer, porta e trunk ISL
Figura 11 – Stato degli ISL automatici

3.2 Vicini LLDP

FortiOS CLI
get switch lldp neighbors-summary
get switch lldp neighbors-detail 

Elenca per ogni porta il dispositivo vicino rilevato via LLDP: nome, TTL, capacità (B bridge, R router, W access point, T telefono…) e porta remota. È il modo più rapido per capire cosa è collegato a quale porta e verificare il cablaggio.

Output di get switch lldp neighbors-summary sulla CLI del FortiSwitch
Figura 12 – Vicini LLDP sulla CLI del FortiSwitch

Dal FortiGate puoi ottenere le stesse informazioni senza collegarti allo switch:

FortiOS CLI
diagnose switch-controller switch-info lldp neighbors-summary 
diagnose switch-controller switch-info lldp neighbors-detail  
Comando equivalente dal FortiGate: diagnose switch-controller switch-info lldp neighbors-summary
Figura 13 – Vicini LLDP letti dal FortiGate

La versione detail aggiunge chassis ID, nome e descrizione del sistema remoto (con versione firmware) e il numero di serie.

Dettaglio LLDP di un vicino: chassis ID, nome di sistema, versione e seriale
Figura 14 – Dettaglio LLDP di un vicino

3.3 Tabella degli indirizzi MAC

FortiOS CLI
diagnose switch mac-address list
diagnose switch mac-address filter port-id-map 

Mostra gli indirizzi MAC appresi con VLAN, porta o trunk di apprendimento e flag (dynamic, static, age…). Serve per trovare su quale porta si trova un dispositivo o per verificare che un host stia comunicando sulla VLAN corretta. Con il filtro port-id-map limiti l'output a una porta; un MAC che compare alternativamente su porte diverse è un indizio di loop (vedi Loop Guard).

Tabella MAC del FortiSwitch con VLAN, porta o trunk di apprendimento e flag
Figura 15 – Tabella MAC del FortiSwitch

Equivalente dal FortiGate:

FortiOS CLI
diagnose switch-controller switch-info mac-table 
Tabella MAC di uno switch letta dal FortiGate con diagnose switch-controller switch-info mac-table
Figura 16 – Tabella MAC letta dal FortiGate
Tabella MAC sul FortiSwitch con filtro per porta
Figura 17 – Tabella MAC filtrata per porta

3.4 Stato LACP dell'aggregato FortiLink

FortiOS CLI
diagnose netlink aggregate name 

Eseguito sul FortiGate (es. sull'aggregato FortiLink flink) mostra i parametri dell'aggregato (stato, modalità e velocità LACP, algoritmo di distribuzione, numero di porte) e poi, per ogni membro, lo stato del link, il contatore dei guasti del link, i PDU LACP scambiati e lo stato di attore e partner.

Output di diagnose netlink aggregate name flink: parametri LACP dell'aggregato FortiLink
Figura 18 – Parametri dell'aggregato LACP

Come leggere lo stato attore/partner (6 lettere, es. ASAIEE):

PosizioneValoriSignificato
1A / PLACP Active o Passive
2S / FVelocità LACP Slow o Fast
3A / IAggregabile o Individuale
4I / OPorta in sync o fuori sync
5E / DRaccolta dei frame abilitata o disabilitata
6E / DDistribuzione dei frame abilitata o disabilitata

In condizioni normali entrambi i lati riportano ASAIEE. Un link failure count in aumento indica un collegamento instabile: controlla il transceiver con get switch modules e i contatori di errore con port-stats.

Stato dei membri dell'aggregato LACP: link, contatori di errori e stato attore/partner
Figura 19 – Stato dei membri dell'aggregato

3.5 Stato dei trunk

FortiOS CLI
diagnose switch-controller switch-info trunk status  
diagnose switch trunk list

Il primo comando (dal FortiGate) mostra per un trunk dello switch la modalità (es. lacp-active con auto-isl e mclag-icl), l'algoritmo di bilanciamento, il MAC del trunk e da quanto tempo ciascuna porta è attiva. Il secondo è l'equivalente sulla CLI del FortiSwitch e mostra anche lo stato LACP di ogni membro, con gli stessi flag descritti in sezione 3.4.

Stato dettagliato di un trunk: modalità LACP, algoritmo e porte attive
Figura 20 – Stato di un trunk visto dal FortiGate
Stato dei membri di un trunk LACP e legenda dei flag
Figura 21 – Stato dei membri del trunk

3.6 Spanning Tree (STP)

FortiOS CLI
diagnose switch-controller switch-info stp

Eseguito sul FortiGate (puoi aggiungere lo switch ID per limitare l'output a un solo switch), mostra l'istanza MST: priorità e MAC del bridge locale, root bridge e regional root con costo e porta verso la root, timer e eventi TCN (topology change), con l'indicazione di quando e da quale porta sono stati ricevuti. La tabella finale riporta per ogni porta costo, priorità, ruolo (ROOT, DESIGNATED, ALTERNATE, DISABLED), stato (FORWARDING, DISCARDING) e flag.

Stato Spanning Tree: istanza MST, root bridge, ruoli e stati delle porte
Figura 22 – Stato dello Spanning Tree
FlagSignificato
ENSTP abilitato sulla porta
EDPorta edge (verso host finali)
LPLoop Protection attivata
RGRoot Guard attivato
BGBPDU Guard attivato
ICPorta PVST incoerente
MVVLAN PVST non corrispondente

💡 Cosa cercare

Molti eventi TCN recenti indicano porte che cambiano stato di continuo (dispositivi che si accendono e spengono, link instabili). Una porta con flag BG o RG è stata bloccata perché ha ricevuto BPDU dove non dovrebbe: tipicamente uno switch non gestito collegato a una porta edge. Per approfondire vedi la guida Fortinet sullo STP nei link utili.

3.7 Anello MRP

FortiOS CLI
diagnose switch mrp status

Per le topologie ad anello con MRP (Media Redundancy Protocol) il comando mostra dominio, ruolo configurato e operativo (Manager o Client), VLAN di controllo, le due porte d'anello con il loro stato e lo stato dell'anello:

  • CLOSE – l'anello è integro: il manager tiene una delle due porte d'anello in Blocking per evitare il loop. È lo stato normale.
  • OPEN – l'anello è interrotto in un punto: il manager mette entrambe le porte in Forwarding per mantenere la connettività. Il traffico passa ancora, ma la ridondanza è persa: individua il tratto guasto con LLDP e get-physical-conn.
Output di diagnose switch mrp status con anello MRP aperto (ring state OPEN)
Figura 23 – Anello MRP aperto
Output di diagnose switch mrp status con anello MRP chiuso e una porta in blocking
Figura 24 – Anello MRP chiuso con una porta in blocking

Per il debug del demone MRP (mrpd), utile quando l'anello cambia stato senza un motivo evidente:

FortiOS CLI
diagnose debug reset
diagnose debug enable
diagnose debug application mrpd -1

Al termine disattiva il debug con diagnose debug disable e diagnose debug reset.

3.8 Loop Guard

FortiOS CLI
diagnose loop-guard status
execute loop-guard reset 

Loop Guard rileva i loop sulle porte di accesso (ad esempio un cavo collegato tra due prese della stessa rete) e disattiva la porta coinvolta. Il comando di stato mostra per ogni porta se la funzione è attiva, il timeout di riattivazione automatica, il numero di spostamenti MAC rilevati e l'ultimo evento.

Output di diagnose loop-guard status con lo stato per porta
Figura 25 – Stato del Loop Guard per porta

Quando interviene, nei log dello switch compare un avviso del tipo Loop Guard: loop detected on port16. Shutting down port16.

Log del FortiSwitch: Loop Guard rileva un loop e disattiva la porta
Figura 26 – Loop rilevato e porta disattivata

Dopo aver rimosso la causa del loop puoi riattivare subito la porta, senza attendere il timeout:

Riattivazione della porta con execute loop-guard reset
Figura 27 – Riattivazione manuale della porta

4. Porte fisiche e transceiver

4.1 Stato e contatori di una porta

FortiOS CLI
diagnose switch-controller switch-info port-stats  
diagnose switch physical-ports list 

Il primo comando (FortiGate) e il secondo (FortiSwitch) mostrano lo stato amministrativo e del link, il tipo di interfaccia, MAC, MTU, velocità e duplex, e i contatori di traffico ed errori in ingresso e uscita (unicast, multicast, broadcast, errori, drop, frammenti, collisioni). Errori o drop in crescita indicano problemi di cablaggio, transceiver o negoziazione.

Statistiche di una porta fisica con diagnose switch-controller switch-info port-stats
Figura 28 – Statistiche di una porta

4.2 Banda utilizzata per porta

FortiOS CLI
diagnose switch physical-port linerate up
diagnose switch physical-ports datarate 
diagnose switch physical-ports linerate 

Mostrano in tempo reale pacchetti e banda in trasmissione e ricezione per porta. Con up il comando considera solo le porte attive; in alternativa puoi indicare più porte separate da virgola (es. 1,4). La differenza tra le due modalità: data rate misura solo i dati utili, line rate include anche l'overhead Ethernet (preambolo e inter-frame gap), quindi è più vicino all'occupazione reale del link.

Output di diagnose switch physical-port linerate con pacchetti e banda TX/RX per porta
Figura 29 – Banda per porta in modalità line rate
Differenza tra data rate e line rate sulle porte del FortiSwitch
Figura 30 – Confronto tra data rate e line rate

4.3 Transceiver SFP

FortiOS CLI
get switch modules summary
get switch modules detail

Il riepilogo elenca per ogni porta SFP lo stato del modulo (INSERT o EMPTY), il tipo (es. 1000-Base-LX/SX), il supporto DMI, lo stato RX, produttore, codice e numero di serie. Il dettaglio aggiunge connettore, codifica, distanze supportate per tipo di fibra e data di produzione. È utile per verificare che il modulo sia riconosciuto e adatto alla fibra in uso, e per raccogliere i dati da comunicare in caso di sostituzione.

Output di get switch modules summary e detail con i transceiver SFP installati
Figura 31 – Moduli SFP installati

5. Risorse di sistema e log

5.1 CPU, memoria e uptime

FortiOS CLI
get system performance status

Fornisce in un colpo d'occhio l'utilizzo di CPU (user, system, nice, idle), la percentuale di memoria usata e l'uptime. Un uptime inatteso basso indica un riavvio recente: verifica il crash log.

Output di get system performance status: CPU, memoria e uptime
Figura 32 – Utilizzo di CPU e memoria e uptime

5.2 Processi

FortiOS CLI
fn top
diagnose sys top  

Mostrano i processi in esecuzione con utilizzo di CPU e memoria, come il comando top di Linux. In diagnose sys top premi Shift+P per ordinare per CPU e Shift+M per memoria; esci con q. Tra i processi principali: fortilinkd (FortiLink), stpd (Spanning Tree), mrpd (MRP), lldpmedd (LLDP), igmpsnoopingd (IGMP snooping), cmdbsvr (configurazione), httpsd (GUI).

Output di fn top: processi del FortiSwitch ordinati per utilizzo
Figura 33 – Processi con fn top
Output di diagnose sys top con processi, CPU e memoria
Figura 34 – Processi con diagnose sys top

5.3 Crash log

FortiOS CLI
diagnose debug crashlog read

Elenca i processi terminati o riavviati con data e ora, i riavvii di sistema con la relativa causa (restart_reason) e, in caso di crash, i dettagli dell'errore (es. Segmentation fault) con il dump dei registri. Crash ripetuti dello stesso processo vanno segnalati al supporto Fortinet allegando l'output del debug report.

Output di diagnose debug crashlog read sul FortiSwitch
Figura 35 – Crash log del FortiSwitch
Esempio di crash log con segmentation fault di un'applicazione
Figura 36 – Crash di un'applicazione nel crash log

5.4 Log in console

FortiOS CLI
execute log filter view-lines 500
execute log display

Il primo comando imposta quante righe visualizzare, il secondo mostra i log memorizzati sullo switch: eventi di sistema, accessi amministrativi (utente, metodo e IP di origine), cambi di stato delle porte, interventi di Loop Guard e STP.

Output di execute log display con un evento di accesso amministrativo
Figura 37 – Log visualizzati in console

5.5 Debug report per il supporto

FortiOS CLI
diagnose debug report

Raccoglie in un unico output i risultati di oltre 80 comandi diagnostici (stato di sistema, hardware, trunk, MCLAG, moduli, interfacce, ARP, NTP, IGMP snooping e altro). È il report che il supporto Fortinet chiede di solito all'apertura di un ticket: salvalo tramite il log della sessione SSH.

Comandi raccolti da diagnose debug report
Figura 38 – Comandi raccolti dal debug report

6. Cattura del traffico

FortiOS CLI
diagnose sniffer packet  ""   

Il comando diagnose sniffer packet ha la stessa sintassi sul FortiGate e sul FortiSwitch. Eseguito sul FortiGate sull'interfaccia FortiLink permette di vedere il traffico di gestione tra FortiGate e switch. I parametri:

  • Filtro: sintassi tcpdump (es. host, port, ether host).
  • Livello di dettaglio: 1 solo intestazioni IP; 2 con il payload IP; 3 con le intestazioni Ethernet; 4 intestazioni con il nome dell'interfaccia; 5 e 6 come 2 e 3 con il nome dell'interfaccia.
  • Numero: pacchetti da catturare, 0 per una cattura continua (interrompi con Ctrl+C).
  • Formato dell'ora: a per l'ora assoluta UTC, l per l'ora locale.
Sintassi del comando diagnose sniffer packet: livelli di dettaglio e formato del timestamp
Figura 39 – Sintassi del comando sniffer

Esempi per seguire il traffico di un singolo switch (identificato dal suo MAC). La porta UDP 5246 è quella del canale di controllo CAPWAP usato da FortiLink:

FortiOS CLI
diagnose sniffer packet flink "port 5246 and ether host " 4 0 a
diagnose sniffer packet flink "ether host " 4 0 a

6.2 Sniffer su una porta dello switch

Sul FortiSwitch puoi catturare il traffico di una porta attivando il packet sampler: il traffico campionato viene esposto su un'interfaccia virtuale sp da passare allo sniffer.

FortiOS CLI
config switch interface
    edit port4
        set packet-sampler enabled
        set packet-sample-rate 2
    next
end
diagnose sniffer packet sp4
Configurazione del packet sampler su un'interfaccia del FortiSwitch
Figura 40 – Packet sampler attivo sulla porta
Sniffer del traffico campionato su una porta del FortiSwitch
Figura 41 – Traffico campionato sulla porta

⚠️ Ricordati di disattivarlo

Al termine dell'analisi disattiva il campionamento con set packet-sampler disabled sulla porta, per non caricare inutilmente la CPU dello switch.

6.3 Cattura in file .pcap (sniffer profile)

Per analizzare il traffico con Wireshark crea un profilo di cattura che salva i pacchetti in un file .pcap scaricabile. Il profilo si può creare da CLI o dalla GUI dello switch (System > Packet Capture):

FortiOS CLI
config system sniffer-profile
    edit "PC"
        set filter "host 10.0.10.1 and port 53 and proto 17"
        set switch-interface "port1"
    next
end

Nell'esempio vengono catturati i pacchetti DNS (UDP/53) da e verso l'host 10.0.10.1 sulla porta port1. Da GUI puoi impostare anche il numero massimo di pacchetti e la lunghezza massima catturata (per impostazione predefinita 128 byte: aumentala se ti serve il pacchetto completo).

Creazione di un profilo di cattura pacchetti da GUI e CLI del FortiSwitch
Figura 42 – Creazione del profilo di cattura
FortiOS CLI
execute system sniffer-profile start 
execute system sniffer-profile pause 
execute system sniffer-profile stop 
execute system sniffer-profile upload 
execute system sniffer-profile delete-capture 

La cattura si avvia, mette in pausa e ferma con i comandi sopra; il file si scarica dalla GUI oppure si invia a un server FTP/TFTP con upload.

Avvio, arresto e download della cattura .pcap del profilo
Figura 43 – Gestione e download della cattura

6.4 Mirroring del traffico: SPAN, RSPAN ed ERSPAN

Quando serve analizzare a lungo il traffico di una porta (con un analizzatore o un IDS) conviene copiarlo verso una porta di destinazione:

  • SPAN – copia il traffico verso un'altra porta dello stesso switch;
  • RSPAN – trasporta la copia su una VLAN dedicata fino a una porta di un altro switch;
  • ERSPAN – incapsula la copia in GRE e la invia a un collettore IP raggiungibile anche attraverso reti instradate.

SPAN

Dal FortiGate, sullo switch gestito:

FortiOS CLI
config switch-controller managed-switch
    edit 
        config mirror
            edit "PC"
                set status active
                set dst "port2"
                set src-ingress "port1"
                set src-egress "port1"
            next
        end
    next
end

Equivalente sulla CLI del FortiSwitch:

FortiOS CLI
config switch mirror
    edit "PC"
        set status active
        set dst "port2"
        set src-ingress "port1"
        set src-egress "port1"
    next
end
Configurazione SPAN da FortiGate e da FortiSwitch
Figura 44 – Configurazione SPAN

RSPAN

Dal FortiGate:

FortiOS CLI
config switch-controller traffic-sniffer
    set mode rspan
    config target-port
        edit 
            set in-ports "port1"
            set out-ports "port1"
        next
    end
end

Sulla CLI del FortiSwitch si abilita la VLAN RSPAN e si crea il mirror che vi incapsula il traffico:

FortiOS CLI
config switch vlan
    edit 99
        set rspan-mode enable
    next
end
config switch mirror
    edit "RSPAN"
        set status active
        set mode RSPAN-manual
        set dst "port2"
        set src-ingress "port1"
        set src-egress "port1"
        set encap-vlan-id 99
    next
end
Configurazione RSPAN da FortiGate e da FortiSwitch
Figura 45 – Configurazione RSPAN

ERSPAN

Dal FortiGate, indicando l'IP del collettore:

FortiOS CLI
config switch-controller traffic-sniffer
    set mode erspan-auto
    set erspan-ip 10.0.99.10
    config target-port
        edit 
            set in-ports "port1"
            set out-ports "port1"
        next
    end
end

Equivalente sulla CLI del FortiSwitch:

FortiOS CLI
config switch mirror
    edit "ERSPAN"
        set status active
        set mode ERSPAN-auto
        set src-ingress "port1"
        set src-egress "port1"
        set erspan-collector-ip 10.0.99.10
    next
end
Configurazione ERSPAN da FortiGate e da FortiSwitch
Figura 46 – Configurazione ERSPAN

7. Scenari comuni: da dove partire

ProblemaComandi da usare, in ordine
Switch offline o Authorized/DownCompatibilità → get-conn-status → diagnose-connection → get-physical-conn → debug FortiLink
Nuovo switch non rilevatodiagnose-connection → LLDP → debug FortiLink → sniffer FortiLink
Configurazione non applicataget-sync-status → flag E in get-conn-status
Porta disattivata o rete lenta per un loopLoop Guard → tabella MAC → STP → log
Link lento o instabileport-stats → banda → SFP → LACP
Ridondanza ad anello persaMRP → get-physical-conn → LLDP
Switch che si riavvia o CPU altaperformance → processi → crash log → debug report
Analisi del traffico di un hosttabella MAC per trovare la porta → sniffer, pcap o SPAN

Leave A Comment