brunch

You can make anything
by writing

C.S.Lewis

파이썬 네트워크 프로그래밍 (#8 : netmiko)

파이썬 네트워크 자동화

"netmiko"를 이용한 파이썬 네트워크 자동화 

앞선 2개의 글에서 paramiko를 이용한 파이썬 네트워크 자동화에 대한 내용을 소개했습니다. paramiko는 휼륭한 ssh library로 네트워크 장비들을 ssh을 이용하여 제어할 수 있습니다. 하지만 여러 vendor의 장비를 관리하는데 어려움이 있습니다. 따라서  여러 밴더 장비들을 손싶게 관리할 수 있는 netmiko 네트워크 파이썬 library를 배우고 어떻게 동작하고 여러 장비들을 제어할 수 있는지 공부를 하겠습니다. 

파이썬 네트워크 자동화


참고 사이트

https://pynet.twb-tech.com/

https://ktbyers.github.io/netmiko/#tutorialsexamplesgetting-started

https://github.com/ktbyers/netmiko/blob/master/netmiko/ssh_dispatcher.py


netmiko 설치

$ sudo pip3 install netmiko

$ pip3 freeze

pip3 freeze를 통해서 해당 모듈이 설치되어 있는지 확인한다.


$ python

>>> import netmiko

이후에 netmiko 모듈을 import 했을 때에 정상적으로 import가 되는지 확인 합니다.


Netmiko을 이용하여 Cisco, Juniper, Arista 장비에 loopback과 Interface 설정하기

C1.loopback0 : 10.10.10.10/32

JR.loopback0 : description lo0

AR.loopback0 : 30.30.30.30/32

CR1.gi0/1 (10.10.20.1/30) - JR1.em1 (10.10.20.2/30)

CR1.gi0/2 (10.10.30.1/30) - AR1.Ethernet1 (10.10.30.2/30)

JR1.em2 (10.20.30.1/30) - AR2.Ethernet2 (10.20.30.2/30)



CR1, JR1, AR1 장비 간에 연결을 진행하고, 이후에 BGP를 연동하려고 계획했으나 가지고 있는 JR1 장비에 management interface 외에 활성화가 되지 않아, JR1을 제외한 나머지 장비에 설정을 진행하겠습니다.

netmiko test lab 진행 이후에 랩 구성을 변경하여 여러가지 protocol을 테스트 할 수 있도록 하겠습니다.

netmiko 경우 cisco 장비에 대한 구성 예제가 다양하여 쉽게 netmiko를 구성할 수 있었으나 juniper, arista 경우 예제가 많지 않아 아래 설정을 하는 것에도 어려움이 있었습니다. 혹시 arista 또는 juniper에 대한 좋은 예제나 자료가 있으면 공유 부탁드립니다. 



실행 결과


도움글

https://github.com/ktbyers/netmiko/blob/develop/EXAMPLES.md#configuration-changes-1

https://pyneng.readthedocs.io/en/latest/book/18_ssh_telnet/netmiko.html#


마무리

netmiko 첫글인데, 생각보다 간단한 내용을 실행하는데 어려움이 있었습니다. Cisco 경우 예제가 많아, 많은 자료를 검토 및 참고가 가능하지만, Juniper 와 Arista 경우, 생각보다 자료가 많지 않았습니다. paramiko 보다 netmiko를 통해서 원하는 결과를 손쉽게 얻었지만, 익숙해지는데는 시간이 필요할 것 같습니다. 도움이 되는 글이 되길 바랍니다. 


매거진의 이전글 파이썬 네트워크 프로그래밍 (#7 : Paramiko)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari