Inhalt

Einleitung

Hintergrundinformationen

Workflow für die Fehlerbehebung bei hohen CPUs

Anwenderbericht 1. Address Resolution Protocol Interrupts

Schritt 1: Identifizieren des Prozesses, der CPU-Zyklen beansprucht

Schritt 2: Ermitteln, warum FED Pakete auf die Kontrollebene stapelt

Anwenderbericht 2. IP-Weiterleitungen mit CoPP

Fallstudie 3. Intermittierend hohe CPU

Zugehörige Informationen

Einleitung

In diesem Dokument wird beschrieben, wie Sie bei Problemen mit hoher CPU-Auslastung, vor allem aufgrund von Unterbrechungen, auf den neuen Cisco IOS®-XE-Plattformen mit 16.x-Versionen (auch Polaris genannt) Abhilfe schaffen. Darüber hinaus werden in diesem Dokument verschiedene neue Befehle auf dieser Plattform vorgestellt, die zur Fehlerbehebung bei solchen Problemen unverzichtbar sind.

Hintergrundinformationen

Es ist wichtig zu verstehen, wie Cisco IOS®-XE aufgebaut ist. Mit Cisco IOS®-XE hat Cisco auf einen Linux-Kernel umgestellt, und alle Subsysteme wurden in Prozesse unterteilt. Alle Subsysteme, die sich zuvor in Cisco IOS® befanden, wie z. B. die Modultreiber, Hochverfügbarkeit (HA) usw., werden jetzt als Softwareprozesse innerhalb des Linux-Betriebssystems (OS) ausgeführt. Cisco IOS® selbst wird als Daemon innerhalb des Linux-Betriebssystems (IOSd) ausgeführt. Cisco IOS®-XE bietet nicht nur dasselbe Erscheinungsbild wie das klassische Cisco IOS®, sondern auch Betrieb, Support und Management.

Hier einige nützliche Definitionen:

- Forwarding Engine Driver (FED): Hierbei handelt es sich um das Herzstück des Cisco Catalyst-Switches, der für die gesamte Hardwareprogrammierung/-weiterleitung verantwortlich ist.

- IOSd: Dies ist der Cisco IOS®-Daemon, der auf dem Linux-Kernel ausgeführt wird. Es wird als ein Softwareprozess innerhalb des Kernels ausgeführt

- Packet Delivery System (PDS): Dies ist die Architektur und der Prozess, wie Pakete von und an die verschiedenen Subsysteme übermittelt werden. Beispielsweise steuert es, wie Pakete vom FED an das IOSd und umgekehrt übermittelt werden

- Kontrollebene (CP): Die Kontrollebene ist ein allgemeiner Begriff, der verwendet wird, um die Funktionen und den Datenverkehr, die die CPU des Catalyst Switches betreffen, zusammenzufassen. Dazu gehören Datenverkehr wie Spanning Tree Protocol (STP), Hot Standby Router Protocol (HSRP) und Routing-Protokolle, die für den Switch bestimmt sind oder vom Switch gesendet werden. Dazu gehören auch Protokolle auf Anwendungsebene wie Secure Shell (SSH) und Simple Network Management Protocol (SNMP), die von der CPU verarbeitet werden müssen

- Datenebene (DP): In der Regel umfasst die Datenebene die Hardware-ASICs und den Datenverkehr, der ohne Unterstützung durch die Kontrollebene weitergeleitet wird

- Punt: Eingangsprotokoll-Steuerungspaket, das vom DP abgefangen wurde und zur Verarbeitung an den CP gesendet wurde

- Injektion: Von CP generiertes Protokollpaket wird an DP gesendet, um an E/A-Schnittstelle(n) auszugehen

- LSMPI: Punt-Schnittstelle für gemeinsamen Speicher von Linux

Allgemeines Diagramm des Kommunikationspfads zwischen der Datenebene und der Kontrollebene:

Workflow für die Fehlerbehebung bei hohen CPUs

In diesem Abschnitt wird ein systematischer Workflow zur Ermittlung von Problemen mit der hohen CPU auf den Switches beschrieben. Bitte beachten Sie, dass zum Zeitpunkt der Erstellung dieses Abschnitts ausgewählte Prozesse behandelt werden.

Anwenderbericht 1. Address Resolution Protocol Interrupts

Der in diesem Abschnitt beschriebene Fehlerbehebungs- und Verifizierungsprozess kann bei einer hohen CPU-Auslastung aufgrund von Unterbrechungen umfassend genutzt werden.

Schritt 1: Identifizieren des Prozesses, der CPU-Zyklen beansprucht

Der Befehl show process cpu wird verwendet, um den aktuellen Prozessstatus innerhalb des IOSd-Daemons anzuzeigen. Wenn Sie die Ausgabe hinzufügen, ändern Sie | 0.00 ausschließen, werden die derzeit inaktiven Prozesse herausgefiltert.

Aus dieser Ausgabe ergeben sich zwei wertvolle Informationen:

- CPU-Auslastung für fünf Sekunden: 91 %/30 %

- Die erste Zahl (91 %) ist die Gesamt-CPU-Auslastung des Switches

- Die zweite Zahl (30 %) ist die Auslastung, die durch Interrupts von der Datenebene verursacht wird.

- Der Address Resolution Protocol (ARP)-Eingabeprozess ist derzeit der wichtigste IOS®-Prozess, der die Ressourcen beansprucht:

Switch# show processes cpu sort | ex 0.00

CPU utilization for five seconds: 91%/30%; one minute: 30%; five minutes: 8%

PID Runtime(ms)     Invoked      uSecs   5Sec   1Min   5Min TTY Process

37       14645         325      45061 59.53% 18.86%  4.38%   0 ARP Input

137        2288         115      19895  1.20%  0.14%  0.07%   0 Per-minute Jobs

373        2626       35334         74  0.15%  0.11%  0.09%   0 MMA DB TIMER

218        3123       69739         44  0.07%  0.09%  0.12%   0 IP ARP Retry Age

404        2656       35333         75  0.07%  0.09%  0.09%   0 MMA DP TIMER

Der Befehl show processes cpu platform sorted wird verwendet, um anzuzeigen, wie die Prozessnutzung vom Linux-Kernel aussieht. Aus der Ausgabe kann man beobachten, dass der FED-Prozess hoch ist, was auf die ARP-Anfragen zurückzuführen ist, die an den IOSd-Prozess gesendet wurden:

Switch# show processes cpu platform sorted

CPU utilization for five seconds: 38%, one minute: 38%, five minutes: 40%

Core 0: CPU utilization for five seconds: 39%, one minute: 37%, five minutes: 39%

Core 1: CPU utilization for five seconds: 41%, one minute: 38%, five minutes: 40%

Core 2: CPU utilization for five seconds: 30%, one minute: 38%, five minutes: 40%

Core 3: CPU utilization for five seconds: 37%, one minute: 39%, five minutes: 41%

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

--------------------------------------------------------------------------------

22701   22439     89%     88%     88%  R       2187444224  linux_iosd-imag

11626   11064     46%     47%     48%  S       2476175360  fed main event

4585       2      7%      9%      9%  S                0  lsmpi-xmit

4586       2      3%      6%      6%  S                0  lsmpi-rx

Schritt 2: Ermitteln, warum FED Pakete auf die Kontrollebene stapelt

Aus Schritt 1. können Sie ableiten, dass der IOSd/ARP-Prozess zwar hoch ist, aber von Datenverkehr beeinträchtigt wird, der von der Datenebene eingeführt wird. Weitere Untersuchungen, warum der FED-Prozess Datenverkehr an die CPU sendet und woher dieser Datenverkehr kommt, sind erforderlich.

Die Zusammenfassung der Ursache für den aktiven Punt-Angriff auf der Anzeigeplattform und die entsprechende Software gibt einen allgemeinen Überblick. Jede Zahl, die sich über mehrere Durchläufe dieses Befehls erhöht:

Switch#show platform software fed switch active punt cause summary

Statistics for all causes

Cause    Cause Info                                       Rcvd         Dropped

------------------------------------------------------------------------------

7        ARP request or response                          18444227     0

11       For-us data                                      16           0

21       RP<->QFP keepalive                               3367         0

24       Glean adjacency                                  2            0

55       For-us control                                   6787         0

60       IP subnet or broadcast packet                    14           0

96       Layer2 control protocols                         3548         0

------------------------------------------------------------------------------

