概要
このドキュメントでは、IOS-XRソフトウェアがインストールされているルータのCLI出力からIntermediate System-to-Intermediate System(IS-IS)(IS-IS)トポロジを作成する方法について説明します。
著者:Cisco TACエンジニア、Agung Semarajaya
前提条件
要件
次の項目に関する十分な知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- IOS-XRバージョン6.3.2を搭載したASR 9001
- Lenovo P50(64ビットWindows 10 Enterprise OS)
- Graphvizリリース2.38
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
IS-ISネットワークのトラブルシューティングを行うには、さまざまな理由でルータがどのように相互接続されているかを理解することが重要です。トポロジ情報を取得できますが、トポロジは古くなっています。
IOS-XRバージョン6.3.2から、show isis database graph verboseコマンドが導入され、レンダリングツールへの入力として使用できるDOT形式のネットワークトポロジグラフが生成されます。
設定
IS-IS隣接関係が構築されており、IOS-XRバージョン6.3.2以上のルータが少なくとも1台設置されていることを確認します。次の手順を使用して、CLI出力から更新されたIS-ISトポロジを作成します。
ステップ1:IOS-XRデバイスでshow isis database graph verboseコマンドを実行します。
ステップ2:ステップ1のコマンドの内容をテキストファイルにコピーし、そのファイルを.txt形式で保存します。
ステップ3. DOTコンバータソフトウェアパッケージをコンピュータにダウンロードしてインストールします(例:Graphviz - Graph Visualization Software)。
ステップ4:インストールが完了したら、コマンドプロンプト(Windowsに適用)を開き、Graphviz CLI実行可能ファイルがあるディレクトリに移動します。次に、ナビゲーションの例を示します。
C:\Users\user>cd "C:\Program Files (x86)\Graphviz2.38"\bin
ステップ5:CLIを使用して、ステップ1で保存したファイルを.pngなどの他の形式に変換します。
この例は、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
この例では、Circo CLIの使用方法を示します。
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
CLIの詳細については、Graphviz - Graph Visualization Softwareのマニュアルを参照してください。
注:ステップ5では、パス変数をGraphviz CLI実行可能ファイルがあるディレクトリに設定するだけです。
既知の制限
1. IS-ISでレベル1とレベル2を実行し、両方が存在する場合、show isis database graph verboseの出力(最初のグラフ)にはレベル1のみが表示されます。 この問題を解決するには、入力ファイルを編集してレベル1またはレベル2のグラフを削除するか、入力を受け取ってレベル1またはレベル2キーワードを付けて、これらのコマンドを使用します。
show isis database graph level 1 verbose
show isis database graph level 2 verbose
2.ファイルに[label=0]要素が含まれている場合、DOTはクラッシュする傾向があります。1つの方法は、これらを編集してCLIを実行するだけです。
注:Circoなどの他のツールにはこの問題はありません。
例
- show isis database graph verboseコマンドを実行します。
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];
}
- CLIを使用して出力を変換します。この結果は、Circoツールによる出力を示しています。