Einleitung
In diesem Dokument wird ein spezifisches Synchronisierungsverhalten beschrieben, das in den ARP- und MAC-Adresstabellen der Cisco Nexus Switches der Serie 9000 beobachtet wird.
Voraussetzungen
Anforderungen
Um die Vorteile dieses Dokuments vollständig zu nutzen, verfügt der Leser über ein grundlegendes Verständnis verschiedener wichtiger Konzepte und Technologien:
-
Virtual Port Channel (vPC): Vertrautheit mit der Einrichtung, Konfiguration und Betriebsverwaltung von vPCs, da diese entscheidend für das Verständnis der beschriebenen Netzwerkszenarien sind
-
Virtual Port Channel Peer Gateway-Funktion von NX-OS: Kenntnisse der Peer-Gateway-Funktion in einer vPC-Konfiguration, einschließlich ihrer Rolle bei der Weiterleitung von Datenverkehr und bei Redundanzmechanismen
-
Cisco Nexus-Betriebssystem (NX-OS): Grundlegendes Verständnis von NX-OS mit Schwerpunkt auf der Kommandozeilenschnittstelle und typischen Konfigurationen für Nexus Switches der Serie 9000
Verwendete Komponenten
-
Switch-Modelle: Switches der Serien Nexus 3000 und Nexus 9000 (nur Switches der ersten Generation), die aufgrund ihrer einzigartigen ASIC-Einschränkungen eine zentrale Rolle bei der Veranschaulichung des Verhaltens der ARP- und MAC-Tabelle spielen.
-
Virtual Port Channel (vPC): Konfiguriert zum Testen des Synchronisierungsverhaltens aller verbundenen Geräte.
-
vPC-Peer-Gateway-Funktion: Aktivierung innerhalb der vPC-Domäne, um den Einfluss dieser Domäne auf die ARP- und MAC-Synchronisierung zu untersuchen.
-
Layer-2-Trunk ohne vPC: Wird verwendet, um die Nexus-Peer-Geräte zu verbinden.
-
Nicht-vPC-Switch Virtual Interfaces (SVIs): Diese Funktion ist konfiguriert, um das Verhalten zu untersuchen, wenn keine benutzerdefinierten MAC-Adressen verwendet werden. Sie hebt die Standardbehandlung bei der Synchronisierung von ARP- und MAC-Adressen hervor.
-
Betriebssystem: NX-OS Version 7.0(3)I7(5).
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Hintergrundinformationen
In komplexen Netzwerkumgebungen ist die Synchronisierung von ARP- (Address Resolution Protocol) und MAC-Adresstabellen zwischen verbundenen Geräten von entscheidender Bedeutung, um einen konsistenten Datenfluss und die Zuverlässigkeit des Netzwerks zu gewährleisten. Dieser Leitfaden soll einen umfassenden Überblick über diese Verhaltensweisen geben, der durch Laborbeobachtungen und Konfigurationen in der Praxis unterstützt wird und die Fehlerbehebung und die effektive Konfiguration von Switches der Serie Nexus 9000 erleichtern.
Die in diesem Dokument beschriebenen Synchronisierungsprobleme bei ARP und MAC-Adressen beziehen sich auf bestimmte Konfigurationen von Cisco Nexus Switches der Serie 9000. Diese Probleme treten in erster Linie unter zwei Bedingungen auf:
1. Wenn Switch Virtual Interfaces (SVIs) ohne benutzerdefinierte MAC-Adressen konfiguriert werden
2. Wenn die vPC-Peer-Gateway-Funktion (Virtual Port Channel) in den vPC-Domäneneinstellungen aktiviert ist.
Dieses spezielle Verhalten ist wichtig, da es beeinflusst, wie ARP-Einträge trotz entsprechender MAC-Adresseinträge, die möglicherweise veraltet sind oder explizit aus der MAC-Adresstabelle gelöscht werden, beibehalten werden. Dies kann zu Inkonsistenzen bei der Paketweiterleitung und der Instabilität des Netzwerks führen.
Außerdem ist zu beachten, dass dieses Verhalten auf eine ASIC-Hardwarebeschränkung zurückzuführen ist, die nur bei Switches der Serie Nexus 9000 der ersten Generation gegeben ist. Diese Einschränkung gilt nicht für die später eingeführten Cloud-Scale-Modelle der Nexus Serie 9300 (EX-, FX-, GX- und C-Versionen). Das Problem wurde erkannt und unter dem Cisco Bug IDCSCuh94866 katalogisiert.
Topologie