Pakete, die von FED an die Steuerungsebene gesendet werden, verwenden eine geteilte Warteschlangenstruktur, um Kontrolldatenverkehr mit hoher Priorität zu gewährleisten. Dieser Datenverkehr geht nicht hinter Datenverkehr mit niedrigerer Priorität verloren, wie beim ARP. Eine allgemeine Übersicht dieser Warteschlangen kann mithilfe der aktiven CPU-Schnittstelle des show platform-softwaregesteuerten Switches angezeigt werden. Nachdem Sie diesen Befehl mehrmals ausgeführt haben, kann festgestellt werden, dass die Forus Resolution-Warteschlange (Forus - d. h. der an die CPU gerichtete Datenverkehr) schnell inkrementiert wird.

Switch#show platform software fed switch active cpu-interface

queue                      retrieved   dropped     invalid     hol-block

-------------------------------------------------------------------------

Routing Protocol           8182        0           0           0

L2 Protocol                161         0           0           0

sw forwarding              2           0           0           0

broadcast                  14          0           0           0

icmp gen                   0           0           0           0

icmp redirect              0           0           0           0

logging                    0           0           0           0

rpf-fail                   0           0           0           0

DOT1X authentication       0           0           0           0

Forus Traffic              16          0           0           0

Forus Resolution           24097779    0           0           0

Inter FED                  0           0           0           0

L2 LVX control             0           0           0           0

EWLC control               0           0           0           0

EWLC data                  0           0           0           0

L2 LVX data                0           0           0           0

Learning cache             0           0           0           0

Topology control           4117        0           0           0

Proto snooping             0           0           0           0

DHCP snooping              0           0           0           0

Transit Traffic            0           0           0           0

Multi End station          0           0           0           0

Webauth                    0           0           0           0

Crypto control             0           0           0           0

Exception                  0           0           0           0

General Punt               0           0           0           0

NFL sampled data           0           0           0           0

Low latency                0           0           0           0

EGR exception              0           0           0           0

FSS                        0           0           0           0

Multicast data             0           0           0           0

Gold packet                0           0           0           0

Mit dem Einsatz der Show-Plattform Software-Feed Switch Active Punt cpuq alle gibt eine detailliertere Ansicht dieser Warteschlangen. Warteschlange 5 ist für ARP zuständig und wird erwartungsgemäß über mehrere Befehlsausführungen inkrementiert. Der Befehl show plat soft fed sw active inject cpuq clear kann verwendet werden, um die Zähler zu löschen, um das Lesen zu erleichtern.

Switch#show platform software fed switch active punt cpuq all

<snip>

CPU Q Id                       : 5

CPU Q Name                     : CPU_Q_FORUS_ADDR_RESOLUTION

Packets received from ASIC     : 21018219

Send to IOSd total attempts    : 21018219

Send to IOSd failed count      : 0

RX suspend count               : 0

RX unsuspend count             : 0

RX unsuspend send count        : 0

RX unsuspend send failed count : 0

RX consumed count              : 0

RX dropped count               : 0

RX non-active dropped count    : 0

RX conversion failure dropped  : 0

RX INTACK count                : 1050215

RX packets dq'd after intack   : 90

Active RxQ event               : 3677400

RX spurious interrupt          : 1050016

<snip>

Von hier aus gibt es einige Möglichkeiten. ARP steht für Broadcast-Datenverkehr, sodass Sie nach Schnittstellen suchen können, die eine ungewöhnlich hohe Broadcast-Datenverkehrsrate aufweisen (auch nützlich zur Fehlerbehebung von Layer-2-Schleifen). Möglicherweise muss dieser Befehl mehrmals ausgeführt werden, um zu bestimmen, welche Schnittstelle aktiv inkrementiert wird.

Switch#show interfaces counters

Port            InOctets    InUcastPkts    InMcastPkts    InBcastPkts

Gi1/0/1    1041141009678              9              0    16267828358

Gi1/0/2             1254             11              0              1

Gi1/0/3                0              0              0              0

Gi1/0/4                0              0              0              0

Die andere Option besteht darin, das EPC-Tool (Embedded Packet Capture) zu verwenden, um eine Stichprobe der Pakete zu sammeln, die auf der Kontrollebene angezeigt werden.

Switch#monitor capture cpuCap control-plane in match any file location flash:cpuCap.pcap

Switch#show monitor capture cpuCap

