In questo documento viene illustrato come risolvere i problemi relativi alla tabella ARP (Address Resolution Protocol) o CAM (Content Addressable Memory) sugli switch Catalyst 6500/6000.
Nessun requisito specifico previsto per questo documento.
Il documento può essere consultato per tutte le versioni software o hardware.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Gli switch Catalyst gestiscono diversi tipi di tabelle personalizzate per lo switching di livello 2 o lo switching multilayer (MLS) e vengono conservate in una memoria molto veloce in modo che molti campi all'interno di un frame o di un pacchetto possano essere confrontati in parallelo.
ARP - Mappa un indirizzo IP a un indirizzo MAC per fornire la comunicazione IP all'interno di un dominio di broadcast di layer 2. Ad esempio, l'host B desidera inviare informazioni all'host A, ma nella cache ARP dell'host A non è presente l'indirizzo MAC di tale host. L'host B genera un messaggio di broadcast per tutti gli host del dominio di broadcast per ottenere l'indirizzo MAC associato all'indirizzo IP dell'host A. Tutti gli host all'interno del dominio di broadcast ricevono la richiesta ARP e solo l'host A risponde con il suo indirizzo MAC.
CAM - Tutti i modelli di switch Catalyst utilizzano una tabella CAM per lo switching di layer 2. Quando i frame arrivano sulle porte dello switch, gli indirizzi MAC di origine vengono appresi e registrati nella tabella CAM. La porta di arrivo e la VLAN vengono entrambe registrate nella tabella, insieme a un timestamp. Se un indirizzo MAC appreso su una porta dello switch è stato spostato su una porta diversa, l'indirizzo MAC e il timestamp vengono registrati per la porta di arrivo più recente. Quindi, la voce precedente viene eliminata. Se nella tabella è già presente un indirizzo MAC per la porta di arrivo corretta, viene aggiornato solo il relativo timestamp.
TCAM (Ternary Content Addressable Memory): negli switch multilivello, tutti i processi forniti dagli Access Control List (ACL) nel routing tradizionale, come la corrispondenza, il filtro o il controllo del traffico specifico, sono implementati nell'hardware. TCAM consente di valutare un pacchetto rispetto a un intero elenco degli accessi in un'unica tabella di ricerca. La maggior parte degli switch ha più TCAM in modo che la sicurezza in entrata e in uscita, così come gli ACL QoS, possano essere valutati contemporaneamente o interamente in parallelo con una decisione di inoltro di layer 2 o layer 3.
Nella commutazione distribuita, ogni DFC (Distributed Feature Card) è responsabile della manutenzione di ogni tabella CAM. Ciò significa che ogni DFC apprende l'indirizzo MAC e lo invecchia, che dipende dalla durata della CAM e dal traffico corrispondente a quella particolare voce. Con lo switching distribuito, è normale che il supervisor engine non visualizzi il traffico per un particolare indirizzo MAC per un determinato periodo di tempo, quindi la voce potrebbe scadere. Attualmente sono disponibili due meccanismi per mantenere le tabelle CAM coerenti tra i diversi motori, ad esempio DFC (presente nei moduli di linea) e Policy Feature Card (PFC) (presente nei moduli supervisor):
Flood to Fabric (FF)
Notifica MAC (MN)
Quando una voce di indirizzo MAC è obsoleta sul PFC, il comando show mac-address address <MAC_Address> all visualizza il DFC o il PFC che contiene questo indirizzo MAC.
Per evitare che una voce di una DFC o di una PFC venga cancellata, anche se non c'è traffico per l'indirizzo MAC, abilitare la sincronizzazione degli indirizzi MAC. Per abilitare la sincronizzazione, eseguire questi comandi:
!--- This is a global configuration command and is used to enable the synchronization. Cat6K-IOS(config)#mac-address-table synchronize
!--- This is a privileged EXEC command and is used to clear dynamic MAC addresses. Cat6K-IOS#clear mac-address-table dynamic
Il comando mac-address-table synchronize è disponibile nel software Cisco IOS® versione 12.2(18)SXE4 e successive. Dopo averla attivata, è possibile continuare a visualizzare le voci non presenti in PFC o DFC. Tuttavia, il modulo può essere utilizzato anche da altri utenti che utilizzano EOBC (Ethernet Out of Band Channel).
Attenzione: il comando mac-address-table synchronize elimina le voci MAC instradate. Per evitare questo problema, disabilitare l'eliminazione degli indirizzi MAC indirizzati con il comando di configurazione globale mac-address-table 0 routed-mac.
Cisco Express Forwarding (CEF) è una tecnologia di switching IP di layer 3 che offre prestazioni superiori rispetto ad altre tecnologie di switching, soprattutto in reti con modelli di traffico dinamico. CEF gestisce strutture di dati denominate FIB (Forwarding Information Base) e tabelle adiacenti. La tabella FIB rispecchia le informazioni contenute nella tabella di routing e viene utilizzata per prendere decisioni relative all'inoltro. La tabella adiacente contiene l'intestazione del livello di collegamento precalcolato per i dispositivi dell'hop successivo. In base all'interfaccia dell'hop successivo, le voci della tabella FIB vengono mappate alle voci della tabella adiacente. Un dispositivo non è in grado di eseguire pacchetti dello switch CEF se la tabella adiacente non è compilata con le informazioni richieste.
Se il CEF scarta i pacchetti a intervalli regolari, intercalati da periodi di normale funzionamento, è probabilmente dovuto al fatto che la tabella adiacente viene cancellata periodicamente. Ciò è causato dal tempo di permanenza della voce ARP. I pacchetti non vengono commutati CEF per la durata in cui la tabella adiacente viene ripopolata con le informazioni sull'hop successivo richieste. Mentre le voci ARP vengono aggiornate per impostazione predefinita ogni quattro ore, la configurazione di un valore molto basso di timeout ARP comporta l'interruzione del funzionamento del CEF.
Per modificare l'ora in cui una voce rimane nella cache ARP, usare il comando arp timeout in modalità di configurazione interfaccia.
Per ulteriori informazioni su questa vulnerabilità, fare riferimento all'ID bug Cisco CSCeb53542 (solo utenti registrati). Per ulteriori informazioni sull'adiacenza CEF, fare riferimento a Risoluzione dei problemi relativi alle adiacenze incomplete con CEF.
I frame del filtro di commutazione con un indirizzo MAC di origine di 00-00-00-00-00-00, che è un MAC di origine non valido, dalla tabella CAM. Questo è un esempio dell'output dell'errore syslog quando si verifica:
%SYS-4-P2_WARN: 1/Filtering MAC address 00-00-00-00-00-00 on port 2/48 from host table
Questi messaggi sono di tipo informativo e indicano che viene trovato un frame con indirizzo MAC di origine 00-00-00-00-00-00-00, e lo switch non lo aggiungerà mai alla tabella CAM. Tuttavia, lo switch inoltrerà il traffico proveniente da un indirizzo MAC con origine completamente zero.
Per ovviare al problema, occorre identificare la stazione terminale che genera i frame con un indirizzo MAC di origine interamente zero. In genere, uno di questi dispositivi trasmette tali frame:
Generatore di traffico, ad esempio SmartBits Spirent
Alcuni tipi di server, ad esempio i server IBM WebSphere con bilanciamento del carico
Router o unità terminale non configurati correttamente, ad esempio un dispositivo che trasmette programmi con zeri
Una scheda NIC difettosa
Gli switch LAN usano tabelle di inoltro, come le tabelle di layer 2 e CAM, per indirizzare il traffico a porte specifiche in base al numero VLAN e all'indirizzo MAC di destinazione del frame. Quando non esiste una voce corrispondente all'indirizzo MAC di destinazione del frame nella VLAN in arrivo, il frame (unicast) viene inviato a tutte le porte di inoltro nella VLAN corrispondente. Questo causa inondazioni. La causa vera e propria del problema è che l'indirizzo MAC di destinazione del pacchetto non è presente nella tabella di inoltro di layer 2 dello switch. In questo caso, il pacchetto viene scaricato da tutte le porte di inoltro della VLAN, ad eccezione della porta su cui viene ricevuto.
Il tempo di aging predefinito per la tabella ARP è di 4 ore, mentre il CAM mantiene le voci solo per 5 minuti. Quando l'indirizzo MAC di destinazione è scaduto nella tabella CAM, lo switch invia un frame a tutte le porte di inoltro all'interno della rispettiva VLAN. Per evitare che si verifichino allagamenti unicast, è necessario un timer di misurazione durata CAM maggiore o uguale al timeout ARP. Per ovviare al problema, è possibile usare uno dei seguenti comandi per aumentare il timer di aging CAM per la VLAN con cui si hanno problemi a far corrispondere il tempo di aging ARP:
Per CatOs, eseguire il comando set cam agingtime.
Per il software Cisco IOS, usare il comando mac-address-table-aging-time.
Nota: in qualsiasi ambiente Catalyst con protocollo HSRP (Hot Standby Router Protocol), si consiglia di verificare che i timer CAM e ARP siano sincronizzati.
Per informazioni sulle possibili cause e implicazioni del flooding di pacchetti unicast nelle reti a commutazione, fare riferimento a Unicast Flooding nelle reti a commutazione.
In modalità ibrida, il supervisor engine esegue CatOS e il Multilayer Switch Feature Card (MSFC) esegue Cisco IOS. CatOS funziona sul layer 2 e crea la tabella degli indirizzi CAM per contenere le informazioni sulla VLAN, l'indirizzo MAC e il numero di porta. Cisco IOS in MSFC funziona nel layer 3 e crea la tabella ARP per contenere l'indirizzo IP alla risoluzione degli indirizzi MAC. Quando si modifica l'indirizzo IP di un dispositivo, ad esempio una stampante o un server, potrebbe non essere possibile eseguire il ping del nuovo indirizzo IP. Tuttavia, è possibile eseguire il ping del nuovo indirizzo IP dalla stessa VLAN. Questo può essere un problema ARP sull'MSFC.
Questa soluzione può aiutare a isolare e risolvere il problema:
Cancellare la tabella ARP sull'MSFC.
MSFC2#clear arp int vlan 40
Verificare il valore di timeout ARP. Il valore predefinito è 4 ore. Se il timeout ARP sulla VLAN è alto, è possibile impostare di nuovo il valore di timeout sul valore predefinito o ottimale.
MSFC2#show int vlan 40 Vlan40 is up, line protocol is up Hardware is Cat6k RP Virtual Ethernet, address is 00d0.0050.33fc (bia 00d0.005 0.33fc) Internet address is 40.40.40.3/24 MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive not supported ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:01:44, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
MSFC2#conf t Enter configuration commands, one per line. End with CNTL/Z. MSFC2(config)#int vlan 40 MSFC2(config-if)#arp timeout ? <0-2147483> Seconds MSFC2(config-if)#arp timeout 240
Ricaricare l'MSFC.
MSFC2#write memory Building configuration... [OK] MSFC2#reload Proceed with reload? [confirm] Supervisor> (enable)
Questo è un esempio dell'output dell'errore syslog quando si verifica questo problema:
%EARL-2-EARL4LOOKUPRAMERROR:Address eac6, data 0-0-8000-0, count 8
Viene visualizzato quando si esegue una ricerca nella tabella CAM. Ciò si verifica a causa di un errore di parità quando si accede alla memoria. Questo errore viene in genere generato quando si esegue il comando show cam per accedere alla tabella CAM. In alcuni casi, lo switch viene ripristinato anche quando si esegue il comando show cam.
%EARL-2-EARLLOOKUPRAMERROR: Address [hex], data [hex]-[hex]-[hex]-[hex], count [dec]
Questo messaggio di errore indica che è stato rilevato un errore di parità della RAM di ricerca. Il campo indirizzo [hex] è l'indirizzo nella tabella di inoltro in cui è stato rilevato l'errore. Il campo dati [hex]-[hex]-[hex]-[hex] è la parola0, la parola1, la parola2 e la parola3 dei dati RAM che hanno generato l'errore di parità. Il campo count [dec] indica il numero totale di errori di parità.
Questo messaggio non è catastrofico e non può causare interruzioni se ne sono presenti solo occorrenze isolate. Se questo messaggio viene visualizzato continuamente, lo switch sta tentando di scrivere in un settore DRAM danneggiato quando aggiunge una nuova voce alla tabella CAM. Quindi, è necessario sostituire la DRAM o il supervisore stesso.
Le voci CAM statiche configurate sul supervisor engine attivo vengono perse dopo il passaggio rapido. Per risolvere questo problema, è necessario riconfigurare le voci CAM dopo il passaggio rapido.
Per ulteriori informazioni su questa vulnerabilità, fare riferimento agli ID bug Cisco CSCed87627 (solo utenti registrati) e CSCee27955 (solo utenti registrati).
Se il TCAM è pieno e si cerca di aggiungere nuovi ACL o voci di controllo di accesso (ACE) agli ACL esistenti, il processo di commit o di mappatura non riesce. Qualsiasi configurazione precedente rimane attiva. Nel caso degli elenchi di controllo di accesso (RACL) del router, l'ACL viene applicato nel software del modulo Multilayer Switch Feature Card (MSFC) con il peggioramento delle prestazioni corrispondente.
Su uno switch con software ibrido, se si configura un elenco di controllo di accesso VACL (Virtual Local Area Network Access Control List) o ACL QoS con un valore che supera la capacità del modello o della maschera del TCAM, un messaggio syslog simile a questo viene stampato sulla console:
%ACL-5-TCAMFULL: acl engine TCAM table is full
Sui sistemi Supervisor IOS o sull'MSFC in un sistema ibrido, se si configurano le voci ACE RACL che superano la capacità del TCAM, sulla console viene visualizzato un messaggio syslog simile al seguente:
%FM-4-TCAM_ENTRY: Hardware TCAM entry capacity exceeded
Sui sistemi Supervisor IOS o sull'MSFC in un sistema ibrido, usare il comando show fm summary per verificare le interfacce che applicano gli ACL nell'hardware (ACTIVE) e le interfacce che applicano gli ACL nel software (INACTIVE).
Per risolvere questo problema, rimuovere l'ACL o la QoS non utilizzati dalla configurazione dello switch. per ulteriori informazioni, fare riferimento a Descrizione degli ACL sugli switch Catalyst serie 6500.
Quando si esegue il ping su un'interfaccia VLAN, una richiesta ARP con un IP di origine di tale VLAN viene inviata all'MSFC (Default Router), ma il router non risponde alla richiesta ARP e l'ARP di debug visualizza questo messaggio di errore:
IP ARP req filtered src [ip-address] [mac-address] dst [ip-address] [mac-address] wrong cable, interface-id
Per ogni datagramma ARP, una risposta ARP viene scartata se l'indirizzo IP di destinazione non corrisponde all'indirizzo host locale. Una richiesta ARP viene ignorata se l'indirizzo IP di origine non si trova nella stessa subnet. È consigliabile ignorare questo test mediante un parametro di configurazione per supportare i casi rari in cui più subnet possono coesistere sullo stesso cavo.
Una risposta ARP viene generata solo se l'indirizzo IP del protocollo di destinazione è raggiungibile dall'host locale, come determinato dall'algoritmo di routing, e l'hop successivo non passa attraverso la stessa interfaccia. Se l'host locale funge da gateway, è possibile che vengano restituite risposte ARP per destinazioni che non si trovano nella stessa subnet. Ciò dimostra che è giustificato eliminare la richiesta ARP.
Per risolvere il problema, Catalyst 6500 non risponde a tutte le richieste ARP perché l'indirizzo IP di origine nella richiesta ARP si trova su una subnet diversa dall'indirizzo IP di destinazione nell'ARP. Pertanto, l'MSFC/Router conclude che l'ARP non è rimasto nello stesso dominio di layer 2 e visualizza il tipo di cavo errato. In altre parole, quando l'origine e la destinazione ARP non appartengono allo stesso dominio di layer 2, viene generato un messaggio di debug del cavo errato. Per far funzionare l'ARP in questo scenario, l'IP del protocollo di destinazione deve essere raggiungibile usando la route statica come soluzione alternativa.
Nella tabella degli indirizzi MAC sono visualizzate due voci per l'indirizzo MAC.
Cat6K#show mac-address-table int gi 6/11 Displaying entries from Line card 6: Legend: * - primary entry age - seconds since last seen n/a - not available vlan mac address type learn age ports ------+----------------+--------+-----+----------+-------------------------- [FE 1]: * 100 0011.857c.4d10 dynamic Yes 0 Gi6/11 [FE 2]: * 100 0011.857c.4d10 dynamic Yes 95 Gi6/11 Cat6K#show module 6 Mod Ports Card Type Model Serial No. --- ----- -------------------------------------- ------------------ ----------- 6 48 CEF720 48 port 10/100/1000mb Ethernet WS-X6748-GE-TX SADxxxxxxxx Mod MAC addresses Hw Fw Sw Status --- ---------------------------------- ------ ------------ ------------ ------- 6 001d.45fd.xx4a to 001d.45fd.xx79 2.6 12.2(14r)S5 12.2(18)SXF8 Ok Mod Sub-Module Model Serial Hw Status ---- --------------------------- ------------------ ----------- ------- ------- 6 Distributed Forwarding Card WS-F6700-DFC3B SALxxxxxxxx 4.6 Ok Mod Online Diag Status ---- ------------------- 6 Pass
Nell'ambiente DFC sono presenti due motori di ricerca di inoltro di livello 2. È comune nell'ambiente dCEF che FE1 e FE2 apprendano lo stesso indirizzo MAC sulla stessa porta di una scheda di linea con architettura CEF720/dCEF720.
I router Cisco richiedono una voce ARP (Address Resolution Protocol) per ogni indirizzo IP virtuale. Mentre il bilanciamento del carico di rete utilizza il multicast di livello 2 per la consegna dei pacchetti. Nell'implementazione della RFC da parte di Cisco, il multicast viene utilizzato solo per il multicast IP. Pertanto, quando il router non vede un indirizzo IP multicast, non crea automaticamente una voce ARP e deve essere aggiunta manualmente al router.
Normalmente, i dispositivi Cisco non inseriscono un indirizzo MAC multicast (indirizzo MAC virtuale del cluster) nella tabella ARP se è stato risolto tramite un indirizzo IP unicast (indirizzo virtuale del cluster). Per risolvere il problema, è necessario un mapping statico dell'indirizzo IP virtuale unicast all'indirizzo MAC multicast.
Per ulteriori informazioni, fare riferimento alla sezione sulla modalità multicast nell'esempio di configurazione degli switch Catalyst per bilanciamento carico di rete Microsoft.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
27-Oct-2009 |
Versione iniziale |