Batfish를 사용한 인터페이스 구성 정보 추출 및 유효성 확인
4172 단어 시스코automation파이썬네트워크Batfish
소개
Advent Calendar 3일째에 이어 Batfish를 사용한 네트워크 장비 설정의 유효성을 확인합니다.
참고: Advent Calendar 3일째 - Batfish를 사용한 네트워크 구성 정보 추출 및 유효성 확인
이번에는, interfaceProperties
클래스에서 인터페이스 설정을 추출해, 컴플라이언스 정책 「사용중의 인터페이스로 Description가 설정되어 있는 것」이 지켜지고 있는지 체크해 보고 싶습니다.
확인할 Config 파일
노드 hqborder2
(Cisco1812J)의 Running Config 파일을 대상으로 확인합니다.
참고로 인터페이스 관련 설정을 추출한 것을 올려 둡니다.
show_running-config(snip)interface Tunnel1
description << To brborder2 >>
bandwidth 100
ip address 10.1.1.9 255.255.255.252
delay 10
tunnel source Loopback0
tunnel destination 1.1.1.2
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0
description << To PE Router >>
ip address 10.1.1.5 255.255.255.252
duplex auto
speed auto
!
interface FastEthernet1
description << border2 - dist1 Segment >>
ip address 192.168.200.9 255.255.255.252
speed 100
full-duplex
!
interface BRI0
no ip address
encapsulation hdlc
shutdown
!
interface FastEthernet2
description << To hqdist2 Fa0/2 >>
switchport access vlan 203
duplex full
speed 100
!
interface FastEthernet3
shutdown
!
interface FastEthernet4
shutdown
!
interface FastEthernet5
shutdown
!
interface FastEthernet6
shutdown
!
interface FastEthernet7
shutdown
!
interface FastEthernet8
shutdown
!
interface FastEthernet9
shutdown
!
interface Vlan1
no ip address
shutdown
!
interface Vlan203
description << border2 - dist2 Segment >>
ip address 192.168.200.13 255.255.255.252
컴플라이언스 검사 (1/2) - 인터페이스 설정 정보 추출
우선, 전회와 같이 Pybatfish의 임포트, 체크 대상 Config의 저장처 지정과 로드를 실시합니다.
이제 interfaceProperties
클래스를 사용하여 노드 hqborder2
(Cisco1812J) 인터페이스 Tunnel1
의 구성 정보를 시도해보십시오.
출력 내용을 보면 예를 들어 Active
속성에서 개방(True)/폐색(False), Description
속성에서 Description의 내용, Primary_Address
속성에서 IP 주소 설정이 표시됩니다. VLAN, EtherChannel, HSRP, VRRP, OSPF, ACL 관련도 있습니다. 또한 설정되지 않은 속성은 None 또는 False와 같은 형태로 표시됩니다.
그건 그렇고, 다른 인터페이스에서도 표시되는 속성 목록은 동일합니다.
컴플라이언스 검사(2/2) - 인터페이스 Description 설정의 유효성 확인
노드hqborder2
의 인터페이스를 하나씩 꺼내고, 다음 2단계의 조건 분기로, 컴플라이언스 판정을 실시합니다.
① Active
속성이 True
(개방 상태)
② Description
속성이 None
가 아닌가?
문제가 있는 것은 ①이 True
이고 ②가 False
의 패턴이므로 이때 "NG"가 출력되도록 합니다. 그 이외는 원래 폐색 상태인지, 설정이 들어 있는 상태이므로 "OK"라고 표시되도록 합니다.
출력 결과를 보면 첫 번째 인터페이스Loopback0
가 NG 판정입니다.
위의 Running Config를 보면 확실히 Description이 빠져 있습니다. 따라서 다음과 같이 Config 수정을 수행합니다.
수정Configinterface Loopback0
description << Loopback >>
Config 파일을 변경한 경우 다시 로드해야 합니다.
체크를 실행하면, 이번은 모두 OK가 되었습니다. 축하해
이번에 작성한 코드는 Gist에도 두고 있습니다.
htps : // 기 st. 기주 b. 코 m / 타키시 / b4018363b8b66173119 A 215b84 A f38b6
Reference
이 문제에 관하여(Batfish를 사용한 인터페이스 구성 정보 추출 및 유효성 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kitara/items/89712bd086a623260464
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
노드
hqborder2
(Cisco1812J)의 Running Config 파일을 대상으로 확인합니다.참고로 인터페이스 관련 설정을 추출한 것을 올려 둡니다.
show_running-config(snip)
interface Tunnel1
description << To brborder2 >>
bandwidth 100
ip address 10.1.1.9 255.255.255.252
delay 10
tunnel source Loopback0
tunnel destination 1.1.1.2
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0
description << To PE Router >>
ip address 10.1.1.5 255.255.255.252
duplex auto
speed auto
!
interface FastEthernet1
description << border2 - dist1 Segment >>
ip address 192.168.200.9 255.255.255.252
speed 100
full-duplex
!
interface BRI0
no ip address
encapsulation hdlc
shutdown
!
interface FastEthernet2
description << To hqdist2 Fa0/2 >>
switchport access vlan 203
duplex full
speed 100
!
interface FastEthernet3
shutdown
!
interface FastEthernet4
shutdown
!
interface FastEthernet5
shutdown
!
interface FastEthernet6
shutdown
!
interface FastEthernet7
shutdown
!
interface FastEthernet8
shutdown
!
interface FastEthernet9
shutdown
!
interface Vlan1
no ip address
shutdown
!
interface Vlan203
description << border2 - dist2 Segment >>
ip address 192.168.200.13 255.255.255.252
컴플라이언스 검사 (1/2) - 인터페이스 설정 정보 추출
우선, 전회와 같이 Pybatfish의 임포트, 체크 대상 Config의 저장처 지정과 로드를 실시합니다.
이제 interfaceProperties
클래스를 사용하여 노드 hqborder2
(Cisco1812J) 인터페이스 Tunnel1
의 구성 정보를 시도해보십시오.
출력 내용을 보면 예를 들어 Active
속성에서 개방(True)/폐색(False), Description
속성에서 Description의 내용, Primary_Address
속성에서 IP 주소 설정이 표시됩니다. VLAN, EtherChannel, HSRP, VRRP, OSPF, ACL 관련도 있습니다. 또한 설정되지 않은 속성은 None 또는 False와 같은 형태로 표시됩니다.
그건 그렇고, 다른 인터페이스에서도 표시되는 속성 목록은 동일합니다.
컴플라이언스 검사(2/2) - 인터페이스 Description 설정의 유효성 확인
노드hqborder2
의 인터페이스를 하나씩 꺼내고, 다음 2단계의 조건 분기로, 컴플라이언스 판정을 실시합니다.
① Active
속성이 True
(개방 상태)
② Description
속성이 None
가 아닌가?
문제가 있는 것은 ①이 True
이고 ②가 False
의 패턴이므로 이때 "NG"가 출력되도록 합니다. 그 이외는 원래 폐색 상태인지, 설정이 들어 있는 상태이므로 "OK"라고 표시되도록 합니다.
출력 결과를 보면 첫 번째 인터페이스Loopback0
가 NG 판정입니다.
위의 Running Config를 보면 확실히 Description이 빠져 있습니다. 따라서 다음과 같이 Config 수정을 수행합니다.
수정Configinterface Loopback0
description << Loopback >>
Config 파일을 변경한 경우 다시 로드해야 합니다.
체크를 실행하면, 이번은 모두 OK가 되었습니다. 축하해
이번에 작성한 코드는 Gist에도 두고 있습니다.
htps : // 기 st. 기주 b. 코 m / 타키시 / b4018363b8b66173119 A 215b84 A f38b6
Reference
이 문제에 관하여(Batfish를 사용한 인터페이스 구성 정보 추출 및 유효성 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kitara/items/89712bd086a623260464
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
노드
hqborder2
의 인터페이스를 하나씩 꺼내고, 다음 2단계의 조건 분기로, 컴플라이언스 판정을 실시합니다.①
Active
속성이 True
(개방 상태)②
Description
속성이 None
가 아닌가?문제가 있는 것은 ①이
True
이고 ②가 False
의 패턴이므로 이때 "NG"가 출력되도록 합니다. 그 이외는 원래 폐색 상태인지, 설정이 들어 있는 상태이므로 "OK"라고 표시되도록 합니다.출력 결과를 보면 첫 번째 인터페이스
Loopback0
가 NG 판정입니다.위의 Running Config를 보면 확실히 Description이 빠져 있습니다. 따라서 다음과 같이 Config 수정을 수행합니다.
수정Config
interface Loopback0
description << Loopback >>
Config 파일을 변경한 경우 다시 로드해야 합니다.
체크를 실행하면, 이번은 모두 OK가 되었습니다. 축하해
이번에 작성한 코드는 Gist에도 두고 있습니다.
htps : // 기 st. 기주 b. 코 m / 타키시 / b4018363b8b66173119 A 215b84 A f38b6
Reference
이 문제에 관하여(Batfish를 사용한 인터페이스 구성 정보 추출 및 유효성 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kitara/items/89712bd086a623260464텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)