Introducción
Este documento describe cómo resolver problemas cuando hay mac move en Nexus 9000 y cómo evitarlo.
Prerequisites
Antecedentes
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
Usted entiende el concepto de aprendizaje de MAC y cómo se mantiene una tabla en un switch, cuando el switch recibe una trama, y asocia la dirección MAC del remitente con el puerto LAN donde se recibió. En una condición de loop, puede ocurrir que el mismo MAC se detecte a través de dos puertos diferentes en el switch.
Topología
+-----------+ Po6 +------------+
| N9K_1 +----------+ N9K_2 |
| +----------+ |
+-----------+ +--+---------+
1/3 | | 2/1
| |
| |
+-+---------------+--+
| Server |
+--------------------+
0000.117d.e02e
Cómo solucionar problemas
Cuando BCM ASIC aprende demasiadas direcciones MAC en una corta duración, BCM_USD puede inhabilitar/habilitar el aprendizaje de MAC en el hardware y puede ver este mensaje que aparece. Podría ser causado si hay demasiados mac-move/flaps/loops o los nuevos mac learn/move exceden un cierto umbral. De forma predeterminada, en Nexus9K, no puede ver los registros que indican específicamente que el switch experimenta movimientos mac. Sin embargo, en caso de que estos movimientos sean altos, terminas viendo estos registros.
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
Estos mensajes son indicativos de un evento en la tabla mac. Cuando tiene movimientos mac continuos en el entorno, estos mensajes se pueden ver. Básicamente, el switch recibió tramas con la misma fuente MAC en dos o más interfaces a una velocidad muy alta. El switch tiene un mecanismo para contar el número de MAC move-backs y ponderarlos en función del número de veces que se mueve la dirección MAC. El switch desactiva el aprendizaje dinámico de MAC para proteger el plano de control.
En este punto, puede verificar el conteo de mac-move para comprender, si y cuántos mac-move se han experimentado en el 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
La salida de Number of MAC Addresses moved, sugiere que el switch experimenta movimientos mac.
Configuración
Lo siguiente obvio es averiguar la dirección MAC que causa este problema, las vlan y la información de la interfaz donde se experimenta esto. Para buscar esta información, debe aumentar el nivel de registro de L2FM desde el valor predeterminado de 2 hasta 5 en la plataforma 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
En tal caso, puede detectar y limitar el número de veces que una dirección MAC se mueve de un puerto a otro.
Hasta la versión 6.0(2)U3(1) de Cisco NX-OS, cuando se detectó un bucle entre dos puertos, el aprendizaje de MAC estaba desactivado durante 180 segundos.
Sin embargo, a partir de 7.0(3)I7(3), ahora puede configurar el switch para que desactive el puerto con el índice de interfaz inferior, cuando se detecta un loop de este tipo cuando utiliza el 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#
Ahora, una vez que se ha habilitado este comando, la detección de loop adicional detiene la interfaz con un índice de interfaz inferior.
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)
Verificación
Utilice este comando para verificar la acción configurada actualmente.
N9K# show mac address-table loop-detect
Port Down Action Mac Loop Detect : disabled
Puede confirmar el índice de la interfaz para verificar si se ha deshabilitado la interfaz correcta, según la función.
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)
Otras plataformas
Puede activar la notificación de movimiento de Mac en las otras plataformas Nexus con estos comandos.
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.
Estos comandos también están disponibles en Nexus5K/6K que ejecutan las versiones 6.0(2)N2(1) y posteriores para apagar el puerto:
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 versión 6.0(2)A8(1) en Nexus 3000, puede configurar la acción para reducir el puerto con el índice de interfaz inferior cuando se detecta un loop de este 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
Información Relacionada