본문 바로가기

파이썬 네트워크 자동화

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

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

 

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

 

참고 사이트

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

 

Python for Network Engineers

Kirk Byers is the founder of Twin Bridges Technology–a business specializing in network automation training. He is the creator of the Netmiko Python library and also one of the core maintainers of the NAPALM project. He teaches Python, Ansible, and Norni

pynet.twb-tech.com

 
 

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

 

GitHub - ktbyers/netmiko: Multi-vendor library to simplify Paramiko SSH connections to network devices

Multi-vendor library to simplify Paramiko SSH connections to network devices - GitHub - ktbyers/netmiko: Multi-vendor library to simplify Paramiko SSH connections to network devices

github.com

 

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

 

Module netmiko - Python for network engineers

Previous Module paramiko

pyneng.readthedocs.io

 

 

마무리

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

 

 


B급 네트워크 엔지니어

https://brunch.co.kr/magazine/becomebnetwork