Status Information for Capture cpuCap

Target Type:

Interface: Control Plane, Direction: IN

Status : Inactive

Filter Details:

Capture all packets

Buffer Details:

Buffer Type: LINEAR (default)

File Details:

Associated file name: flash:cpuCap.pcap

Limit Details:

Number of Packets to capture: 0 (no limit)

Packet Capture duration: 0 (no limit)

Packet Size to capture: 0 (no limit)

Packet sampling rate: 0 (no sampling)

Mit diesem Befehl wird eine interne Erfassung auf dem Switch konfiguriert, um den Datenverkehr zu erfassen, der an die Steuerungsebene gesendet wird. Dieser Datenverkehr wird im Flash-Speicher gespeichert. Dies ist eine normale Wireshark-PCAP-Datei, die über einen Switch exportiert und zur weiteren Analyse in Wireshark geöffnet werden kann.

Starten Sie die Aufnahme, lassen Sie sie einige Sekunden laufen und stoppen Sie sie:

Switch#monitor capture cpuCap start

Enabling Control plane capture may seriously impact system performance. Do you want to continue? [yes/no]: yes

Started capture point : cpuCap

*Jun 14 17:57:43.172: %BUFCAP-6-ENABLE: Capture Point cpuCap enabled.

Switch#monitor capture cpuCap stop

Capture statistics collected at software:

Capture duration - 59 seconds

Packets received - 215950

Packets dropped - 0

Packets oversized - 0

Bytes dropped in asic - 0

Stopped capture point : cpuCap

Switch#

*Jun 14 17:58:37.884: %BUFCAP-6-DISABLE: Capture Point cpuCap disabled.

Es ist auch möglich, die Erfassungsdatei auf dem Switch anzuzeigen:

Switch#show monitor capture file flash:cpuCap.pcap

Starting the packet display ........ Press Ctrl + Shift + 6 to exit

1   0.000000 Xerox_d7:67:a1 -> Broadcast    ARP 60 Who has 192.168.1.24? Tell 192.168.1.2

2   0.000054 Xerox_d7:67:a1 -> Broadcast    ARP 60 Who has 192.168.1.24? Tell 192.168.1.2

3   0.000082 Xerox_d7:67:a1 -> Broadcast    ARP 60 Who has 192.168.1.24? Tell 192.168.1.2

4   0.000109 Xerox_d7:67:a1 -> Broadcast    ARP 60 Who has 192.168.1.24? Tell 192.168.1.2

5   0.000136 Xerox_d7:67:a1 -> Broadcast    ARP 60 Who has 192.168.1.24? Tell 192.168.1.2

6   0.000162 Xerox_d7:67:a1 -> Broadcast    ARP 60 Who has 192.168.1.24? Tell 192.168.1.2

7   0.000188 Xerox_d7:67:a1 -> Broadcast    ARP 60 Who has 192.168.1.24? Tell 192.168.1.2

8   0.000214 Xerox_d7:67:a1 -> Broadcast    ARP 60 Who has 192.168.1.24? Tell 192.168.1.2

9   0.000241 Xerox_d7:67:a1 -> Broadcast    ARP 60 Who has 192.168.1.24? Tell 192.168.1.2

Aus dieser Ausgabe geht hervor, dass der Host 192.168.1.2 die Quelle der konstanten ARPs ist, die die hohe CPU auf dem Switch verursachen. Mit den Befehlen show ip arp und show mac address-table address können Sie den Host aufspüren und entweder aus dem Netzwerk entfernen oder die ARPs adressieren. Es ist auch möglich, ein vollständiges Detail jedes Pakets zu erfassen, indem Sie die Detailoption des Befehls "Capture View" verwenden, show monitor capture file flash:cpuCap.pcap detail. Weitere Informationen zur Paketerfassung auf einem Catalyst Switch finden Sie in diesem Handbuch.

Anwenderbericht 2. IP-Weiterleitungen mit CoPP

