Einleitung
In diesem Dokument werden drei Arten von Fehlern beschrieben - falsche Zugriffe, Ausrichtungsfehler und falsche Unterbrechungen -, die auf Geräten auftreten können, auf denen die Cisco IOS® Software ausgeführt wird.
Wenn Sie den Befehl show alignment von Ihrem Cisco Gerät ausgegeben haben, können Sie Cisco CLI Analyzer verwenden, um potenzielle Probleme und Korrekturen anzuzeigen. Um den Cisco CLI Analyzer verwenden zu können, müssen Sie registrierter Kunde sein, sich anmelden und JavaScript aktiviert haben.
Voraussetzungen
Anforderungen
Es gibt keine spezifischen Anforderungen für dieses Dokument.
Verwendete Komponenten
Der Befehl wird nicht auf allen Plattformen unterstützt (nur bei RISC-Prozessoren mit reduziertem Befehlssatz).
Der Befehl show alignment wurde in 12.3(7)T eingeführt und in früheren Versionen ausgeblendet.
Konventionen
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
Scheinbare Zugriffe
Bei einem unbeabsichtigten Zugriff versucht die Cisco IOS-Software, auf einen Speicher an einem beschränkten Ort zuzugreifen. Ein Beispiel für eine Systemprotokollausgabe für einen unberechtigten Zugriff ist unten dargestellt:
%ALIGN-3-SPURIOUS: Spurious memory access made at 0x60968C44 reading 0x0
%ALIGN-3-TRACE: -Traceback= 60968C44 60269808 602389D8 00000000 00000000 00000000
00000000 00000000
Ursache
Ein falscher Zugriff tritt auf, wenn ein Prozess versucht, aus dem Bereich mit den niedrigsten 16 KB zu lesen. Dieser Teil des Speichers ist reserviert und sollte niemals zugänglich sein. Eine Leseoperation in diesen Speicherbereich wird in der Regel dann ausgelöst, wenn ein nicht vorhandener Wert an eine Funktion in der Software zurückgegeben wird, d. h. wenn ein Nullzeiger an eine Funktion übergeben wird.
Handhabung der Cisco IOS Software
Je nach Plattform verarbeitet die Cisco IOS-Software unerwünschte Zugriffe unterschiedlich. Auf Plattformen, auf denen dies möglich ist, verarbeitet der Cisco IOS-Softwarecode diese ungültigen Zugriffe, indem er einen Wert von Null zurückgibt und das Ereignis aufzeichnet. Wenn dies auf der Plattform nicht unterstützt wird, stürzt der Router mit einem SegV-Fehler ab. Da jeder gefälschte Zugriff unangemessen ist, weisen gefälschte Zugriffe immer auf einen Bug hin.
Überprüfen von Fehlern beim unautorisierten Zugriff
Fehlerhafte Zugriffe werden gezählt und nach Möglichkeit durch die Cisco IOS Software aufgezeichnet. Diese Informationen sind mit dem Befehl show alignment verfügbar. Die Rückverfolgungsinformationen sind erforderlich, um die Ursache und die Behebung der falschen Zugriffe zu ermitteln.
Hinweis: Der Befehl show alignment (Ausrichtung anzeigen) ist ausgeblendet und nicht dokumentiert. Der Befehl wird auch nicht auf allen Plattformen unterstützt (nur reduzierte RISC-Prozessoren). Nachfolgend finden Sie eine Beispielausgabe des Befehls show alignment:
Router#show alignment
Alignment data for:
GS Software (RSP-PV-M), Version 11.1(26.1)CC, EARLY DEPLOYMENT MAINTENANCE INTER
IM SOFTWARE
Compiled Thu 27-May-99 20:48 by jjgreen
No alignment data has been recorded.
Total Spurious Accesses 167110746, Recorded 2
Address Count Traceback
0 10474 0x6012D488 0x6020FFB4 0x601D5CE0
0 49008 0x6012D488 0x6020D25C 0x6020E744 0x602106B4
Router#
Korrigieren von Fehlern bei unautorisiertem Zugriff
Fehlerhafte Zugriffsfehler werden immer durch einen Bug der Cisco IOS-Software verursacht. Führen Sie zur Behebung dieses Problems ein Upgrade auf die neueste Version Ihrer Release Train-Lösung durch (wenn Sie beispielsweise Cisco IOS Software 11.2(14) ausführen, aktualisieren Sie auf das neueste 11.2(x)-Image. Sollte das Problem dadurch nicht behoben werden oder ein Upgrade des Routers nicht möglich sein, wenden Sie sich an das Cisco TAC. Wenn Sie ein Ticket öffnen, um falsche Zugriffe zu melden, geben Sie Folgendes an:
-
Ausgabe des Befehls show alignment
-
Ausgabe des Befehls show tech-support
-
relevante Systemprotokolle
Anordnungsfehler
Das folgende Beispiel zeigt die Ausgabe des Systemprotokolls für einen Ausrichtungsfehler:
%ALIGN-3-CORRECT: Alignment correction made at 0x60262478 reading/writing 0x60A9FF5C
Ursache
Ausrichtungsfehler werden durch falsch ausgerichtete Lese- und Schreibvorgänge verursacht. Ein Ausrichtungsfehler ist beispielsweise ein Zwei-Byte-Lesevorgang, bei dem die Speicheradresse kein gerades Vielfaches von zwei Bytes ist. Ausrichtungsfehler werden durch einen Softwarefehler verursacht.
Überprüfen von Ausrichtungsfehlern
Ausrichtungsfehler werden im Protokoll gemeldet und vom Router aufgezeichnet. Die Ausgabe des Befehls show alignment zeichnet diese Fehler auf und bietet potenziell nützliche Ablaufverfolgungsdaten. Die Tracebacks für Ausrichtungsfehler können im Allgemeinen decodiert werden, um die Funktion aufzudecken, die die Ausrichtungsprobleme verursacht.
Hinweis: Der Befehl show alignment (Ausrichtung anzeigen) ist ausgeblendet und nicht dokumentiert. Der Befehl wird außerdem nicht auf allen Plattformen unterstützt (nur High-End-Router unterstützen ihn). Nachfolgend finden Sie eine Beispielausgabe des Befehls show alignment:
Router#show alignment
Alignment data for:
RSP Software (RSP-ISV-M), Version 11.3(3a), RELEASE SOFTWARE (fc1)
Compiled Fri 01-May-98 18:28 by phanguye
Total Corrections 6, Recorded 2, Reads 6, Writes 0
Initial Initial
Address Count Access Type Traceback
60EF3765 3 32bit read 0x60262474 0x601AC594 0x601AC580
60EF3761 3 32bit read 0x60262478 0x601AC594 0x601AC580
No spurious memory references have been recorded.
Router#
Korrektur von Ausrichtungsfehlern
Ausrichtungsfehler können in der Regel softwaremäßig korrigiert werden und führen dann nicht zum Absturz. Die Korrektur von Ausrichtungsfehlern beansprucht jedoch Prozessorressourcen und kann zu Leistungseinbußen führen. Bei kontinuierlichen Ausrichtungsfehlern kann der Router die meiste Zeit mit der Reparatur verbringen, wodurch sich die CPU-Auslastung erhöht. Diese Fehler werden beim Interrupt korrigiert.
Nebenunterbrechungen
Störende Unterbrechungen sind nicht dasselbe wie unberechtigte Speicherzugriffe.
Ein falscher Interrupt tritt auf, wenn für ein bereits verarbeitetes Paket ein unnötiger Interrupt ausgelöst wird, möglicherweise aufgrund eines internen Race-Zustandes oder einer unsachgemäßen Initialisierung von Interrupt-Handling-Routinen. Das Verhalten des Routers wird durch fehlerhafte Interrupts nicht merklich beeinflusst. Sie können sicher ignoriert werden, solange es nicht eine hohe und steigende Anzahl von fehlerhaften Unterbrechungen gibt, zusammen mit einigen verlorenen Paketen oder verminderter Leistung. Andernfalls muss die Ursache untersucht werden.
Der Befehl show align liefert Informationen zu unberechtigten Speicherzugriffen, jedoch keine unberechtigten Interrupts. Die einzige Information über fehlerhafte Interrupts, die aus dem System gewonnen werden kann, ist in der Show-Stacks-Ausgabe, wo es einen Zähler gibt, der zählt, wie viele aufgetreten sind.
Router#show stacks
Minimum process stacks:
Free/Size Name
3692/4000 DHCPD Receive
4796/6000 Router Init
1904/4000 Init
3408/4000 RADIUS INITCONFIG
4228/5000 DHCP Client
2468/4000 Exec
Interrupt level stacks:
Level Called Unused/Size Name
3 0 3000/3000 Serial interface state change interrupt
4 54351439 1760/3000 Network interfaces
5 64181 2872/3000 Console Uart
Spurious interrupts: 29
Fehlerhafte Unterbrechungen können entweder durch defekte Hardware oder durch Software verursacht werden. In den meisten Fällen hat dies keine Nebenwirkung auf das erwartete Verhalten des Routers oder Switches. Sie werden nur zu Überwachungszwecken gezählt.
Ein paar fehlerhafte Interrupts verursachen keine hohe CPU-Auslastung. Wenn dies das einzige Symptom ist, das auf einem Router oder Switch auftritt, und alles andere wie erwartet funktioniert (keine Paketverluste usw.), werden die falschen Interrupts möglicherweise ignoriert.
Auf dem 68k-Prozessor basierende Cisco Router (d. h. Cisco 1000, 1600, 2500, 4000 und 7000 (RP)) können so konfiguriert werden, dass sie einen Coredump generieren, wenn ein bestimmter Schwellenwert für fehlerhafte Interrupts erreicht wird.
Router(config)#exception ?
core-file Set name of core dump file
crashinfo Crashinfo collection
dump Set name of host to dump to
flash Set the device and erase permission
memory Memory leak debugging
protocol Set protocol for sending core file
region-size Size of region for exception-time memory pool
spurious-interrupt Crash after a given number of spurious interrupts
Router(config)#exception spurious-interrupt ?
<1-4294967295> Spurious interrupt threshold
Weitere Informationen zur Core Dump-Erzeugung finden Sie unter Erstellen von Core Dumps. Diese Informationen können von unserem Technical Assistant Center angefordert werden, wenn es zu Leistungseinbußen aufgrund falscher Unterbrechungen kommt. Wenn das der Fall ist, sollte es eine hohe und steigende Anzahl von fehlerhaften Interrupts geben, zusammen mit einigen Paketverlusten oder Leistungseinbußen.
Zu erfassende Informationen, wenn Sie eine TAC-Serviceanfrage erstellen
Wenn Sie nach dem Durchführen der oben genannten Schritte zur Fehlerbehebung weiterhin Unterstützung benötigen und eine Serviceanfrage (nur für registrierte Kunden) beim Cisco TAC erstellen möchten, fügen Sie zur Fehlerbehebung bei unberechtigten Zugriffen, Ausrichtungsfehlern und unberechtigten Unterbrechungen die folgenden Informationen zu Ihrem Ticket bei: |
- Fehlerbehebung vor Erstellung der Serviceanfrage durchgeführt
- Ausgabe des technischen Supports anzeigen (wenn möglich im Aktivierungsmodus)
- show alignment output (wenn nicht bereits in der Ausgabe show technical-support enthalten)
- Protokollausgabe oder Konsolenerfassungen anzeigen (falls verfügbar)
Hängen Sie die erfassten Daten in nicht gezippter Textform (.txt) an Ihre Serviceanfrage an. Sie können Ihrer Serviceanfrage Informationen hinzufügen, indem Sie sie über das TAC Service Request Tool hochladen (nur für registrierte Kunden). Wenn Sie nicht auf das Service Request Tool zugreifen können, können Sie die entsprechenden Informationen zu Ihrer Serviceanfrage hinzufügen. Senden Sie diese an attach@cisco.com mit Ihrer Serviceanfragenummer in der Betreffzeile Ihrer Nachricht. Hinweis: Bitte laden Sie den Router nicht manuell neu oder schalten Sie ihn aus, bevor Sie die oben genannten Informationen sammeln, es sei denn, dies ist erforderlich, um falsche Zugriffe, Ausrichtungsfehler und falsche Unterbrechungen zu beheben, da dies dazu führen kann, dass wichtige Informationen verloren gehen, die zur Bestimmung der Ursache des Problems erforderlich sind. |
Zugehörige Informationen