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
- 2. Connessione FortiLink
- 3. Layer 2: LLDP, MAC, trunk e protezione dai loop
- 4. Porte fisiche e transceiver
- 5. Risorse di sistema e log
- 6. Cattura del traffico
- 7. Scenari comuni: da dove partire
- 8. Link utili
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).

💡 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).
execute ssh @
Per tornare al FortiGate digita exit.
1.3 Tabella riepilogativa dei comandi
| Comando | Dove | A cosa serve |
|---|---|---|
execute switch-controller get-conn-status | FortiGate / FortiSwitch | Stato della connessione FortiLink |
execute switch-controller get-sync-status all | FortiGate | Sincronizzazione della configurazione |
execute switch-controller diagnose-connection | FortiGate | Verifica guidata di FortiLink, DHCP e NTP |
execute switch-controller get-physical-conn standard | FortiGate | Topologia fisica FortiLink |
diagnose debug application fortilinkd 3 | FortiGate | Debug del rilevamento FortiLink |
get switch lldp auto-isl-status | FortiSwitch | Formazione automatica degli ISL |
get switch lldp neighbors-summary | FortiSwitch | Vicini LLDP per porta |
diagnose switch mac-address list | FortiSwitch | Tabella MAC |
diagnose netlink aggregate name | FortiGate | Stato LACP dell'aggregato |
diagnose switch trunk list | FortiSwitch | Stato di trunk e membri |
diagnose switch-controller switch-info stp | FortiGate | Spanning Tree |
diagnose switch mrp status | FortiSwitch | Stato dell'anello MRP |
diagnose loop-guard status | FortiSwitch | Stato del Loop Guard |
diagnose switch-controller switch-info port-stats | FortiGate | Contatori e stato di una porta |
diagnose switch physical-port linerate up | FortiSwitch | Banda TX/RX per porta |
get switch modules summary | FortiSwitch | Transceiver SFP |
get system performance status | FortiSwitch | CPU, memoria, uptime |
fn top / diagnose sys top | FortiSwitch | Processi |
diagnose debug crashlog read | FortiSwitch | Crash dei processi |
execute log display | FortiSwitch | Log in console |
diagnose debug report | FortiSwitch | Report completo per il supporto |
diagnose sniffer packet | FortiGate / FortiSwitch | Cattura del traffico |
2. Connessione FortiLink
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
execute switch-controller get-conn-statusEseguito 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.

Lato FortiGate
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.

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:
Cconfig sync,Uupgrading,Sstaged,Driavvio ritardato in attesa,Eerrore di sincronizzazione della configurazione (vedi get-sync-status),2/3switch Layer 2/Layer 3,VVXLAN,Ttunnel,Xesterno. - VERSION: utile per individuare switch con firmware diversi o non compatibili (vedi sezione 1.1).

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).

2.2 Stato della sincronizzazione
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.

2.3 Diagnosi guidata della connessione
execute switch-controller diagnose-connectionEsegue 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.

2.4 Topologia fisica FortiLink
execute switch-controller get-physical-conn standardMostra 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.

2.5 Debug di FortiLink
diagnose debug application fortilinkd 3
diagnose debug enableAttiva 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.

Per interromperlo:
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
get switch lldp auto-isl-statusFortiLink 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.

3.2 Vicini LLDP
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.

Dal FortiGate puoi ottenere le stesse informazioni senza collegarti allo switch:
diagnose switch-controller switch-info lldp neighbors-summary
diagnose switch-controller switch-info lldp neighbors-detail 
La versione detail aggiunge chassis ID, nome e descrizione del sistema remoto (con versione firmware) e il numero di serie.

3.3 Tabella degli indirizzi MAC
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).

Equivalente dal FortiGate:
diagnose switch-controller switch-info mac-table 

3.4 Stato LACP dell'aggregato FortiLink
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.

Come leggere lo stato attore/partner (6 lettere, es. ASAIEE):
| Posizione | Valori | Significato |
|---|---|---|
| 1 | A / P | LACP Active o Passive |
| 2 | S / F | Velocità LACP Slow o Fast |
| 3 | A / I | Aggregabile o Individuale |
| 4 | I / O | Porta in sync o fuori sync |
| 5 | E / D | Raccolta dei frame abilitata o disabilitata |
| 6 | E / D | Distribuzione 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.