Überblick
Nehmen wir ein Netzwerkszenario, bei dem VLAN 150 als Nicht-vPC-VLAN konfiguriert ist, die ARP- und die MAC-Adresstabelle zwischen Host-A und Nexus 9000-Switch B (N9K-B) anfangs leer sind und ein Ping von Host-A nach N9K-B initiiert wird.
Host-A# ping 192.0.2.3
PING 192.0.2.3 (192.0.2.3): 56 data bytes
36 bytes from 192.0.2.100: Destination Host Unreachable
Request 0 timed out
64 bytes from 192.0.2.3: icmp_seq=1 ttl=254 time=1.011 ms
64 bytes from 192.0.2.3: icmp_seq=2 ttl=254 time=0.763 ms
64 bytes from 192.0.2.3: icmp_seq=3 ttl=254 time=0.698 ms
64 bytes from 192.0.2.3: icmp_seq=4 ttl=254 time=0.711 ms
--- 192.0.2.3 ping statistics ---
5 packets transmitted, 4 packets received, 20.00% packet loss
round-trip min/avg/max = 0.698/0.795/1.011 ms
Dieser Ping fordert Host-A auf, eine ARP-Anforderung an N9K-B zu senden. Diese Anforderung wird über Port-Channel 21 (Po21) auf Nexus 9000-Switch A (N9K-A) gesendet, der für VLAN-Flooding zuständig ist. Gleichzeitig wird die Anforderung über Cisco Fabric Services (CFS) für Port-Channel 20 (Po20) getunnelt. Als direkte Folge wird die MAC-Adresstabelle auf N9K-B aktualisiert, um den richtigen Eintrag für Host-A aufzunehmen, und ein ARP-Eintrag wird auch in der ARP-Tabelle auf N9K-B eingerichtet, der auf Po21 - den Nicht-vPC-Layer-2-Trunk - als Schnittstelle für die MAC-Adresse von Host-A verweist (0223.e957.6a3a a)
N9K-B# show ip arp 192.0.2.100
Flags: * - Adjacencies learnt on non-active FHRP router
+ - Adjacencies synced via CFSoE
# - Adjacencies Throttled for Glean
CP - Added via L2RIB, Control plane Adjacencies
PS - Added via L2RIB, Peer Sync
RO - Re-Originated Peer Sync Entry
D - Static Adjacencies attached to down interface
IP ARP Table
Total number of entries: 1
Address Age MAC Address Interface Flags
192.0.2.100 00:01:07 0223.e957.6a3a Vlan150
N9K-B# show mac address-table address | i i 6a3a
* 150 0223.e957.6a3a dynamic 0 F F Po21
N9K-B# show ip arp detail | i 3a
192.0.2.100 00:03:22 0223.e957.6a3a Vlan150 port-channel21 <<<< Expected port-channel
Das Problem tritt auf, wenn die MAC-Adresse von Host-A aus der MAC-Adresstabelle von N9K-B entfernt wird. Diese Entfernung kann aus verschiedenen Gründen erfolgen, darunter der natürliche Alterungsprozess der MAC-Adresse, der Empfang des Spanning Tree Protocol (STP), Topology Change Notifications (TCNs) oder manuelle Eingriffe wie die Ausführung des dynamischen Befehls clearmac address-table.
N9K-B# show ip arp 192.0.2.100
Flags: * - Adjacencies learnt on non-active FHRP router
+ - Adjacencies synced via CFSoE
# - Adjacencies Throttled for Glean
CP - Added via L2RIB, Control plane Adjacencies
PS - Added via L2RIB, Peer Sync
RO - Re-Originated Peer Sync Entry
D - Static Adjacencies attached to down interface
IP ARP Table
Total number of entries: 1
Address Age MAC Address Interface Flags
192.0.2.100 00:00:29 0223.e957.6a3a Vlan150 <<< ARP remains populated
N9K-B# show mac address-table address 0223.e957.6a3a
Legend:
* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
age - seconds since last seen,+ - primary entry using vPC Peer-Link,
(T) - True, (F) - False, C - ControlPlane MAC, ~ - vsan
VLAN MAC Address Type age Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
N9K-B# ping 192.0.2.100
PING 192.0.2.100 (192.0.2.100): 56 data bytes
64 bytes from 192.0.2.100: icmp_seq=0 ttl=253 time=1.112 ms
64 bytes from 192.0.2.100: icmp_seq=1 ttl=253 time=0.647 ms
64 bytes from 192.0.2.100: icmp_seq=2 ttl=253 time=0.659 ms
64 bytes from 192.0.2.100: icmp_seq=3 ttl=253 time=0.634 ms
64 bytes from 192.0.2.100: icmp_seq=4 ttl=253 time=0.644 ms
--- 192.0.2.100 ping statistics ---
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min/avg/max = 0.634/0.739/1.112 ms
Trotz dieser Löschungen ist es bemerkenswert, dass der Ping-Datenverkehr weiterhin erfolgreich ist. Der ARP-Eintrag für Host-A auf N9K-B verweist jedoch unerwartet auf Port-Channel 20 (Po20 - der vPC-Peer-Link) und nicht auf Port-Channel 21 (Po21), der als Layer-2-Trunk ohne vPC bezeichnet wird. Diese Umleitung erfolgt, obwohl VLAN 150 als Nicht-vPC-VLAN konfiguriert ist, was zu einer Inkonsistenz im erwarteten Datenverkehrsfluss führt.
N9K-B# show ip arp detail | i i 6a3a
Flags: * - Adjacencies learnt on non-active FHRP router
+ - Adjacencies synced via CFSoE
# - Adjacencies Throttled for Glean
CP - Added via L2RIB, Control plane Adjacencies
PS - Added via L2RIB, Peer Sync
RO - Re-Originated Peer Sync Entry
IP ARP Table for context default
Total number of entries: 2
Address Age MAC Address Interface Physical Interface Flags
192.0.2.100 00:15:54 0223.e957.6a3a Vlan150 port-channel20 <<< Not Po21 once the issue is triggered.
Mit dem Befehl show ip arp internal event-history auf beiden Nexus 9000-Switches können Sie nachweisen, dass Pakete über Cisco Fabric Services (CFS) getunnelt werden:
N9K-B# show ip arp internal event-history event | i i tunnel
[116] [27772]: Tunnel Packets came with: vlan: 150, L2-SMAC :0223.e957.6a3a, L2-DMAC: 00be.758e.5677
[116] [27772]: Received tunneled packet on iod: Vlan150, physical iod: port-channel20
N9K-A# show ip arp internal event-history event | i i tunnel
[116] [28142]: Tunnel Packets sent with: vlan: 150, L2-SMAC :0223.e957.6a3a, L2-DMAC: 00be.758e.5677
[116] [28142]: Tunnel it to peer destined to remote SVI's Gateway MAC. Peer Gateway Enabled
Sie können auch die debug ip arp-Reihe von debug-Befehlen auf 9K-B verwenden, um dieses Verhalten zu beschreiben:
N9K-B# debug logfile TAC_ARP
N9K-B# debug ip arp packet
N9K-B# debug ip arp event
N9K-B# debug ip arp error
N9K-B# show debug logfile TAC_ARP | beg "15:31:23"
2018 Oct 11 15:31:23.954433 arp: arp_send_request_internal: Our own address 192.0.2.3 on interface Vlan150,sender_pid =27661
2018 Oct 11 15:31:23.955221 arp: arp_process_receive_packet_msg: Received tunneled packet on iod: Vlan150, physical iod: port-channel20
2018 Oct 11 15:31:23.955253 arp: arp_process_receive_packet_msg: Tunnel Packets came with: vlan: 150, L2-SMAC :0223.e957.6a3a, L2-DMAC: 00be.758e.5677
2018 Oct 11 15:31:23.955275 arp: (context 1) Receiving packet from Vlan150, logical interface Vlan150 physical interface port-channel20, (prty 6) Hrd type 1 Prot type 800 Hrd len 6 Prot len 4 OP 2, Pkt size 46
2018 Oct 11 15:31:23.955293 arp: Src 0223.e957.6a3a/192.0.2.100 Dst 00be.758e.5677/192.0.2.3
2018 Oct 11 15:31:23.955443 arp: arp_add_adj: arp_add_adj: Updating MAC on interface Vlan150, phy-interface port-channel20, flags:0x1
2018 Oct 11 15:31:23.955478 arp: arp_adj_update_state_get_action_on_add: Different MAC(0223.e957.6a3a) Successful action on add Previous State:0x10, Current State:0x10 Received event:Data Plane Add, entry: 192.0.2.100, 0000.0000.0000, Vlan150, action to be taken send_to_am:TRUE, arp_aging:TRUE
2018 Oct 11 15:31:23.955576 arp: arp_add_adj: Entry added for 192.0.2.100, 0223.e957.6a3a, state 2 on interface Vlan150, physical interface port-channel20, ismct 0. flags:0x10, Rearp (interval: 0, count: 0), TTL: 1500 seconds update_shm:TRUE
2018 Oct 11 15:31:23.955601 arp: arp_add_adj: Adj info: iod: 77, phy-iod: 91, ip: 192.0.2.100, mac: 0223.e957.6a3a, type: 0, sync: FALSE, suppress-mode: ARP Suppression Disabled flags:0x10
Die ARP-Antwort von Host A erreicht zuerst Nexus 9000-Switch A (N9K-A) und wird dann auf Nexus 9000-Switch B (N9K-B) getunnelt. N9K-A leitet die ARP-Antwort an seine Kontrollebene weiter und nutzt dabei die vPC-Domänenerweiterung des Peer-Gateways. Mit dieser Konfiguration kann N9K-A das Routing des Pakets für N9K-B verarbeiten, ein Vorgang, der in einer Nicht-vPC-VLAN-Konfiguration normalerweise nicht erwartet wird.
N9K-A# ethanalyzer local interface inband display-filter arp limit-c 0
Capturing on inband
2018-10-11 15:32:47.378648 00:be:75:8e:56:77 -> ff:ff:ff:ff:ff:ff ARP Who has 192.0.2.100? Tell 192.0.2.3 <<<<
2018-10-11 15:32:47.379262 02:23:e9:57:6a:3a -> 00:be:75:8e:56:77 ARP 192.0.2.100 is at 02:23:e9:57:6a:3a
Um das Verhalten der ARP-Antwort zu validieren, kann die Ethanalyzer-Funktion auf NX-OS verwendet werden. Mit diesem Tool wird bestätigt, dass die Kontrollebene von N9K-B diese ARP-Antwort nicht direkt beobachtet. Dies unterstreicht die spezielle Behandlung von ARP-Datenverkehr in vPC-Konfigurationen.
N9K-B# ethanalyzer local interface inband display-filter arp limit-c 0
Capturing on inband
2018-10-11 15:33:30.053239 00:be:75:8e:56:77 -> ff:ff:ff:ff:ff:ff ARP Who has 192.0.2.100? Tell 192.0.2.3
2018-10-11 15:34:16.817309 00:be:75:8e:56:77 -> ff:ff:ff:ff:ff:ff ARP Who has 192.0.2.100? Tell 192.0.2.3
2018-10-11 15:34:42.222965 00:be:75:8e:56:77 -> ff:ff:ff:ff:ff:ff ARP Who has 192.0.2.44? Tell 192.0.2.43
<snip>
Vorsicht: Abhängig von der Reihenfolge der Ereignisse und Umstände kann es zu einem Paketverlust von N9K-B zu Host-A kommen.
N9K-B# ping 192.0.2.100
PING 192.0.2.100 (192.0.2.100): 56 data bytes
36 bytes from 192.0.2.3: Destination Host Unreachable
Request 0 timed out
Request 1 timed out
Request 2 timed out
Request 3 timed out
Request 4 timed out
--- 192.0.2.100 ping statistics ---
5 packets transmitted, 0 packets received, 100.00% packet loss
Zusammenfassung und Problemumgehung
Das beobachtete Verhalten, bei dem ARP-Einträge fälschlicherweise auf den vPC-Peer-Link und nicht auf den erwarteten Nicht-vPC-Trunk verweisen, tritt in der Regel unter bestimmten Umständen auf: wenn keine benutzerdefinierten MAC-Adressen auf Nicht-vPC-Switch Virtual Interfaces (SVIs) konfiguriert sind, auch wenn diese SVIs nicht für das Routing von Adjacencies über einen vPC verwendet werden.
Dieses Verhalten gilt nur für Nexus 9000-Switches der ersten Generation.
Um dieses Problem zu beheben, wird empfohlen, die MAC-Adressen für die betroffenen SVIs manuell zu konfigurieren. Durch das Ändern der MAC-Adressen kann verhindert werden, dass die ARP-Weiterleitung auftritt. Dadurch wird sichergestellt, dass das Netzwerk wie vorgesehen funktioniert, ohne dass in Nicht-vPC-Szenarien die vPC-Peer-Verbindung verwendet werden muss.
Problemumgehung:
N9K-A(config)# interface Vlan150
N9K-A(config-if)# mac-address 0000.aaaa.0030
N9K-A(config-if)# end
N9K-B(config)# interface Vlan150
N9K-B(config-if)# mac-address 0000.bbbb.0030
N9K-B(config-if)# end
Anmerkung: Aufgrund einer Hardwarebeschränkung können nur jeweils 16 benutzerdefinierte MAC-Adressen pro Gerät konfiguriert werden. Dies wird im Konfigurationsleitfaden für Cisco Nexus Nexus 9000-Schnittstellen dokumentiert, da der Switch eine Beschränkung auf 16 benutzerdefinierte MAC-Adressen (MEv6/statisch) aufweist. Eine Konfiguration nach diesem Grenzwert kann zu Problemen führen, die in der Cisco Bug-ID CSCux84428 dokumentiert sind 
Nachdem die Problemumgehung angewendet wurde, kann mithilfe der Ethanalyzer-Funktion auf NX-OS überprüft werden, ob der Nexus 9000-Switch A (N9K-A) die ARP-Antwort nicht mehr an seine Kontrollebene weiterleitet, wodurch die korrekte Verarbeitung der ARP-Antworten im Netzwerk bestätigt wird.
N9K-A# ethanalyzer local interface inband display-filter arp limit-c 0
Capturing on inband
2018-10-11 15:36:11.675108 00:00:bb:bb:00:30 -> ff:ff:ff:ff:ff:ff ARP Who has 192.0.2.100? Tell 192.0.2.3
Zugehörige Informationen
Weitere Informationen zu Layer-2-Trunks ohne vPC, Routing-Nachbarschaften und benutzerdefinierten SVI-MAC-Anforderungen finden Sie im Dokument Create Topology for Routing over Virtual Port Channel (Topologien für Routing über virtuellen Port-Channel erstellen).