목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

구성

알려진 제한 사항

예

소개

이 문서에서는 IOS-XR 소프트웨어가 설치된 라우터의 CLI 출력에서 IS-IS(Intermediate System-to-Intermediate System) 토폴로지를 생성하는 방법에 대해 설명합니다.

기고자: Agung Semarajaya, Cisco TAC 엔지니어

사전 요구 사항

요구 사항

Cisco에서는 다음 주제에 대해 잘 알고 있는 것이 좋습니다.

- 현재

- IOS-XR

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- ASR 9001(IOS-XR 버전 6.3.2)

- Lenovo P50(64비트 Windows 10 Enterprise OS 포함)

- Graphviz 릴리스 2.38

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.

배경 정보

IS-IS 네트워크의 문제를 해결하려면 다양한 이유로 라우터가 상호 연결되는 방식을 이해하는 것이 중요합니다.토폴로지 정보를 가질 수 있지만 토폴로지가 오래되었습니다.

IOS-XR 버전 6.3.2에서 show isis database graph verbose 명령은 렌더링 툴에 대한 입력으로 사용할 수 있는 DOT 형식의 네트워크 토폴로지 그래프를 생성하기 위해 도입되었습니다.

구성

IOS-XR 버전 6.3.2 이상이 설치된 라우터와 IS-IS 인접성이 구축되어 있는지 확인합니다.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를 실행하고 둘 다 있는 경우 레벨 1만 show isis database graph verbose 출력(첫 번째 그래프)에 나타납니다. 이 문제를 해결하려면 입력 파일을 편집하고 수준 1 또는 수준 2에 대한 다이어그램을 제거하거나, 입력을 가져와 수준 1 또는 수준 2 키워드와 함께 이 명령을 사용할 수 있습니다.

isis 데이터베이스 그래프 수준 1 세부 정보 표시

isis 데이터베이스 그래프 수준 2 세부 정보 표시

2. 파일에 [label=0] 요소가 포함되어 있으면 DOT가 충돌하는 경향이 있습니다.한 가지 방법은 이러한 항목을 편집한 다음 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 도구를 통한 출력을 보여 줍니다.