Catalyst Switches der neuesten Generation werden standardmäßig durch Control Plane Policing (CoPP) geschützt. CoPP wird verwendet, um die CPU vor böswilligen Angriffen und Fehlkonfigurationen zu schützen, die die Switch-Fähigkeit gefährden könnten, um wichtige Funktionen wie Spanning Tree und Routing-Protokolle aufrechtzuerhalten. Diese Schutzmaßnahmen können in Szenarien zum Tragen kommen, in denen der Switch nur über eine geringfügig erhöhte CPU verfügt und die Schnittstellenzähler leer sind, der Datenverkehr jedoch verloren geht, während er den Switch passiert. Es ist wichtig, die grundlegende CPU-Auslastung auf Ihrem Gerät zum Zeitpunkt des normalen Betriebs zu beachten. Die erhöhte CPU-Auslastung stellt nicht unbedingt ein Problem dar. Sie hängt von den auf dem Gerät aktivierten Funktionen ab. Wenn diese Auslastung jedoch ohne Konfigurationsänderungen zunimmt, kann dies ein Zeichen von Besorgnis sein.

Betrachten wir dieses Szenario. Hosts, die vom Gateway-Switch leben, berichten von langsamen Download-Geschwindigkeiten und Ping-Verlusten an das Internet. Eine allgemeine Integritätsprüfung des Switches zeigt keine Fehler an den Schnittstellen oder Ping-Verluste, wenn sie vom Gateway-Switch ausgehen.

Wenn Sie die CPU überprüfen, werden aufgrund von Unterbrechungen leicht erhöhte Werte angezeigt.

Switch#show processes cpu sorted | ex 0.00

CPU utilization for five seconds: 8%/7%; one minute: 8%; five minutes: 8%

PID Runtime(ms)     Invoked      uSecs   5Sec   1Min   5Min TTY Process

122      913359     1990893        458  0.39%  1.29%  1.57%   0 IOSXE-RP Punt Se

147        5823       16416        354  0.07%  0.05%  0.06%   0 PLFM-MGR IPC pro

404       13237      183032         72  0.07%  0.08%  0.07%   0 MMA DP TIMER

Wenn Sie die CPU-Schnittstelle überprüfen, stellen Sie fest, dass der Zähler für die ICMP-Umleitung aktiv erhöht wird.

Switch#show platform software fed switch active cpu-interface

queue                      retrieved   dropped     invalid     hol-block

-------------------------------------------------------------------------

Routing Protocol           12175       0           0           0

L2 Protocol                236         0           0           0

sw forwarding              714673      0           0           0

broadcast                  2           0           0           0

icmp gen                   0           0           0           0

icmp redirect              2662788     0           0           0

logging                    7           0           0           0

rpf-fail                   0           0           0           0

DOT1X authentication       0           0           0           0

Forus Traffic              21776434    0           0           0

Forus Resolution           724021      0           0           0

Inter FED                  0           0           0           0

L2 LVX control             0           0           0           0

EWLC control               0           0           0           0

EWLC data                  0           0           0           0

L2 LVX data                0           0           0           0

Learning cache             0           0           0           0

Topology control           6122        0           0           0

Proto snooping             0           0           0           0

DHCP snooping              0           0           0           0

Transit Traffic            0           0           0           0

In FED wurden keine Verluste festgestellt. Wenn Sie jedoch CoPP überprüfen, können Sie in der ICMP-Umleitungswarteschlange Verluste beobachten.

Switch#show platform hardware fed switch 1 qos queue stats internal cpu policer

CPU Queue Statistics

============================================================================================

(default)  (set)     Queue

QId PlcIdx  Queue Name                Enabled   Rate     Rate      Drop(Bytes)

-----------------------------------------------------------------------------

0    11     DOT1X Auth                  Yes     1000      1000     0

1    1      L2 Control                  Yes     2000      2000     0

2    14     Forus traffic               Yes     4000      4000     0

3    0      ICMP GEN                    Yes     600       600      0

4    2      Routing Control             Yes     5400      5400     0

5    14     Forus Address resolution    Yes     4000      4000     0

6    0      ICMP Redirect               Yes     600       600      463538463

7    16     Inter FED Traffic           Yes     2000      2000     0

8    4      L2 LVX Cont Pack            Yes     1000      1000     0

<snip>

