Quando si cerca di diagnosticare un problema di routing del flusso di rete, una delle prime cose da fare è controllare i percorsi conosciuti da pfSense.
In questo articolo spieghiamo come funziona la tabella di routing in pfSense e i dettagli necessari per una diagnosi efficace.
Visualizza i percorsi
Per cominciare, se non si ha familiarità con il concetto di rotte o tabelle di routing, si consiglia di leggere il breve articolo Table de routage su Wikipedia. /// VOIR LIEN WIKI EN ITALIEN SI VALIDE ////
In pfSense esistono due modi per visualizzare le rotte nella tabella di routing: tramite l’interfaccia grafica o dalla riga di comando.
Per visualizzare la tabella di routing, accedere al menu Diagnostics > Routes:

Il risultato ottenuto alla riga di comando è esattamente lo stesso di quello ottenuto tramite l’interfaccia grafica. Il comando da inserire è :
netstat -rWn
Esempio del risultato ottenuto:

Il contenuto di ciascuna colonna è spiegato di seguito.
Destination
Questa colonna contiene l’host di destinazione (designato dal suo indirizzo IP) o la rete di destinazione (designata dal suo indirizzo IP e dalla subnet mask associata).
La destinazione default corrisponde alla rotta predefinita di pfSense. I flussi destinati a una rete non direttamente nota a pfSense saranno inviati al gateway associato.
Gateway
Un gateway è un router a cui il flusso viene inviato per essere instradato verso una determinata destinazione. Se la colonna indica un link, ad esempio link#1, significa che la rete può essere raggiunta direttamente dall’interfaccia pfSense e che non è necessario alcun instradamento aggiuntivo per instradare il flusso di rete.
Infine, se viene indicato un indirizzo MAC, significa che si tratta di un host locale direttamente raggiungibile.
Flags
Il significato di ciascun flag è il seguente:
- 1 (RTF_PROTO1): instradamento specifico per il protocollo flag #1
- 2 (RTF_PROTO2): instradamento specifico per il protocollo flag #2
- 3 (RTF_PROTO3): instradamento specifico per il protocollo flag #3
- B (RTF_BLACKHOLE): rimuovere i pacchetti durante gli aggiornamenti
- b (RTF_BROADCAST): rappresenta un indirizzo di broadcasting
- D (RTF_DYNAMIC): creato dinamicamente tramite reindirizzamento
- G (RTF_GATEWAY): la destinazione può essere raggiunta tramite un gateway
- H (RTF_HOST): voce specifica per un host (o una rete)
- L (RTF_LLINFO): protocollo di convalida per la traduzione dell’indirizzo fisico (ad es. per arp)
- M (RTF_MODIFIED): modificato dinamicamente dal reindirizzamento
- R (RTF_REJECT): host o rete non raggiungibile
- S (RTF_STATIC): voce aggiunta manualmente
- U (RTF_UP): percorso utilizzabile
- X (RTF_XRESOLVE): un processo esterno gestisce la traduzione dell’indirizzo fisico
Ad esempio, un percorso con i flag UGS significa che è utilizzabile (U), che i pacchetti sono inviati a un gateway (G) e che è stato aggiunto manualmente (S).
Use
Questa colonna è un contatore che rappresenta il numero totale di pacchetti inviati attraverso questo percorso. È molto utile per determinare se una rotta è attualmente in uso; se lo è, il numero continuerà a crescere quando i pacchetti di rete la attraversano.
MTU
La MTU configurata per questa rotta. //// VOIR LIEN WIKI ITALIEN ////
Netif
L’interfaccia di rete utilizzata per questa rotta (ad esempio, igb0; igb1.10; ovpns1; …).
Expire
Questo campo riguarda solo le voci dinamiche. Indica il tempo dopo il quale la rotta scadrà se non è più in uso.
Utilizzare il comando traceroute
L’utilità traceroute è molto utile per verificare la corretta configurazione dei percorsi, in particolare in un ambiente multi-WAN. Questa utility mostra il percorso di un flusso di rete da router a router fino a raggiungere la destinazione.
In pfSense, il traceroute può essere eseguito dal menu Diagnostics > Traceroute:

Per ulteriori informazioni sul funzionamento di questa utility, è possibile leggere il capitolo CFonctionnement de l’utilitaire traceroute su Wikipedia. //// LIEN WIKI /////
Utilizzato dal computer (comando tracert sui sistemi Windows) o da pfSense, traceroute assicura che un flusso di rete sia diretto al gateway giusto (se necessario, all’interfaccia giusta in un ambiente multi-WAN).
Rotte e VPN
A seconda del tipo di VPN utilizzato, un percorso può essere presente o meno nella tabella di routing di pfSense. Per impostazione predefinita, IPsec non utilizza la tabella di routing. IPsec mantiene la propria tabella di routing con voci SPD (security policy database). Ciò significa che la configurazione manuale di un percorso statico in pfSense non consentirà mai di reindirizzare il traffico attraverso un tunnel VPN IPsec. È necessario tenerlo presente quando si configura la strategia di routing e il tunnel VPN IPsec.
OpenVPN utilizza la tabella di routing di pfSense (per essere precisi, è in realtà la tabella di routing di FreeBSD). Ciò significa che le reti raggiungibili tramite un collegamento OpenVPN saranno visualizzate nella tabella di routing.
Allo stesso modo, bisogna tenere presente che, a differenza di OpenVPN, un tunnel IPsec non ha un indirizzo IP. Pertanto, quando si esegue un traceroute, verrà visualizzato un timeout per l’hop corrispondente al tunnel IPsec.
Per saperne di più