In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
In diesem Dokument wird die Fehlerbehebung bei zeitweiligen Routing-Protokoll-Flaps und BFD-Flaps in Cisco IOS® XE mit EEM und EPC beschrieben.
Es wird empfohlen, sich mit den Einzelheiten des Embedded Event Manager (EEM) und der Embedded Packet Capture (EPC) für die an der Fehlerbehebung beteiligten Plattformen sowie mit Wireshark vertraut zu machen. Darüber hinaus wird empfohlen, sich mit den grundlegenden Hello- und Keepalive-Funktionen für Routing-Protokolle und BFD (Bidirectional Forwarding Detection) vertraut zu machen.
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.
Intermittierende Routingprotokoll-Flaps sind ein häufiges Problem in Produktionsnetzwerken, können aber aufgrund ihrer Unvorhersehbarkeit in Echtzeit schwer zu beheben sein. EEM bietet die Möglichkeit, die Datenerfassung zu automatisieren, indem die Datenerfassung mit Syslog-Strings ausgelöst wird, wenn es zu Flaps kommt. Mit EEM und EPC können Paketerfassungsdaten von beiden Enden der Adjacency erfasst werden, um potenzielle Paketverluste vor dem Flapping zu isolieren.
Intermittierende Flaps auf Routing-Protokolle beruhen immer auf einem Hello- oder Keepalive-Timeout (sofern es sich nicht um ein eindeutiges physisches Problem handelt, z. B. Link-Flaps, die in den Protokollen angezeigt werden). Dies ist also die Logik, die in diesem Dokument behandelt wird.
Das Wichtigste, um zu bestimmen, wann ein Flapping mit einem Routing-Protokoll auftritt, ist, ob die Hello- oder Keepalive-Pakete zum Zeitpunkt des Problems auf beiden Geräten gesendet und empfangen wurden. Bei dieser Fehlerbehebungsmethode wird ein kontinuierlicher EPC auf einem Ringpuffer verwendet, bis die Klappe auftritt. An diesem Punkt verwendet EEM die entsprechende Syslog-Zeichenfolge, um die Ausführung einer Reihe von Befehlen auszulösen, von denen einer den EPC stoppt. Die Option "Ringpuffer" ermöglicht es dem EPC, neue Pakete zu erfassen, während die ältesten Pakete im Puffer überschrieben werden. Dadurch wird sichergestellt, dass das Ereignis erfasst wird und der Puffer sich nicht füllt und nicht vorher angehalten wird. Die Paketerfassungsdaten können dann mit dem Zeitstempel der Klappe korreliert werden, um festzustellen, ob die erforderlichen Pakete vor dem Ereignis an beiden Enden gesendet und empfangen wurden.
Dieses Problem tritt in der Regel bei Geräten auf, die eine Adjacency über ein zwischengeschaltetes Netzwerk bilden, z. B. ein Internet Service Provider (ISP). Die gleiche Methode kann jedoch unabhängig von den spezifischen Topologiedetails für jedes Flapping-Szenario mit intermittierenden Routing-Protokollen verwendet werden. Dasselbe kann in Instanzen geschehen, in denen das Nachbargerät von einem Drittanbieter verwaltet wird und kein Zugriff darauf möglich ist. In solchen Fällen kann das in diesem Dokument beschriebene Fehlerbehebungsverfahren nur auf das eine zugängliche Gerät angewendet werden, um zu überprüfen, ob es die erforderlichen Pakete vor der Klappe gesendet und empfangen hat. Wenn dies bestätigt wird, können die Daten dem Partner angezeigt werden, der den Nachbarn verwaltet, um bei Bedarf weitere Fehlerbehebungen am anderen Ende durchzuführen.
In diesem Abschnitt finden Sie eine Reihe von Konfigurationsvorlagen, mit denen Sie diese automatisierte Datenerfassung einrichten können. Ändern Sie nach Bedarf die IP-Adressen, Schnittstellennamen und Dateinamen.
In den meisten Fällen stammt der einzige Datenverkehr, der von der IP-Adresse der Schnittstelle an beiden Enden einer Routing-Adjacency stammt, vom eigentlichen Routing-Kontrollverkehr. Eine ACL, die Datenverkehr von der IP-Adresse der lokalen Schnittstelle und der IP-Adresse des Nachbarn zu einem beliebigen Ziel zulässt, deckt somit die Anforderungen für alle Routing-Protokolle sowie für BFD ab. Wenn ein zusätzlicher Filter erforderlich ist, kann auch die auf dem Routing-Protokoll oder dem BFD-Modus basierende IP-Zieladresse angegeben werden. Definieren Sie die ACL-Parameter im Konfigurationsmodus:
config t
ip access-list extended
permit ip host
any permit ip host
any end
EPC-Parameter werden im privilegierten exec-Modus erstellt, nicht im Konfigurationsmodus. Überprüfen Sie die plattformspezifischen Konfigurationsleitfäden, um festzustellen, ob Einschränkungen in Bezug auf EPC bestehen. Erstellen Sie die Parameter für die gewünschte Schnittstelle, und ordnen Sie sie der ACL zu, um nach dem gewünschten Datenverkehr zu filtern:
Anmerkung: Bei einigen Softwareversionen ist der lokal generierte Datenverkehr bei einem EPC auf Schnittstellenebene nicht sichtbar. In solchen Szenarien können die Erfassungsparameter so geändert werden, dass beide Richtungen des Datenverkehrs an der CPU erfasst werden:
Starten Sie nach der Konfiguration den EPC:
Der EEM ist so eingestellt, dass die Erfassung gestoppt wird, wenn die Klappe auftritt.
Um sicherzustellen, dass Pakete in beide Richtungen erfasst werden, überprüfen Sie den Erfassungspuffer:
show monitor capture
buffer brief
Anmerkung: Für die Catalyst Switching-Plattformen (wie Cat9k und Cat3k) muss die Erfassung beendet werden, bevor der Puffer angezeigt werden kann. Um sicherzustellen, dass die Erfassung funktioniert, beenden Sie die Erfassung mit dem Befehl monitor capture stop, zeigen Sie den Puffer an, und starten Sie ihn dann erneut, um Daten zu sammeln.
Der Hauptzweck des EEM besteht darin, die Paketerfassung zu stoppen und zusammen mit dem Syslog-Puffer zu speichern. Zusätzliche Befehle können hinzugefügt werden, um andere Faktoren zu überprüfen, z. B. die CPU, das Verwerfen von Schnittstellen oder die plattformspezifische Ressourcennutzung und die Verwerfungszähler. Erstellen Sie das EEM-Applet im Konfigurationsmodus:
config t
event manager applet
authorization bypass event syslog pattern "
" maxrun 120 ratelimit 100000 action 000 cli command "enable" action 005 cli command "show clock | append bootflash:
.txt" action 010 cli command "show logging | append bootflash:
.txt" action 015 cli command "show process cpu sorted | append bootflash:
.txt" action 020 cli command "show process cpu history | append bootflash:
.txt" action 025 cli command "show interfaces | append bootflash:
.txt" action 030 cli command "monitor capture
stop" action 035 cli command "monitor capture
export bootflash:
.pcap" action 040 syslog msg "Saved logs to bootflash:
.txt and saved packet capture to bootflash:
.pcap" action 045 cli command "end" end
Anmerkung: Auf Catalyst Switching-Plattformen (wie Cat9k und Cat3k) unterscheidet sich der Befehl zum Exportieren der Erfassung geringfügig. Ändern Sie für diese Plattformen den in Aktion 035 verwendeten CLI-Befehl:
action 035 cli command "monitor capture
export location bootflash:
.pcap"
Der ratelimit-Wert im EEM wird in Sekunden angegeben und gibt an, wie viel Zeit vergehen muss, bis der EEM wieder ausgeführt werden kann. In diesem Beispiel ist sie auf 100000 Sekunden (27,8 Stunden) festgelegt, damit der Netzwerkadministrator genügend Zeit hat, um zu erkennen, ob der Vorgang abgeschlossen wurde, und um die Dateien vom Gerät abzurufen, bevor es erneut ausgeführt wird. Wenn der EEM nach dieser Ratenlimitierungsphase wieder selbstständig ausgeführt wird, werden keine neuen Paketerfassungsdaten erfasst, da der EPC manuell gestartet werden muss. Neue Ausgabe des Befehls show wird jedoch an die Textdateien angehängt.
Der EEM kann nach Bedarf geändert werden, um plattformspezifische Paketverwerfungsinformationen zu erfassen und zusätzliche Funktionen für das Szenario zu erhalten.
In diesem Beispiel sind alle Timer auf den Standardwert eingestellt (5-Sekunden-Hellos, 15-Sekunden-Haltezeit).
Aus den Protokollen auf R1 geht hervor, dass es intermittierende EIGRP-Flaps gegeben hat, die mehrere Stunden voneinander entfernt aufgetreten sind:
R1#show logging | i EIGRP
*Jul 16 20:45:08.019: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.2 (Tunnel10) is down: Interface PEER-TERMINATION received
*Jul 16 20:45:12.919: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.2 (Tunnel10) is up: new adjacency
*Jul 17 10:25:42.970: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.2 (Tunnel10) is down: holding time expired
*Jul 17 10:25:59.488: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.2 (Tunnel10) is up: new adjacency
*Jul 17 14:39:02.970: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.2 (Tunnel10) is down: holding time expired
*Jul 17 14:39:16.488: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.2 (Tunnel10) is up: new adjacency
Der Paketverlust kann in beide Richtungen auftreten. Haltezeit abgelaufen zeigt an, dass dieses Gerät innerhalb der Haltezeit keinen Hello-Anruf vom Peer empfangen oder verarbeitet hat, und dass Interface PEER-TERMINATION received anzeigt, dass der Peer die Adjacency beendet hat, weil er innerhalb der Haltezeit keinen Hello-Anruf empfangen oder verarbeitet hat.
1. Konfigurieren Sie die ACL mit den IP-Adressen der Tunnelschnittstelle, da dies die Quell-IP-Adressen der Hellos sind:
R1#conf t
R1(config)#ip access-list extended FLAP_CAPTURE
R1(config-ext-nacl)#permit ip host 192.168.10.1 any
R1(config-ext-nacl)#permit ip host 192.168.10.2 any
R1(config-ext-nacl)#end
Anmerkung: Die gezeigten Konfigurationen stammen aus R1. Das Gleiche gilt für R2 für die relevanten Schnittstellen und mit geänderten Dateinamen für den EEM. Wenn weitere Spezifitäten erforderlich sind, konfigurieren Sie die ACL mit der EIGRP-Multicast-Adresse 224.0.0.10 als Ziel-IP-Adresse, um die Hellos zu erfassen.
2. Erstellen Sie den EPC, und ordnen Sie ihn der Schnittstelle und der ACL zu:
R1#monitor capture CAP interface Tunnel10 both
R1#monitor capture CAP access-list FLAP_CAPTURE
R1#monitor capture CAP buffer size 5 circular
3. Starten Sie den EPC, und bestätigen Sie, dass die Pakete in beide Richtungen erfasst werden:
R1#monitor capture CAP start
R1#show monitor capture CAP buffer brief
----------------------------------------------------------------------------
# size timestamp source destination dscp protocol
----------------------------------------------------------------------------
0 74 0.000000 192.168.10.1 -> 224.0.0.10 48 CS6 EIGRP
1 74 0.228000 192.168.10.2 -> 224.0.0.10 48 CS6 EIGRP
2 74 4.480978 192.168.10.2 -> 224.0.0.10 48 CS6 EIGRP
3 74 4.706024 192.168.10.1 -> 224.0.0.10 48 CS6 EIGRP
4. Konfigurieren Sie EEM:
R1#conf t
R1(config)#event manager applet R1_EIGRP_FLAP authorization bypass
R1(config-applet)#event syslog pattern "%DUAL-5-NBRCHANGE" maxrun 120 ratelimit 100000
R1(config-applet)#action 000 cli command "enable"
R1(config-applet)#action 005 cli command "show clock | append bootflash:R1_EIGRP_FLAP.txt"
R1(config-applet)#action 010 cli command "show logging | append bootflash:R1_EIGRP_FLAP.txt"
R1(config-applet)#action 015 cli command "show process cpu sorted | append bootflash:R1_EIGRP_FLAP.txt"
R1(config-applet)#action 020 cli command "show process cpu history | append bootflash:R1_EIGRP_FLAP.txt"
R1(config-applet)#action 025 cli command "show interfaces | append bootflash:R1_EIGRP_FLAP.txt"
R1(config-applet)#action 030 cli command "monitor capture CAP stop"
R1(config-applet)#action 035 cli command "monitor capture CAP export bootflash:R1_EIGRP_CAP.pcap"
R1(config-applet)#action 040 syslog msg "Saved logs to bootflash:R1_EIGRP_FLAP.txt and saved packet capture to bootflash:R1_EIGRP_CAP.pcap"
R1(config-applet)#action 045 cli command "end"
R1(config-applet)#end
5. Warten Sie auf die nächste Klappe auftreten, und kopieren Sie die Dateien von bootflash über Ihre bevorzugte Übertragungsmethode für die Analyse:
R1#show logging
*Jul 17 16:51:47.154: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.2 (Tunnel10) is down: Interface PEER-TERMINATION received *Jul 17 16:51:48.015: %BUFCAP-6-DISABLE: Capture Point CAP disabled. *Jul 17 16:51:48.283: %HA_EM-6-LOG: EIGRP_FLAP: Saved logs to bootflash:EIGRP_FLAP.txt and saved packet capture to bootflash:EIGRP_FLAP.pcap *Jul 17 16:51:51.767: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.2 (Tunnel10) is up: new adjacency R1# R1#dir bootflash: | i EIGRP 23 -rw- 147804 Jul 17 2024 16:51:48 +00:00 EIGRP_CAP.pcap 22 -rw- 74450 Jul 17 2024 16:51:47 +00:00 EIGRP_FLAP.txt
Korrelieren Sie an diesem Punkt die Zeit der im Protokollpuffer gefundenen Klappe mit den erfassten Paketerfassungen, um zu bestimmen, ob die Hello-Pakete an beiden Enden gesendet und empfangen wurden, als die Klappe auftrat. Da die empfangene Schnittstelle PEER-TERMINATION auf R1 erkannt wurde, bedeutet dies, dass R2 verlorene Hellos erkannt haben muss und daher die Haltezeit abgelaufen ist, was in der Protokolldatei zu sehen ist:
*Jul 17 16:51:47.156: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.1 (Tunnel10) is down: holding time expired
*Jul 17 16:51:51.870: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.10.1 (Tunnel10) is up: new adjacency
Da die von R2 erkannte Haltezeit abgelaufen ist, überprüfen Sie, ob in den 15 Sekunden vor der Klappe in der auf R1 erfassten Erfassung Hellos von R1 gesendet wurden:
Der nächste Schritt besteht darin, zu überprüfen, ob alle von R1 gesendeten Hellos von R2 zu dem Zeitpunkt empfangen wurden. Daher muss die von R2 erfasste Erfassung überprüft werden:
Die Schlussfolgerung aus diesen Daten ist, dass der Paketverlust irgendwo im Trägernetz zwischen R1 und R2 liegt. In diesem Fall lag der Verlust in Richtung von R1 bis R2. Um weiter zu untersuchen, muss der Träger beteiligt sein, um den Pfad auf Tropfen zu überprüfen.
Dieselbe Logik kann zur Fehlerbehebung bei zeitweiligen OSPF-Flaps verwendet werden. In diesem Abschnitt werden die wichtigsten Faktoren beschrieben, die das Protokoll in Bezug auf Timer, IP-Adressfilter und Protokollmeldungen von anderen Routing-Protokollen unterscheiden.
R1 erkennt den abgelaufenen Dead-Timer:
R1#show logging | i OSPF
*Jul 30 15:29:14.027: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.30.2 on Tunnel20 from FULL to DOWN, Neighbor Down: Dead timer expired
*Jul 30 15:32:30.278: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.30.2 on Tunnel20 from LOADING to FULL, Loading Done
*Jul 30 16:33:19.841: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.30.2 on Tunnel20 from FULL to DOWN, Neighbor Down: Dead timer expired
*Jul 30 16:48:10.504: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.30.2 on Tunnel20 from LOADING to FULL, Loading Done
R2 zeigt die Protokollmeldungen jedoch nur an, wenn OSPF zurück auf FULL wechselt. Wenn der Status zu INIT wechselt, wird keine Protokollmeldung angezeigt:
R2#show logging | i OSPF
*Jul 30 16:32:30.279: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.30.1 on Tunnel20 from LOADING to FULL, Loading Done
*Jul 30 16:48:10.506: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.30.1 on Tunnel20 from LOADING to FULL, Loading Done
Verwenden Sie "%OSPF-5-ADJCHG" als Syslog-Muster, um den EEM auf beiden Geräten auszulösen. So wird sichergestellt, dass der EEM auf beiden Geräten ausgelöst wird, solange er ausfällt und wieder aktiv ist. Der konfigurierte ratelimit-Wert stellt sicher, dass bei mehreren Protokollen mit dieser Zeichenfolge innerhalb kurzer Zeit keine doppelte Auslösung erfolgt. Der Schlüssel liegt darin, zu bestätigen, ob Hellos in den Paketerfassungen auf beiden Seiten gesendet und empfangen werden.
Dieselbe Logik kann auch für die Fehlerbehebung bei zeitweiligen BGP-Flaps verwendet werden. In diesem Abschnitt werden die wichtigsten Faktoren beschrieben, die das Protokoll in Bezug auf Timer, IP-Adressfilter und Protokollmeldungen von anderen Routing-Protokollen unterscheiden.
R1 erkennt die abgelaufene Haltezeit und sendet eine Benachrichtigung an R2:
R1#show logging | i BGP
*Jul 30 17:49:23.730: %BGP-3-NOTIFICATION: sent to neighbor 192.168.30.2 4/0 (hold time expired) 0 bytes
*Jul 30 17:49:23.731: %BGP-5-NBR_RESET: Neighbor 192.168.30.2 reset (BGP Notification sent)
*Jul 30 17:49:23.732: %BGP-5-ADJCHANGE: neighbor 192.168.30.2 Down BGP Notification sent
*Jul 30 17:49:23.732: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.30.2 IPv4 Unicast topology base removed from session BGP Notification sent
R2 erhält Benachrichtigung von R1, weil R1 erkannte, dass die Haltezeit abgelaufen ist:
R2#show logging | i BGP
*Jul 30 17:49:23.741: %BGP-3-NOTIFICATION: received from neighbor 192.168.30.1 4/0 (hold time expired) 0 bytes
*Jul 30 17:49:23.741: %BGP-5-NBR_RESET: Neighbor 192.168.30.1 reset (BGP Notification received)
*Jul 30 17:49:23.749: %BGP-5-ADJCHANGE: neighbor 192.168.30.1 Down BGP Notification received
*Jul 30 17:49:23.749: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.30.1 IPv4 Unicast topology base removed from session BGP Notification received
Verwenden Sie "%BGP_SESSION-5-ADJCHANGE" als Syslog-Muster, um den EEM für eine BGP-Klappe auszulösen. Alle anderen "%BGP"-Syslog-Meldungen, die auch nach der Klappe protokolliert werden, können ebenfalls zum Auslösen des EEM verwendet werden.
Die gleiche Methode kann bei der Fehlerbehebung bei zeitweiligen BFD-Flaps angewendet werden, wobei für die Analyse einige geringfügige Unterschiede bestehen. In diesem Abschnitt werden einige grundlegende BFD-Funktionen behandelt. Außerdem wird ein Beispiel für die Verwendung von EEM und EPC zur Fehlerbehebung bereitgestellt. Weitere Informationen zur BFD-Fehlerbehebung finden Sie unter Fehlerbehebung bei bidirektionaler Weiterleitungserkennung in Cisco IOS XE.
In diesem Beispiel werden die BFD-Timer auf 300 ms mit einem Multiplikator von 3 festgelegt, d. h. alle 300 ms werden Echos gesendet. Ein Echofehler wird erkannt, wenn nicht drei aufeinander folgende Echopakete zurückgegeben werden (dies entspricht einer Haltezeit von 900 ms).
Im BFD-Echo-Modus (dem Standardmodus) werden die BFD-Echo-Pakete mit der lokalen Schnittstellen-IP als Quelle und Ziel gesendet. Auf diese Weise kann der Nachbar das Paket auf Datenebene verarbeiten und an das Quellgerät zurücksenden. Jedes BFD-Echo wird mit einer Echo-ID im BFD-Echo-Nachrichten-Header gesendet. Diese können verwendet werden, um festzustellen, ob ein gesendetes BFD-Echo-Paket zurückempfangen wurde, da ein beliebiges BFD-Echo-Paket zweimal vorkommen muss, wenn es tatsächlich vom Nachbarn zurückgesendet wurde. Die BFD-Steuerungspakete, mit denen der Status der BFD-Sitzung gesteuert wird, werden per Unicast zwischen den IP-Adressen der Schnittstellen gesendet.
Aus den Protokollen von R1 geht hervor, dass die BFD-Adjacency aufgrund von ECHO FAILURE mehrfach abgenommen hat, d. h. dass R1 in diesen Intervallen 3 eigene Echo-Pakete nicht von R2 empfangen oder verarbeitet hat.
R1#show logging | i BFD
*Jul 18 13:41:09.007: %BFDFSM-6-BFD_SESS_DOWN: BFD-SYSLOG: BFD session ld:4097 handle:1,is going Down Reason: ECHO FAILURE
*Jul 18 13:41:09.009: %BGP-5-NBR_RESET: Neighbor 192.168.30.2 reset (BFD adjacency down)
*Jul 18 13:41:09.010: %BGP-5-ADJCHANGE: neighbor 192.168.30.2 Down BFD adjacency down
*Jul 18 13:41:09.010: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.30.2 IPv4 Unicast topology base removed from session BFD adjacency down
*Jul 18 13:41:09.010: %BFD-6-BFD_SESS_DESTROYED: BFD-SYSLOG: bfd_session_destroyed, ld:4097 neigh proc:BGP, handle:1 active
*Jul 18 13:41:13.335: %BFDFSM-6-BFD_SESS_UP: BFD-SYSLOG: BFD session ld:4097 handle:1 is going UP
*Jul 18 13:41:18.576: %BFD-6-BFD_SESS_CREATED: BFD-SYSLOG: bfd_session_created, neigh 192.168.30.2 proc:BGP, idb:Tunnel30 handle:1 act
*Jul 18 13:41:19.351: %BFDFSM-6-BFD_SESS_UP: BFD-SYSLOG: BFD session ld:4097 handle:1 is going UP
*Jul 18 15:44:08.360: %BFDFSM-6-BFD_SESS_DOWN: BFD-SYSLOG: BFD session ld:4097 handle:1,is going Down Reason: ECHO FAILURE
*Jul 18 15:44:08.362: %BGP-5-NBR_RESET: Neighbor 192.168.30.2 reset (BFD adjacency down)
*Jul 18 15:44:08.363: %BGP-5-ADJCHANGE: neighbor 192.168.30.2 Down BFD adjacency down
*Jul 18 15:44:08.363: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.30.2 IPv4 Unicast topology base removed from session BFD adjacency down
*Jul 18 15:44:08.363: %BFD-6-BFD_SESS_DESTROYED: BFD-SYSLOG: bfd_session_destroyed, ld:4097 neigh proc:BGP, handle:1 active
*Jul 18 15:44:14.416: %BFDFSM-6-BFD_SESS_UP: BFD-SYSLOG: BFD session ld:4097 handle:1 is going UP
*Jul 18 15:44:14.418: %BFD-6-BFD_SESS_DESTROYED: BFD-SYSLOG: bfd_session_destroyed, ld:4097 neigh proc:CEF, handle:1 active
*Jul 18 15:44:18.315: %BFD-6-BFD_SESS_CREATED: BFD-SYSLOG: bfd_session_created, neigh 192.168.30.2 proc:BGP, idb:Tunnel30 handle:2 act
1. Konfigurieren Sie die ACL mit den IP-Adressen der Tunnelschnittstelle, da dies die Quell-IP-Adressen der BFD-Echo- und Steuerungspakete sind:
R1#conf t
R1(config)#ip access-list extended FLAP_CAPTURE
R1(config-ext-nacl)#permit ip host 192.168.30.1 any
R1(config-ext-nacl)#permit ip host 192.168.30.2 any
Anmerkung: Die gezeigten Konfigurationen stammen aus R1. Das Gleiche gilt für R2 für die relevanten Schnittstellen und mit geänderten Dateinamen für den EEM. Falls weitere Spezifität erforderlich ist, konfigurieren Sie die ACL für UDP mit den Zielports 3785 (Echo-Pakete) und 3784 (Kontrollpakete).
2. Erstellen Sie den EPC, und ordnen Sie ihn der Schnittstelle und der ACL zu:
R1#monitor capture CAP interface Tunnel30 both
R1#monitor capture CAP access-list FLAP_CAPTURE
R1#monitor capture CAP buffer size 5 circular
3. Starten Sie den EPC, und bestätigen Sie, dass die Pakete in beide Richtungen erfasst werden:
R1#monitor capture CAP start
R1#show monitor capture CAP buff brief
----------------------------------------------------------------------------
# size timestamp source destination dscp protocol
----------------------------------------------------------------------------
0 54 0.000000 192.168.30.2 -> 192.168.30.2 48 CS6 UDP
1 54 0.000000 192.168.30.2 -> 192.168.30.2 48 CS6 UDP
2 54 0.005005 192.168.30.1 -> 192.168.30.1 48 CS6 UDP
3 54 0.005997 192.168.30.1 -> 192.168.30.1 48 CS6 UDP
4. Konfigurieren Sie EEM:
R1#conf t
R1(config)#event manager applet R1_BFD_FLAP authorization bypass
R1(config-applet)#event syslog pattern "%BFDFSM-6-BFD_SESS_DOWN" maxrun 120 ratelimit 100000
R1(config-applet)#action 000 cli command "enable"
R1(config-applet)#action 005 cli command "show clock | append bootflash:R1_BFD_FLAP.txt"
R1(config-applet)#action 010 cli command "show logging | append bootflash:R1_BFD_FLAP.txt"
R1(config-applet)#action 015 cli command "show process cpu sorted | append bootflash:R1_BFD_FLAP.txt"
R1(config-applet)#action 020 cli command "show process cpu history | append bootflash:R1_BFD_FLAP.txt"
R1(config-applet)#action 025 cli command "show interfaces | append bootflash:R1_BFD_FLAP.txt"
R1(config-applet)#action 030 cli command "monitor capture CAP stop"
R1(config-applet)#action 035 cli command "monitor capture CAP export bootflash:R1_BFD_CAP.pcap"
R1(config-applet)#action 040 syslog msg "Saved logs to bootflash:R1_BFD_FLAP.txt and saved packet capture to bootflash:R1_BFD_CAP.pcap"
R1(config-applet)#action 045 cli command "end"
R1(config-applet)#end
5. Warten Sie auf die nächste Klappe auftreten, und kopieren Sie die Dateien von bootflash über Ihre bevorzugte Übertragungsmethode für die Analyse:
R1#show logging
*Jul 18 19:09:47.482: %BFDFSM-6-BFD_SESS_DOWN: BFD-SYSLOG: BFD session ld:4097 handle:1,is going Down Reason: ECHO FAILURE *Jul 18 19:09:47.483: %BGP-5-NBR_RESET: Neighbor 192.168.30.2 reset (BFD adjacency down) *Jul 18 19:09:47.487: %BGP-5-ADJCHANGE: neighbor 192.168.30.2 Down BFD adjacency down *Jul 18 19:09:47.487: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.30.2 IPv4 Unicast topology base removed from session BFD adjacency down *Jul 18 19:09:47.487: %BFD-6-BFD_SESS_DESTROYED: BFD-SYSLOG: bfd_session_destroyed, ld:4097 neigh proc:BGP, handle:1 active *Jul 18 19:09:48.191: %BUFCAP-6-DISABLE: Capture Point CAP disabled. *Jul 18 19:09:48.668: %HA_EM-6-LOG: R1_BFD_FLAP: Saved logs to bootflash:R1_BFD_FLAP.txt and saved packet capture to bootflash:R1_BFD_CAP.pcap *Jul 18 19:09:50.165: %BFDFSM-6-BFD_SESS_UP: BFD-SYSLOG: BFD session ld:4097 handle:1 is going UP *Jul 18 19:09:54.386: %BFD-6-BFD_SESS_CREATED: BFD-SYSLOG: bfd_session_created, neigh 192.168.30.2 proc:BGP, idb:Tunnel30 handle:1 act *Jul 18 19:09:54.386: %BGP-5-ADJCHANGE: neighbor 192.168.30.2 Up *Jul 18 19:09:55.178: %BFDFSM-6-BFD_SESS_UP: BFD-SYSLOG: BFD session ld:4097 handle:1 is going UP R1# R1#dir | i BFD 25 -rw- 1591803 Jul 18 2024 19:09:48 +00:00 R1_BFD_CAP.pcap 24 -rw- 84949 Jul 18 2024 19:09:48 +00:00 R1_BFD_FLAP.txt
Korrelieren Sie an diesem Punkt die Zeit der im Protokollpuffer gefundenen Klappe mit den erfassten Paketerfassungen, um zu ermitteln, ob die BFD-Echos an beiden Enden gesendet und empfangen wurden, als das Problem auftrat. Da der Grund für die Klappe auf R1 "ECHO FAILURE" ist, bedeutet dies, dass ein Kontrollpaket an R2 gesendet wurde, um die BFD-Sitzung zu beenden. Dies spiegelt sich in der Protokolldatei wider, die von R2 gesammelt wurde, in der der Grund für den BFD-Ausfall "RX DOWN" zu sehen ist:
*Jul 18 19:09:47.468: %BFDFSM-6-BFD_SESS_DOWN: BFD-SYSLOG: BFD session ld:4098 handle:2,is going Down Reason: RX DOWN
*Jul 18 19:09:47.470: %BGP-5-NBR_RESET: Neighbor 192.168.30.1 reset (BFD adjacency down)
*Jul 18 19:09:47.471: %BGP-5-ADJCHANGE: neighbor 192.168.30.1 Down BFD adjacency down
*Jul 18 19:09:47.471: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.30.1 IPv4 Unicast topology base removed from session BFD adjacency down
*Jul 18 19:09:47.471: %BFD-6-BFD_SESS_DESTROYED: BFD-SYSLOG: bfd_session_destroyed, ld:4098 neigh proc:BGP, handle:2 active
Da R1 einen ECHO-FEHLER erkannte, überprüfen Sie die auf R1 erfasste Paketerfassung, um festzustellen, ob in den 900 ms vor der Klappe BFD-Echos gesendet und empfangen wurden.
Im nächsten Schritt muss überprüft werden, ob alle von R1 gesendeten BFD-Echo-Pakete von R2 empfangen und zurückgegeben wurden. Die von R2 erfasste Erfassung muss daher überprüft werden:
Die Schlussfolgerung aus diesen Daten ist, dass der Paketverlust irgendwo im Trägernetz zwischen R1 und R2 liegt, und alle Hinweise an dieser Stelle deuten darauf hin, dass die Richtung des Verlustes von R2 nach R1 ist. Um weiter zu untersuchen, muss der Träger beteiligt sein, um den Pfad auf Tropfen zu überprüfen.
Dieselbe Methode kann angewendet werden, wenn der asynchrone BFD-Modus verwendet wird (Echofunktion deaktiviert). Die EEM- und EPC-Konfiguration können beibehalten werden. Der Unterschied im asynchronen Modus besteht darin, dass die Geräte Unicast-BFD-Steuerungspakete analog zu einer typischen Routing-Protokoll-Adjacency als Keepalive untereinander senden. Das bedeutet, dass nur Pakete vom UDP-Port 3784 gesendet werden. In diesem Szenario bleibt BFD im aktiven Zustand, solange ein BFD-Paket vom Nachbarn innerhalb des erforderlichen Intervalls empfangen wird. Wenn dies nicht geschieht, lautet der Fehlergrund DETECT TIMER EXPIRED (TIMER ERKANNT), und der Router sendet ein Steuerungspaket an den Peer, um die Sitzung zu beenden.
Um die Erfassungen auf dem Gerät zu analysieren, das den Fehler erkannt hat, suchen Sie nach den Unicast-BFD-Paketen, die der Peer in der Zeit vor dem Ausfall der Klappe empfangen hat. Wenn das TX-Intervall beispielsweise mit einem Multiplikator von 3 auf 300 ms festgelegt wird, gibt dies einen potenziellen Paketverlust an, wenn in den 900 ms vor der Klappe keine BFD-Pakete empfangen wurden. Aktivieren Sie in der Erfassung, die vom Nachbarn über den EEM erfasst wird, dasselbe Zeitfenster. Wenn die Pakete während dieser Zeit gesendet wurden, wird bestätigt, dass irgendwo zwischen den Geräten ein Verlust auftritt.
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
20-Dec-2024 |
Erstveröffentlichung |