CoPP ist im Wesentlichen eine QoS-Richtlinie, die auf der Kontrollebene des Geräts platziert wird. CoPP funktioniert wie jede andere QoS auf dem Switch: Wenn die Warteschlange für einen bestimmten Datenverkehr erschöpft ist, wird der Datenverkehr, der diese Warteschlange verwendet, verworfen. Von diesen Ausgaben wissen Sie, dass Datenverkehr aufgrund von ICMP-Umleitungen per Software umgeleitet wird, und Sie wissen, dass dieser Datenverkehr aufgrund der Durchsatzratenbegrenzung in der ICMP-Umleitungswarteschlange verworfen wird. Sie können eine Erfassung auf der Steuerungsebene durchführen, um zu überprüfen, ob die Pakete, die auf die Steuerungsebene gelangen, von den Benutzern stammen.

Um festzustellen, welche Übereinstimmungslogik die einzelnen Klassen verwenden, verfügen Sie über eine CLI, mit der Pakettypen identifiziert werden können, die in eine bestimmte Warteschlange gelangen. Wenn Sie beispielsweise wissen möchten, was die Klasse system-cpp-routing-control erreichen würde:

Switch#show platform software qos copp policy-info

Default rates of all classmaps are displayed:

policy-map system-cpp-policy

class system-cpp-police-routing-control

police rate 5400 pps

Switch#show platform software qos copp class-info

ACL representable classmap filters are displayed:

class-map match-any system-cpp-police-routing-control

description Routing control and Low Latency

match access-group name system-cpp-mac-match-routing-control

match access-group name system-cpp-ipv4-match-routing-control

match access-group name system-cpp-ipv6-match-routing-control

match access-group name system-cpp-ipv4-match-low-latency

match access-group name system-cpp-ipv6-match-low-latency

mac access-list extended system-cpp-mac-match-routing-control

permit any host 0180.C200.0014

permit any host 0900.2B00.0004

ip access-list extended system-cpp-ipv4-match-routing-control

permit udp any any eq rip

<...snip...>

ipv6 access-list system-cpp-ipv6-match-routing-control

permit ipv6 any FF02::1:FF00:0/104

permit ipv6 any host FF01::1

<...snip...>

ip access-list extended system-cpp-ipv4-match-low-latency

permit udp any any eq 3784

permit udp any any eq 3785

ipv6 access-list system-cpp-ipv6-match-low-latency

permit udp any any eq 3784

permit udp any any eq 3785

<...snip...>

Switch#monitor capture cpuSPan control-plane in match any file location flash:cpuCap.pcap

Control-plane direction IN is already attached to the capture

Switch#monitor capture cpuSpan start

Enabling Control plane capture may seriously impact system performance. Do you want to continue? [yes/no]: yes

Started capture point : cpuSpan

Switch#

*Jun 15 17:28:52.841: %BUFCAP-6-ENABLE: Capture Point cpuSpan enabled.

Switch#monitor capture cpuSpan stop

Capture statistics collected at software:

Capture duration - 12 seconds

Packets received - 5751

Packets dropped - 0

Packets oversized - 0

Bytes dropped in asic - 0

Stopped capture point : cpuSpan

Switch#

*Jun 15 17:29:02.415: %BUFCAP-6-DISABLE: Capture Point cpuSpan disabled.

Switch#show monitor capture file flash:cpuCap.pcap detailed

Starting the packet display ........ Press Ctrl + Shift + 6 to exit

Frame 1: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface 0

<snip>

Ethernet II, Src: OmronTat_2c:a1:52 (00:00:0a:2c:a1:52), Dst: Cisco_8f:cb:47 (00:42:5a:8f:cb:47)

<snip>

Internet Protocol Version 4, Src: 192.168.1.10, Dst: 8.8.8.8

<snip>

Wenn dieser Host einen Ping-Befehl an 8.8.8.8 sendet, sendet er den Ping an die Gateway-MAC-Adresse, da sich die Zieladresse außerhalb des VLAN befindet. Der Gateway-Switch erkennt, dass sich der nächste Hop im selben VLAN befindet, und schreibt die MAC-Zieladresse in die Firewall und leitet das Paket weiter. Dieser Prozess kann auf der Hardware erfolgen, eine Ausnahme bei der Hardware-Weiterleitung ist jedoch der IP-Umleitungsprozess. Wenn der Switch den Ping empfängt, erkennt er, dass er Datenverkehr auf demselben VLAN weiterleitet, und sendet den Datenverkehr an die CPU, um ein Umleitungspaket zurück an den Host zu generieren. Diese Umleitungsnachricht soll den Host darüber informieren, dass es einen optimalen Pfad zum Ziel gibt. In diesem Fall ist der Layer-2-Next-Hop vom Design her so konfiguriert, dass er keine Umleitungsnachrichten sendet und die Pakete nicht in der Hardware weiterleitet. Dies geschieht, wenn Sie die Umleitungen auf der VLAN-Schnittstelle deaktivieren.