3.5 Stato dei trunk
diagnose switch-controller switch-info trunk status
diagnose switch trunk listIl 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.


3.6 Spanning Tree (STP)
diagnose switch-controller switch-info stpEseguito 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.

| Flag | Significato |
|---|---|
| EN | STP abilitato sulla porta |
| ED | Porta edge (verso host finali) |
| LP | Loop Protection attivata |
| RG | Root Guard attivato |
| BG | BPDU Guard attivato |
| IC | Porta PVST incoerente |
| MV | VLAN 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
diagnose switch mrp statusPer 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.


Per il debug del demone MRP (mrpd), utile quando l'anello cambia stato senza un motivo evidente:
diagnose debug reset
diagnose debug enable
diagnose debug application mrpd -1Al termine disattiva il debug con diagnose debug disable e diagnose debug reset.
3.8 Loop Guard
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.

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

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

4. Porte fisiche e transceiver
4.1 Stato e contatori di una porta
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.

4.2 Banda utilizzata per porta
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.


4.3 Transceiver SFP
get switch modules summary
get switch modules detailIl 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.

5. Risorse di sistema e log
5.1 CPU, memoria e uptime
get system performance statusFornisce 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.

5.2 Processi
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).


5.3 Crash log
diagnose debug crashlog readElenca 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.


5.4 Log in console
execute log filter view-lines 500
execute log displayIl 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.

5.5 Debug report per il supporto
diagnose debug reportRaccoglie 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.

6. Cattura del traffico
6.1 Sniffer sull'interfaccia FortiLink
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,
0per una cattura continua (interrompi con Ctrl+C). - Formato dell'ora:
aper l'ora assoluta UTC,lper l'ora locale.

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:
diagnose sniffer packet flink "port 5246 and ether host " 4 0 a
diagnose sniffer packet flink "ether host " 4 0 a6.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.
config switch interface
edit port4
set packet-sampler enabled
set packet-sample-rate 2
next
end
diagnose sniffer packet sp4

⚠️ 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):
config system sniffer-profile
edit "PC"
set filter "host 10.0.10.1 and port 53 and proto 17"
set switch-interface "port1"
next
endNell'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).

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.

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:
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
endEquivalente sulla CLI del FortiSwitch:
config switch mirror
edit "PC"
set status active
set dst "port2"
set src-ingress "port1"
set src-egress "port1"
next
end
RSPAN
Dal FortiGate:
config switch-controller traffic-sniffer
set mode rspan
config target-port
edit
set in-ports "port1"
set out-ports "port1"
next
end
endSulla CLI del FortiSwitch si abilita la VLAN RSPAN e si crea il mirror che vi incapsula il traffico:
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
ERSPAN
Dal FortiGate, indicando l'IP del collettore:
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
endEquivalente sulla CLI del FortiSwitch:
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
7. Scenari comuni: da dove partire
| Problema | Comandi da usare, in ordine |
|---|---|
| Switch offline o Authorized/Down | Compatibilità → get-conn-status → diagnose-connection → get-physical-conn → debug FortiLink |
| Nuovo switch non rilevato | diagnose-connection → LLDP → debug FortiLink → sniffer FortiLink |
| Configurazione non applicata | get-sync-status → flag E in get-conn-status |
| Porta disattivata o rete lenta per un loop | Loop Guard → tabella MAC → STP → log |
| Link lento o instabile | port-stats → banda → SFP → LACP |
| Ridondanza ad anello persa | MRP → get-physical-conn → LLDP |
| Switch che si riavvia o CPU alta | performance → processi → crash log → debug report |
| Analisi del traffico di un host | tabella MAC per trovare la porta → sniffer, pcap o SPAN |
8. Link utili
- Troubleshooting Tip: Possible reason for FortiLink instability
- Troubleshooting Tip: FortiSwitch in FortiLink goes offline when FortiOS upgraded to v7.6.1 or above
- Troubleshooting Tip: Fix FortiSwitch showing with the 'Offline' status
- Technical Guide: FortiSwitch Spanning Tree Protocol (STP) troubleshooting
- Troubleshooting Tip: FortiGate FortiLink fails to add a FortiSwitch with error 'add fortilink error:-1'




