Verificare la cache dei vicini ARP e NDP in Sophos Firewall
Se un dispositivo non è raggiungibile nonostante l’indirizzo IP sia corretto, il problema non è necessariamente una regola firewall o una route errata. Nella rete locale, Sophos Firewall necessita anche dell’indirizzo MAC corretto della destinazione. Questa associazione viene memorizzata nella cache dei vicini.
In Network > Neighbors (ARP–NDP) è possibile verificare quale indirizzo MAC e quale interfaccia sono attualmente associati a un indirizzo IP. Per prima cosa si documenta la voce esistente e la si confronta con la situazione reale della rete. La cache interessata va svuotata e riappresa solo se l’associazione è obsoleta.
⚠️ Flush svuota la cache IPv4 o IPv6 selezionata, non una sola riga. Su un firewall di produzione è quindi opportuno registrare prima la voce corrente, limitare l’ambito del test ed evitare di svuotare la cache durante un picco di carico.
Funzione di ARP, NDP e della cache dei vicini
ARP associa un indirizzo IPv4 a un indirizzo MAC nel segmento locale di livello 2. Si tratta di un dispositivo direttamente raggiungibile, in genere nella stessa VLAN. Per IPv6, il Neighbor Discovery Protocol (NDP) svolge questa funzione tramite ICMPv6. Il firewall ha bisogno di queste informazioni prima di poter inviare un pacchetto al vicino successivo tramite un’interfaccia collegata direttamente.
Per impostazione predefinita, le associazioni apprese dinamicamente rimangono nella cache per 600 secondi. In seguito vengono riapprese quando necessario. Una voce obsoleta può comparire dopo la sostituzione di un dispositivo o di una scheda di rete oppure dopo lo spostamento di una VM. Un indirizzo IP duplicato, invece, può far cambiare ripetutamente l’indirizzo MAC visualizzato.
La cache dei vicini riguarda solo i dispositivi direttamente raggiungibili nel rispettivo segmento di livello 2. Per una destinazione remota, il firewall memorizza l’indirizzo MAC del router successivo, non quello del server di destinazione.
Non è la stessa cosa di Proxy ARP: in quel caso il firewall risponde su un’interfaccia, per conto di un altro indirizzo di destinazione, alla relativa richiesta ARP IPv4. Questo caso particolare è trattato separatamente in Configurare e verificare Proxy ARP su Sophos Firewall.
Verificare prima la cache dei vicini
- Aprire Network > Neighbors (ARP–NDP).
- In Show, selezionare IPv4 neighbor cache oppure IPv6 neighbor cache.
- Cercare l’indirizzo IP interessato.
- Annotare l’indirizzo IP, l’indirizzo MAC e l’interfaccia.
- In Static neighbor table, escludere la presenza di un’associazione fissa ma errata per lo stesso indirizzo IP.
- Confrontare l’indirizzo MAC con quello dell’endpoint, dell’hypervisor, dello switch o del router successivo.
L’interfaccia è importante quanto l’indirizzo MAC. Un’associazione IP-MAC corretta sulla porta sbagliata indica spesso un problema di VLAN, bridge, LAG o cablaggio. L’indirizzo MAC previsto si trova, ad esempio, nelle informazioni di rete dell’endpoint, nella tabella MAC dello switch o sul router collegato direttamente. Se la voce manca del tutto, si invia dal firewall un ping mirato all’indirizzo IP interessato e si controlla nuovamente la vista.
Per IPv4, la tabella ARP corrente può essere visualizzata anche nella Device Console. Dopo l’accesso tramite SSH o console, aprire Option 4: Device Console ed eseguire:
system diagnostics utilities arp show
Il comando si limita a leggere lo stato senza modificarlo. È particolarmente utile quando WebAdmin non è raggiungibile o quando occorre controllare rapidamente l’associazione durante un test. Per IPv6, la vista IPv6 neighbor cache in WebAdmin rimane il punto di verifica principale. La procedura di accesso è descritta in Connettersi a Sophos Firewall tramite SSH.
Riapprendere in modo controllato un’associazione obsoleta
Lo svuotamento della cache è un passaggio diagnostico, non una soluzione permanente. Inoltre, non rimuove un’associazione statica errata. Se ricompare la stessa associazione errata, la causa è ancora presente nella rete.
- Documentare l’indirizzo IP, l’indirizzo MAC e l’interfaccia correnti.
- Riprodurre il problema con un singolo ping o tentativo di connessione.
- Se si sospetta un indirizzo IP duplicato o una manipolazione, salvare prima lo stato corrente e una breve acquisizione. Uno svuotamento immediato eliminerebbe questo indizio.
- In Show, selezionare la cache IPv4 o IPv6 interessata.
- Fare clic su Flush. In questo modo viene svuotata la cache selezionata.
- Generare nuovamente traffico mirato dal dispositivo interessato.
- Verificare quale indirizzo MAC e quale interfaccia sono stati riappresi.
- Eseguire nuovamente il test del servizio originale con la stessa origine e la stessa destinazione.
Per un test controllato dalla Device Console, è possibile inviare ad esempio quattro pacchetti a un indirizzo di destinazione documentato:
ping 192.0.2.10 count 4
ping6 2001:db8:10::10 count 4
Questi indirizzi sono esempi e devono essere sostituiti con la destinazione IPv4 o IPv6 effettiva. Un ping riuscito conferma solo la raggiungibilità di base; in seguito occorre comunque verificare il servizio che presentava originariamente il problema.
Durante il riapprendimento può verificarsi un breve ritardo. Ridurre drasticamente il timeout in modo generalizzato è raramente la soluzione migliore: il firewall deve risolvere i vicini più spesso, senza correggere un indirizzo IP duplicato o una porta dello switch errata.
Se, dopo lo svuotamento, solo un indirizzo IP pubblico continua a non passare al nuovo indirizzo MAC del firewall, è probabile che la voce obsoleta si trovi presso il provider o in un router a monte. Per questo caso è disponibile la procedura specifica Risolvere i problemi ARP dopo la migrazione di un firewall.
Creare un vicino statico solo per associazioni fisse
Un vicino statico associa in modo permanente un indirizzo IP a un indirizzo MAC e a un’interfaccia fisica. Per ogni indirizzo IP può esistere una sola associazione di questo tipo. Il firewall controlla le voci statiche prima della cache dinamica e, al momento del salvataggio, rimuove i riferimenti dinamici per lo stesso IP. Se in seguito cambiano l’indirizzo IP, l’indirizzo MAC o la porta, la connessione può interrompersi anche se l’endpoint è configurato correttamente.
Le voci statiche sono quindi adatte a sistemi stabili, come un dispositivo di infrastruttura cablato in modo permanente e dotato di un indirizzo IP fisso. In genere non sono adatte a client DHCP, dispositivi mobili, failover HA o spostamenti di VM e porte dello switch variabili.
In Network > Neighbors (ARP–NDP), visualizzare Static neighbor table e selezionare Add. Impostare quindi i valori seguenti:
- IP version: Selezionare IPv4 o IPv6.
- IPv4/IPv6 address: Inserire l’indirizzo fisso del dispositivo.
- MAC address: Inserire l’indirizzo MAC effettivo del dispositivo.
- Interface: Selezionare l’interfaccia fisica attraverso la quale è raggiungibile il vicino.
Un esempio documentato potrebbe utilizzare 192.0.2.10, 02:00:00:00:00:10 e Port1. Questi valori sono segnaposto e devono essere sostituiti integralmente con l’indirizzo IP, l’indirizzo MAC e la porta reali.
L’opzione Add as a trusted MAC address to prevent a spoofing attempt aggiunge l’associazione IP-MAC anche all’elenco degli indirizzi MAC attendibili. Va attivata solo se questa strategia di protezione viene adottata consapevolmente, poiché una successiva modifica della VM, della NIC o della porta può apparire come un conflitto legittimo. Verificare la Spoof Protection e le impostazioni DoS di Sophos Firewall spiega come queste associazioni interagiscono con reti dinamiche, DHCP e virtualizzazione.
Dopo il salvataggio, si verifica in modo specifico il dispositivo associato. È inoltre opportuno documentare chi dovrà aggiornare la voce in caso di sostituzione dell’hardware o di modifica dell’indirizzo IP o della porta. Senza una responsabilità definita, un’associazione statica può diventare in seguito una causa invisibile di errori.
Verificare i possibili tentativi di avvelenamento dei vicini
Un’associazione statica definisce la combinazione prevista di indirizzo IP, indirizzo MAC e interfaccia. Se lo stesso IP compare con un altro indirizzo MAC, oppure la stessa combinazione IP-MAC compare su un’altra porta associata, il firewall considera la situazione una possibile manipolazione e non aggiorna la cache con l’associazione divergente.
In Network > Neighbors (ARP–NDP) è possibile attivare Log possible neighbor poisoning attempts e salvare con Apply. L’opzione facilita la diagnosi, ma non deve indurre a considerare immediatamente ogni differenza come un attacco. Anche un indirizzo IP duplicato, una scheda di rete sostituita, una VM spostata o una modifica della porta possono generare un conflitto.
I pacchetti ARP IPv4 scartati possono essere visualizzati nella Device Console durante un breve test:
drop-packet-capture 'arp'
In presenza di molte interfacce, l’output può essere limitato a una porta fisica:
drop-packet-capture interface Port1 'arp'
Port1 è un esempio e deve essere sostituito con l’interfaccia interessata. Riprodurre quindi il problema una volta e interrompere l’output in tempo reale con Ctrl+C. Il filtro mostra solo i pacchetti ARP scartati e non è un archivio di log permanente. Per NDP IPv6 o per un’analisi generale dei pacchetti, utilizzare Packet Capture in WebAdmin e limitare in modo mirato origine, destinazione, protocollo e interfaccia.
Interpretare i sintomi più comuni
- La destinazione rimane irraggiungibile dopo la sostituzione di un dispositivo o di una NIC: Confrontare il vecchio indirizzo MAC con il valore appena appreso, svuotare la cache in modo controllato ed eseguire nuovamente il test.
- L’indirizzo MAC cambia ripetutamente: Verificare la presenza di un indirizzo IP duplicato, un lease DHCP, una VM clonata o un comportamento HA. Una voce statica nasconderebbe soltanto il conflitto reale.
- L’associazione compare sull’interfaccia sbagliata: Verificare VLAN, bridge, LAG, porta dello switch e cablaggio.
- Un dispositivo associato staticamente smette di funzionare dopo una modifica: Confrontare l’indirizzo IP, l’indirizzo MAC e la porta fisica con l’associazione, quindi aggiornare o rimuovere consapevolmente la voce.
- Il problema riguarda solo IPv6: Verificare la cache dei vicini IPv6, i Router Advertisements, la VLAN e il percorso ICMPv6. Un comando ARP IPv4 non fornisce alcuna indicazione per questo caso.
- I pacchetti raggiungono il firewall, ma il servizio continua a non funzionare: Verificare separatamente la regola firewall, il NAT, il routing e il percorso di ritorno. La cache dei vicini dimostra solo la consegna locale di livello 2.
Verifica finale
- Sono stati documentati l’indirizzo IP interessato, l’indirizzo MAC previsto e l’interfaccia.
- La cache IPv4 o IPv6 è stata verificata prima di apportare modifiche.
- Se necessario, è stata svuotata solo la cache selezionata ed è stato generato traffico mirato.
- L’associazione riappresa è stata confrontata con l’endpoint, lo switch, l’hypervisor o il router.
- È stata utilizzata un’associazione statica solo per una combinazione IP-MAC-porta permanentemente stabile.
- L’avviso di avvelenamento è stato distinto da un indirizzo IP duplicato, dalla sostituzione di un dispositivo e dalle modifiche di rete.
- Il servizio originale è stato nuovamente verificato dopo il controllo di livello 2.