파이썬 네트워크 자동화
앞선 2개의 글에서 paramiko를 이용한 파이썬 네트워크 자동화에 대한 내용을 소개했습니다. paramiko는 휼륭한 ssh library로 네트워크 장비들을 ssh을 이용하여 제어할 수 있습니다. 하지만 여러 vendor의 장비를 관리하는데 어려움이 있습니다. 따라서 여러 밴더 장비들을 손싶게 관리할 수 있는 netmiko 네트워크 파이썬 library를 배우고 어떻게 동작하고 여러 장비들을 제어할 수 있는지 공부를 하겠습니다.
파이썬 네트워크 자동화
참고 사이트
https://ktbyers.github.io/netmiko/#tutorialsexamplesgetting-started
Multi-vendor library to simplify Paramiko SSH connections to network devices
ktbyers.github.io
https://github.com/ktbyers/netmiko/blob/master/netmiko/ssh_dispatcher.py
$ sudo pip3 install netmiko
$ pip3 freeze
pip3 freeze를 통해서 해당 모듈이 설치되어 있는지 확인한다.
$ python
>>> import netmiko
이후에 netmiko 모듈을 import 했을 때에 정상적으로 import가 되는지 확인 합니다.
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를 통해서 원하는 결과를 손쉽게 얻었지만, 익숙해지는데는 시간이 필요할 것 같습니다. 도움이 되는 글이 되길 바랍니다.