Einführung
In diesem Dokument wird beschrieben, wie eine IS-Topologie (Intermediate System-to-Intermediate System) aus einer CLI-Ausgabe eines Routers erstellt wird, auf dem die IOS-XR-Software installiert ist.
Unterstützt von Agung Semarajaya, Cisco TAC Engineer.
Voraussetzungen
Anforderungen
Cisco empfiehlt, über fundierte Kenntnisse in folgenden Bereichen zu verfügen:
Verwendete Komponenten
Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:
- ASR 9001 mit IOS-XR Version 6.3.2
- Lenovo P50 mit 64-Bit Windows 10 Enterprise OS
- Grafische Version 2.38
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Hintergrundinformationen
Zur Fehlerbehebung in einem IS-IS-Netzwerk ist es wichtig zu verstehen, wie die Router aus verschiedenen Gründen miteinander verbunden sind. Sie können die Topologieinformationen haben, die Topologie ist jedoch veraltet.
Ab IOS-XR Version 6.3.2 wird der Befehl show isis database graph Ausführse eingeführt, um ein Netzwerktopologiediagramm im DOT-Format zu erstellen, das als Eingabe für Renderingtools verwendet werden kann.
Konfigurieren
Stellen Sie sicher, dass IS-IS-Adjacencies erstellt wurden und mindestens ein Router mit IOS-XR Version 6.3.2 oder höher installiert ist. Gehen Sie folgendermaßen vor, um die aktualisierte IS-IS-Topologie aus der CLI-Ausgabe zu erstellen.
Schritt 1: Führen Sie den Befehl show isis database graph Ausführse auf dem IOS-XR-Gerät aus.
Schritt 2: Kopieren Sie den Inhalt des Befehls aus Schritt 1 in eine Textdatei, und speichern Sie die Datei im Format .txt.
Schritt 3: Laden Sie das DOT Converter-Softwarepaket herunter und installieren Sie es auf Ihrem Computer, z.B. Graphviz - Graph Visualization Software.
Schritt 4: Öffnen Sie nach der Installation die Eingabeaufforderung (dies gilt für Windows), und navigieren Sie zum Verzeichnis, in dem sich die ausführbaren Dateien der grafischen CLI befinden. Dies ist ein Beispiel für die Navigation.
C:\Users\user>cd "C:\Program Files (x86)\Graphviz2.38"\bin
Schritt 5: Konvertieren Sie die in Schritt 1 gespeicherte Datei mithilfe der CLI in andere Formate, z. B. .png.
Dieses Beispiel zeigt die Verwendung der DOT-CLI.
C:\Program Files (x86)\Graphviz2.38\bin>dot.exe -Tpng C:\Users\user\Desktop\isis_graph_verbose.txt -o C:\Users\user\Desktop\isis_graph_verbose.png
In diesem Beispiel wird die Verwendung der CLI von Circo veranschaulicht.
C:\Program Files (x86)\Graphviz2.38\bin>circo.exe -Tpng :\Users\user\Desktop\isis_graph_verbose.txt -o C:\Users\user\Desktop\isis_graph_verbose.png
Weitere Informationen zur CLI finden Sie in der Grafik - Grafik-Visualisierungssoftware-Dokumentation.
Hinweis: In Schritt 5 können Sie einfach die Pfadvariable auf das Verzeichnis festlegen, in dem sich die Ausführungsdateien der grafischen CLI befinden.
Bekannte Einschränkungen
1. Wenn Sie Level 1 und Level 2 in IS-IS ausführen und beide vorhanden sind, wird nur Ebene 1 in der Ausgabe des Diagrammausführens für die Anzeige der isis-Datenbank (ausführlicher Ausdruck) angezeigt (der erste Digraph). Um dieses Problem zu beheben, können Sie die Eingabedatei bearbeiten und den Digraph für Stufe 1 oder Stufe 2 entfernen. Alternativ können Sie die Eingabe verwenden und diese Befehle mit dem Schlüsselwort Level 1 oder Level 2 verwenden.
show isis database graph level 1 Ausführlich
show isis database graph Level 2 Ausführlich
2. DOT stürzt tendenziell ab, wenn die Datei [label=0] Elemente enthält. Ein Ansatz besteht darin, diese einfach zu bearbeiten und dann die CLI auszuführen.
Hinweis: Andere Tools, wie Circo, haben dieses Problem nicht.
Beispiel
- Führen Sie den Befehl show isis database graph verbose aus.
RP/0/RSP0/CPU0:ASR10_9001-A#show isis database graph verbose
Wed Sep 12 11:23:38.651 AEST
/*
* Network topology in DOT format. For information on using this to
* generate graphical representations see http://www.graphviz.org
*/
digraph "level-2" {
graph [rankdir=LR];
node [fontsize=9];
edge [fontsize=6];
"ASR1" [label="\N\n172.16.0.1"];
"ASR1" -> "AASR6--9904.05" [constraint=false];
"ASR2" [label="\N\n172.16.0.2"];
"ASR2" -> "ASR2.01" [constraint=false];
"ASR2" -> "ASR2.03" [constraint=false];
"ASR2" -> "ASR3-9010";
"ASR2.01" -> "ASR2" [label=0] [constraint=false];
"ASR2.01" -> "AASR6--9904" [label=0] [constraint=false];
"ASR2.03" -> "ASR2" [label=0] [constraint=false];
"ASR2.03" -> "ASR7-9912" [label=0] [constraint=false];
"ASR3-9010" [label="\N\n172.16.0.3"];
"ASR3-9010" -> "ASR2";
"ASR3-9010" -> "AASR6--9904.09" [constraint=false];
"ASR3-9010" -> "ASR7-9912.03" [label=20] [constraint=false];
"ASR4-9006" [label="\N\n172.16.0.4"];
"ASR4-9006" -> "ASR4-9006.01" [constraint=false];
"ASR4-9006.01" -> "ASR4-9006" [label=0] [constraint=false];
"ASR4-9006.01" -> "ASR7-9912" [label=0] [constraint=false];
"AASR6--9904" [label="\N\n172.16.0.6"];
"AASR6--9904" -> "AASR6--9904.05" [constraint=false];
"AASR6--9904" -> "AASR6--9904.09" [constraint=false];
"AASR6--9904" -> "AASR6--9904.01" [constraint=false];
"AASR6--9904" -> "ASR2.01" [constraint=false];
"AASR6--9904" -> "ASR10_9001-A.01" [constraint=false];
"AASR6--9904.01" -> "AASR6--9904" [label=0] [constraint=false];
"AASR6--9904.01" -> "ASR7-9912" [label=0] [constraint=false];
"AASR6--9904.05" -> "AASR6--9904" [label=0] [constraint=false];
"AASR6--9904.05" -> "ASR1" [label=0] [constraint=false];
"AASR6--9904.09" -> "AASR6--9904" [label=0] [constraint=false];
"AASR6--9904.09" -> "ASR3-9010" [label=0] [constraint=false];
"ASR7-9912" [label="\N\n172.16.0.7"];
"ASR7-9912" -> "ASR7-9912.03" [label=20] [constraint=false];
"ASR7-9912" -> "ASR2.03" [constraint=false];
"ASR7-9912" -> "ASR4-9006.01" [constraint=false];
"ASR7-9912" -> "AASR6--9904.01" [constraint=false];
"ASR7-9912" -> "ASR10_9001-A.03" [constraint=false];
"ASR7-9912" -> "ASR11_9001-B.03" [constraint=false];
"ASR7-9912.03" -> "ASR7-9912" [label=0] [constraint=false];
"ASR7-9912.03" -> "ASR3-9010" [label=0] [constraint=false];
"ASR10_9001-A" [label="\N\n172.16.0.10"];
"ASR10_9001-A" -> "ASR10_9001-A.01" [constraint=false];
"ASR10_9001-A" -> "ASR10_9001-A.03" [constraint=false];
"ASR10_9001-A" -> "ASR10_9001-A.05" [constraint=false];
"ASR10_9001-A.01" -> "ASR10_9001-A" [label=0] [constraint=false];
"ASR10_9001-A.01" -> "AASR6--9904" [label=0] [constraint=false];
"ASR10_9001-A.03" -> "ASR10_9001-A" [label=0] [constraint=false];
"ASR10_9001-A.03" -> "ASR7-9912" [label=0] [constraint=false];
"ASR10_9001-A.05" -> "ASR10_9001-A" [label=0] [constraint=false];
"ASR10_9001-A.05" -> "ASR11_9001-B" [label=0] [constraint=false];
"ASR11_9001-B" [label="\N\n172.16.0.11"];
"ASR11_9001-B" -> "ASR11_9001-B.03" [constraint=false];
"ASR11_9001-B" -> "ASR11_9001-B.01" [constraint=false];
"ASR11_9001-B" -> "ASR10_9001-A.05" [constraint=false];
"ASR11_9001-B.01" -> "ASR11_9001-B" [label=0] [constraint=false];
"ASR11_9001-B.01" -> "WAN02" [label=0] [constraint=false];
"ASR11_9001-B.01" -> "ASR11_9001-B" [label=0] [constraint=false];
"ASR11_9001-B.01" -> "WAN02" [label=0] [constraint=false];
"ASR11_9001-B.03" -> "ASR11_9001-B" [label=0] [constraint=false];
"ASR11_9001-B.03" -> "ASR7-9912" [label=0] [constraint=false];
"ASR11_9001-B.03" -> "ASR11_9001-B" [label=0] [constraint=false];
"ASR11_9001-B.03" -> "ASR7-9912" [label=0] [constraint=false];
"WAN02" [label="\N\n172.16.151.2"];
"WAN02" -> "ASR11_9001-B.01" [constraint=false];
}
- Konvertieren Sie die Ausgabe mithilfe der CLI. Dieses Ergebnis zeigt die Ausgabe über das Circo-Tool.