Introduzione
In questo documento viene descritto come risolvere i problemi relativi a uno spostamento mac su Nexus 9000 e come prevenirlo.
Prerequisiti
Premesse
2018 Nov 14 15:53:26.943 N9K %-SLOT1-5-BCM_L2_LEARN_DISABLE: MAC Learning Disabled unit=0
2018 Nov 14 15:53:27.769 N9K %-SLOT1-5-BCM_L2_LEARN_ENABLE: MAC Learning Enabled unit=0
L'utente conosce il concetto di mac learning e il modo in cui viene gestita una tabella su uno switch, quando lo switch riceve un frame e associa l'indirizzo MAC del mittente alla porta LAN su cui è stato ricevuto. In condizioni di loop, è possibile che lo stesso MAC venga acquisito tramite due porte diverse sullo switch.
Topologia
+-----------+ Po6 +------------+
| N9K_1 +----------+ N9K_2 |
| +----------+ |
+-----------+ +--+---------+
1/3 | | 2/1
| |
| |
+-+---------------+--+
| Server |
+--------------------+
0000.117d.e02e
Risoluzione dei problemi
Quando BCM ASIC apprende troppi indirizzi MAC in una breve durata, BCM_USD può disabilitare/abilitare l'apprendimento degli indirizzi MAC nell'hardware ed è possibile visualizzare questo messaggio. La causa potrebbe essere il numero eccessivo di mosse/flap/loop di mac o il superamento di una determinata soglia da parte di nuove apprese/mosse di mac. Per impostazione predefinita, in Nexus9K non è possibile visualizzare i registri che indicano in modo specifico che lo switch esegue movimenti mac. Tuttavia, nel caso in cui questi movimenti siano elevati, si finisce per vedere questi registri.
2018 Nov 14 15:53:26.943 N9K %-SLOT1-5-BCM_L2_LEARN_DISABLE: MAC Learning Disabled unit=0
2018 Nov 14 15:53:27.769 N9K %-SLOT1-5-BCM_L2_LEARN_ENABLE: MAC Learning Enabled unit=0
2018 Nov 14 15:53:27.863 N9K %-SLOT1-5-BCM_L2_LEARN_DISABLE: MAC Learning Disabled unit=0
2018 Nov 14 15:53:28.770 N9K %-SLOT1-5-BCM_L2_LEARN_ENABLE: MAC Learning Enabled unit=0
Questi messaggi indicano un evento nella tabella mac. Quando nell'ambiente sono presenti movimenti mac continui, è possibile visualizzare questi messaggi. Fondamentalmente, lo switch ha ricevuto i frame con lo stesso MAC di origine su due o più interfacce a una velocità molto elevata. Lo switch ha un meccanismo per contare il numero di spostamenti all'interno del MAC e pesarli in base al numero di spostamenti dell'indirizzo MAC. L'apprendimento dinamico degli indirizzi MAC viene disattivato dallo switch per proteggere il control-plane.
A questo punto, è possibile controllare il conteggio mac-move per capire se e quanti mac-move sono stati eseguiti sul dispositivo.
N9K# sh mac address-table notification mac-move
MAC Move Notify Triggers: 1
Number of MAC Addresses added: 612336
Number of MAC Addresses moved: 612328
Number of MAC Addresses removed: 0
L'output del comando Numero di indirizzi MAC spostati suggerisce che lo switch ha movimenti di mac.
Configurazione
Il passo successivo è individuare l'indirizzo MAC che causa il problema, le vlan e le informazioni sull'interfaccia dove si verifica. Per cercare queste informazioni, è necessario aumentare il livello di registrazione di L2FM dal valore predefinito 2 a 5 sulla piattaforma N9K.
N9K# sho logging level l2fm
Facility Default Severity Current Session Severity
-------- ---------------- ------------------------
l2fm 2 2
0(emergencies) 1(alerts) 2(critical)
3(errors) 4(warnings) 5(notifications)
6(information) 7(debugging)
N9K# conf t
Enter configuration commands, one per line. End with CNTL/Z.
N9K(config)# logging level l2fm 5
N9K(config)# end
N9K# sho logging level l2fm
Facility Default Severity Current Session Severity
-------- ---------------- ------------------------
l2fm 2 5
0(emergencies) 1(alerts) 2(critical)
3(errors) 4(warnings) 5(notifications)
6(information) 7(debugging)
Any mac moves at this point can be seen in the syslogs:
2018 Nov 14 16:04:23.881 N9K %L2FM-4-L2FM_MAC_MOVE2: Mac 0000.117d.e02e in vlan 741 has moved between Po6 to Eth1/3
2018 Nov 14 16:04:23.883 N9K %L2FM-4-L2FM_MAC_MOVE2: Mac 0000.117d.e02e in vlan 741 has moved between Po6 to Eth1/3
In questo caso, è possibile rilevare e limitare il numero di spostamenti di un indirizzo MAC da una porta all'altra.
Fino alla versione 6.0(2)U3(1) di Cisco NX-OS, quando è stato rilevato un loop tra due porte, l'apprendimento dell'indirizzo MAC è stato disabilitato per 180 secondi.
Tuttavia, a partire da 7.0(3)I7(3), è possibile configurare lo switch in modo che abbassi la porta con l'indice di interfaccia inferiore, quando viene rilevato un loop di questo tipo con il comando mac address-table loop-detect port-down.
N9K# conf t
Enter configuration commands, one per line. End with CNTL/Z.
N9K(config)# mac address-table loop-detect port-down
N9K(config)# exit
N9K#
Ora, una volta abilitato questo comando, il rilevamento dei loop rimuove l'interfaccia con un indice inferiore.
2018 Nov 13 19:33:54.773 N9K %ETHPORT-5-IF_DOWN_NONE: Interface port-channel6 is down (None)
2018 Nov 13 19:33:59.046 N9K %ETH_PORT_CHANNEL-5-PORT_DOWN: port-channel6: Ethernet2/1 is down
2018 Nov 13 19:33:59.049 N9K %ETH_PORT_CHANNEL-5-PORT_DOWN: port-channel6: Ethernet2/2 is down
2018 Nov 13 19:33:59.166 N9K %ETH_PORT_CHANNEL-5-FOP_CHANGED: port-channel6: first operational port changed from Ethernet2/1 to none
2018 Nov 13 19:33:59.235 N9K %ETHPORT-5-IF_DOWN_ERROR_DISABLED: Interface port-channel6 is down (Error disabled. Reason:error)
2018 Nov 13 19:33:59.244 N9K %ETHPORT-5-IF_DOWN_CFG_CHANGE: Interface Ethernet2/2 is down(Config change)
2018 Nov 13 19:33:59.252 N9K %ETHPORT-5-IF_DOWN_CFG_CHANGE: Interface Ethernet2/1 is down(Config change)
2018 Nov 13 19:34:05.269 N9K %ETHPORT-5-IF_DOWN_CHANNEL_ERR_DISABLED: Interface Ethernet2/2 is down (Channel error disabled)
2018 Nov 13 19:34:05.303 N9K last message repeated 1 time
2018 Nov 13 19:34:05.303 N9K %ETHPORT-5-IF_DOWN_CHANNEL_ERR_DISABLED: Interface Ethernet2/1 is down (Channel error disabled)
Verifica
Utilizzare questo comando per verificare l'azione attualmente configurata.
N9K# show mac address-table loop-detect
Port Down Action Mac Loop Detect : disabled
È possibile confermare l'indice dell'interfaccia per verificare che sia stata disabilitata l'interfaccia corretta, in base alla funzione.
N9K# show system internal l2fm l2dbg macdb address 0000.117d.e02e vlan 741
Legend
------
Db: 0-MACDB, 1-GWMACDB, 2-SMACDB, 3-RMDB, 4-SECMACDB 5-STAGEDB
Src: 0-UNKNOWN, 1-L2FM, 2-PEER, 3-LC, 4-HSRP
5-GLBP, 6-VRRP, 7-STP, 8-DOTX, 9-PSEC 10-CLI 11-PVLAN
12-ETHPM, 13-ALW_LRN, 14-Non_PI_MOD, 15-MCT_DOWN, 16 - SDB
17-OTV, 18-Deounce Timer, 19-AM, 20-PCM_DOWN, 21 - MCT_UP
22-VxLAN, 23-L2RIB 24-CTRL, 25-UFDM
Slot:0 based for LCS 31-MCEC 20-OTV/ORIB
VLAN: 741 MAC: 0000.117d.e02e
Time If/swid Db Op Src Slot FE
Wed Nov 14 16:04:28 2018 0x16000005 0 UPDATE 3 0 0
Wed Nov 14 16:04:28 2018 0x16000005 0 REFRESH_DETECT 3 0 15
Wed Nov 14 16:04:28 2018 0x1a000400 0 UPDATE 3 0 0
Wed Nov 14 16:04:28 2018 0x1a000400 0 REFRESH_DETECT 3 0 15
Wed Nov 14 16:04:28 2018 0x16000005 0 UPDATE 3 0 0
N9K# show int snmp-ifindex
--------------------------------------------------------------------------------
Port IFMIB Ifindex (hex)
--------------------------------------------------------------------------------
mgmt0 83886080 (0x5000000 )
Eth1/1 436207616 (0x1a000000)
Eth1/2 436208128 (0x1a000200)
Eth1/3 436208640 (0x1a000400)
<snip>
Po6 369098757 (0x16000005)
Altre piattaforme
È possibile abilitare la notifica di spostamento mac sulle altre piattaforme Nexus con questi comandi.
N3K:
mac address table notification mac-move
logging level fwm 6
logging monitor 6
N5K/N6K:
mac address table notification mac-move
logging level fwm 6
logging monitor 6
N7K/N9K:
logging level l2fm 5
IOS:
mac address table notification mac-move
Note: To revert/remove these commands, simply use the `no` version of each command.
Questi comandi sono disponibili anche in Nexus5K/6K con versioni 6.0(2)N2(1) e successive, per arrestare la porta:
N5K(config)# mac address-table loop-detect ?
port-down Take port-down action for mac loop detection
N5K(config)# mac address-table loop-detect port-down
Further, the following command is available on the platform to err-disable the edge-port on the MAC move loop detection,
N5K(config)# mac address-table loop-detect port-down edge-port
Con NX-OS release 6.0(2)A8(1) su Nexus 3000, è possibile configurare l'azione in modo che la porta venga abbassata con l'indice di interfaccia inferiore quando viene rilevato un loop di questo tipo.
N3K(config)# mac address-table loop-detect ?
port-down Take port-down action for mac loop detection
N3K(config)# mac address-table loop-detect port-down
The following command is available on this platform as well, to err-disable the edge-port on the MAC move loop detection,
N5K(config)# mac address-table loop-detect port-down edge-port
Informazioni correlate