Introduction
Ce document décrit comment dépanner quand il y a mac move sur Nexus 9000 et comment l'empêcher.
Conditions préalables
Informations générales
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
Vous comprenez le concept d’apprentissage MAC et la manière dont une table est mise à jour sur un commutateur, lorsque ce dernier reçoit une trame, et vous associez l’adresse MAC de l’expéditeur au port LAN sur lequel elle a été reçue. En mode de boucle, il peut arriver que le même MAC soit appris via deux ports différents sur le commutateur.
Topologie
+-----------+ Po6 +------------+
| N9K_1 +----------+ N9K_2 |
| +----------+ |
+-----------+ +--+---------+
1/3 | | 2/1
| |
| |
+-+---------------+--+
| Server |
+--------------------+
0000.117d.e02e
Dépannage : procédure
Lorsque BCM ASIC apprend trop d'adresses MAC en peu de temps, BCM_USD peut désactiver/activer l'apprentissage MAC dans le matériel et vous pouvez voir ce message qui apparaît. Cela peut être dû à un trop grand nombre de mac-move/flaps/loops ou à un nouveau mac apprenant/move dépassant un certain seuil. Par défaut, sur Nexus9K, vous ne pouvez pas voir les journaux qui vous indiquent spécifiquement que le commutateur subit des mac-move. Cependant, si ces mouvements sont élevés, vous finissez par voir ces journaux.
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
Ces messages indiquent un événement dans la table mac. Lorsque vous avez des déplacements Mac continus dans l'environnement, ces messages peuvent être vus. Fondamentalement, le commutateur a reçu des trames avec le même MAC source sur deux interfaces ou plus à un débit très élevé. Le commutateur dispose d’un mécanisme permettant de compter le nombre de transferts rétroactifs MAC et de les pondérer en fonction du nombre de déplacements de l’adresse MAC. L'apprentissage MAC dynamique est désactivé par le commutateur afin de protéger le plan de contrôle.
À ce stade, vous pouvez vérifier le nombre de mac-move pour comprendre si et combien de mac-move ont été détectés sur le périphérique.
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
Le résultat de la commande Number of MAC Addresses Move indique que le commutateur subit des déplacements MAC.
Configuration
La prochaine chose évidente est de trouver l'adresse MAC qui cause ce problème, les VLAN et les informations d'interface où cela se produit. Pour rechercher ces informations, vous devez augmenter le niveau de journalisation de L2FM de la valeur par défaut de 2 à 5 sur la plate-forme 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
Dans ce cas, vous pouvez détecter et limiter le nombre de déplacements d'une adresse MAC d'un port à un autre.
Jusqu'à la version 6.0(2)U3(1) de Cisco NX-OS, lorsqu'une boucle était détectée entre deux ports, l'apprentissage MAC était désactivé pendant 180 secondes.
Cependant, à partir de la version 7.0(3)I7(3), vous pouvez maintenant configurer le commutateur pour désactiver le port avec l'index d'interface le plus bas, quand une telle boucle est détectée quand vous utilisez la commande 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#
Une fois cette commande activée, la détection de boucles supplémentaires désactive l'interface dont l'index d'interface est le plus faible.
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)
Vérifier
Utilisez cette commande pour vérifier l'action actuellement configurée.
N9K# show mac address-table loop-detect
Port Down Action Mac Loop Detect : disabled
Vous pouvez confirmer l'index de l'interface pour vérifier si l'interface correcte a été désactivée, conformément à la fonctionnalité.
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)
Autres plates-formes
Vous pouvez activer la notification de déplacement mac sur les autres plates-formes Nexus à l'aide de ces commandes.
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.
Ces commandes sont également disponibles dans Nexus5K/6K qui exécute les versions 6.0(2)N2(1) et ultérieures, pour arrêter le port :
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
Avec NX-OS version 6.0(2)A8(1) sur Nexus 3000, vous pouvez configurer l'action pour désactiver le port dont l'index d'interface est le plus bas lorsqu'une telle boucle est détectée.
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
Informations connexes