interface Vlan1

ip address 192.168.1.1 255.255.255.0

no ip redirects

end

Wenn die IP-Umleitung deaktiviert ist, schreibt der Switch die MAC-Adresse neu und leitet sie an die Hardware weiter.

Fallstudie 3. Intermittierend hohe CPU

Für den Fall, dass die hohe CPU auf dem Switch intermittierend ist, ist es möglich, ein Skript auf dem Switch einzurichten, um diese Befehle automatisch auszuführen, wenn hohe CPU-Werte auftreten. Dies erfolgt mithilfe des Cisco IOS® Embedded Event Manager (EEM).

Der Wert entry-val wird verwendet, um zu bestimmen, wie hoch die CPU ist, bevor das Skript ausgelöst wird. Das Skript überwacht die durchschnittliche SNMP-OID der CPU von 5 Sekunden. Zwei Dateien werden in den Flash-Speicher geschrieben, tac-cpu-<timestamp>.txt enthält die Befehlsausgaben und tac-cpu-<timestamp>.pcap enthält die CPU-Eingangserfassung. Diese Dateien können dann zu einem späteren Zeitpunkt überprüft werden.

config t

no event manager applet high-cpu authorization bypass

event manager applet high-cpu authorization bypass

event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 get-type next entry-op gt entry-val 80 poll-interval 1 ratelimit 300 maxrun 180

action 0.01 syslog msg "High CPU detected, gathering system information."

action 0.02 cli command "enable"

action 0.03 cli command "term exec prompt timestamp"

action 0.04 cli command "term length 0"

action 0.05 cli command "show clock"

action 0.06 regex "([0-9]|[0-9][0-9]):([0-9]|[0-9][0-9]):([0-9]|[0-9][0-9])" $_cli_result match match1

action 0.07 string replace "$match" 2 2 "."

action 0.08 string replace "$_string_result" 5 5 "."

action 0.09 set time $_string_result

action 1.01 cli command "show proc cpu sort | append flash:tac-cpu-$time.txt"

action 1.02 cli command "show proc cpu hist | append flash:tac-cpu-$time.txt"

action 1.03 cli command "show proc cpu platform sorted | append flash:tac-cpu-$time.txt"

action 1.04 cli command "show interface | append flash:tac-cpu-$time.txt"

action 1.05 cli command "show interface stats | append flash:tac-cpu-$time.txt"

action 1.06 cli command "show log | append flash:tac-cpu-$time.txt"

action 1.07 cli command "show ip traffic | append flash:tac-cpu-$time.txt"

action 1.08 cli command "show users | append flash:tac-cpu-$time.txt"

action 1.09 cli command "show platform software fed switch active punt cause summary | append flash:tac-cpu-$time.txt"

action 1.10 cli command "show platform software fed switch active cpu-interface | append flash:tac-cpu-$time.txt"

action 1.11 cli command "show platform software fed switch active punt cpuq all | append flash:tac-cpu-$time.txt"

action 2.08 cli command "no monitor capture tac_cpu"

action 2.09 cli command "monitor capture tac_cpu control-plane in match any file location flash:tac-cpu-$time.pcap"

action 2.10 cli command "monitor capture tac_cpu start" pattern "yes"

action 2.11 cli command "yes"

action 2.12 wait 10

action 2.13 cli command "monitor capture tac_cpu stop"

action 3.01 cli command "term default length"

action 3.02 cli command "terminal no exec prompt timestamp"

action 3.03 cli command "no monitor capture tac_cpu"

Zugehörige Informationen

- Cisco IOS-XE 16 - Informationen auf einen Blick

- Catalyst Switches der 3850-Serie – Fehlerbehebung bei hoher CPU-Auslastung

- Integrierte Paketerfassung für Cisco IOS® und IOS®-XE - Konfigurationsbeispiel

- Konfigurieren von Punt/Inject FED Packet Capture auf Catalyst-Switches mit IOS-XE 16.x

- Technischer Support und Dokumentation für Cisco Systeme