본문 바로가기

파이썬 네트워크 자동화

(12)
파이썬 네트워크 프로그래밍 (#11 : netmiko) "netmiko"를 이용한 파이썬 네트워크 자동화 단순히 원하는 설정을 입력하는 것이 아닌, 현재 설정 내용 및 상태를 확인 후에 그에 따른 조치를 취할 수 있는 간단한 스크립트 입니다. 목표는 먼저 네트워크 장비에 port scan을 진행하고, 포트 중에 telnet port가 열려 있으면, 해당 설정을 삭제하는 스크립트입니다. 스크립트는 아래와 같습니다. import socket from netmiko import ConnectHandler # defined by service vendor and type ios_router = ["192.168.37.201", "192.168.37.202","192.168.37.203"] ios_switch = ["192.168.37.102","192.168.37...
파이썬 네트워크 프로그래밍 (#10 : netmiko) "netmiko"를 이용한 파이썬 네트워크 자동화 앞선 글에서 netmiko를 이용해서 각 장비에 인터페이스 설정을 진행했습니다. 설정 시에 각 장비 별로 접속하여 명령어를 넣는 방법이었습니다. 이번 글에서는 각 장비를 장비 밴더, Role로 나누어 그룹 별로 설정 하도록 하겠습니다. 설정 시에 사용할 것은 파이썬의 리스트, for 문을 쓰겠습니다. 8대 장비의 ntp server, clock 설정 및 확인 cisco router cisco switch arista router & switch 스크립트 내용. from netmiko import ConnectHandler cisco_routers = [ { "device_type": "cisco_ios", "host": "192.168.37.201", "..
파이썬 네트워크 프로그래밍 (#9 : netmiko) "netmiko"를 이용한 파이썬 네트워크 자동화 Netmiko를 이용하여 다양한 연습을 하기 위해서 기존 랩이 아닌 새로운 랩을 다시 구성하였습니다. 기존에 랩은 각 밴더 별로 장비 한 대씩 구축했으나, ospf, bgp 등의 프로토콜을 구현하는데 제약이 있고, 추가로 Juniper image가 제대로 동작하지 않기 때문에 사용 가능한 cisco router, switch, 그리고 arista router을 주 장비로 구축했습니다. 가상 장비는 총 8대이고, cisco router image 3대, cisco switch image 2대, 마지막으로 arista image 3대로 정리했습니다. 위에 나와 있는 것은 management switch이며, 각 장비와 mgmt switch 간에 연결이 되어 ..
파이썬 네트워크 프로그래밍 (#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 busine..
파이썬 네트워크 프로그래밍 (#7 : Paramiko SSH접속) Paramiko를 이용한 파이썬 네트워크 자동화 운영하는 장비가 많다면 각 장비에 설정을 백업할 경우가 발생합니다. 장비를 백업하는 방법에는 여러 가지 방법, 그리고 툴이 존재하고 어떤 것이 좋고 좋지 않다고 이야기할 수 없지만, 다만 환경에 맞는 방법을 찾아 누락 없이 운영하는 것이 최선의 방법이라 믿습니다. 이 글에서는 paramiko를 이용하여 Cisco 장비들에 설정을 백업하는 스크립트를 만들 수 있도록 하겠습니다. Paramiko을 이용하여 Cisco 장비 백업하기 Cisco Router, Switch 장비 백업하기 백업 후에 백업 설정 파일은 TFTP로 서버에 저장하기 장비 접속 시에 username & password 입력받기 파일 저장 시 날짜 및 시간을 기입하기 실행 결과 TFTP 서버 ..
파이썬 네트워크 프로그래밍 (#6 : Paramiko SSH접속) Paramiko를 이용한 파이썬 네트워크 자동화 앞선 3개의 글은 Telnet을 이용한 파이썬 네트워크 자동화를 구현을 했습니다. Telnet 경우 메시지를 보낼 때 Plain Text로 보내기 때문에 보안에 취약합니다. 따라서 실무에서는 Telnet 접속 방식은 사용되지 않습니다. 이런 이유로 실무에서 원격 장비에 접속하고 제어를 하기 위해서 ssh protocol을 사용합니다. ssh protocol을 사용하는 "paramiko" 라이브러리를 어떻게 이용하고 적용할 수 있는지 알아보도록 하겠습니다. Paramiko 라이브러리 https://pypi.org/project/paramiko/ paramiko SSH2 protocol library pypi.org https://www.paramiko.org..
파이썬 네트워크 프로그래밍 (#5 : 텔넷으로 장비 접속) Telnet을 이용한 파이썬 네트워크 자동화 앞선 이야기에서 telnet python example을 이용하여 Cisco Router에게 loopback을 설정했고, Cisco Switch에는 vlan 생성 및 생성된 vlan을 interface에게 할당하는 파이썬 스크립트를 만들습니다. 접속 방법을 telnet에서 ssh로 넘어가기 전에 telnet 접속 방식으로 여러 대의 Cisco switch을 한 번에 여러 vlan을 설정할 수 있는 파이썬 스크립트를 만들 수 있도록 하겠습니다. 우선 위 테스트를 진행하기 위해서 Cisco Switch를 아래와 같이 추가하고 Ethernet Switch와 연결을 맺습니다. 이후 아래 IP를 해당 인터페이스에 설정하여 Ubuntu 서버에서 접속이 가능한 상태를 만듭..
파이썬 네트워크 프로그래밍 (#4 : 텔넷으로 장비 접속) Telnet 을 이용한 파이썬 네트워크 자동화 앞선 글에서 Telnet python 스크립트를 변경해서 CR1 (Cisco Router)에 Loopback을 설정하고, 설정된 내용을 출력하는 스크립트를 작성했습니다. 이번 글에서도 똑 같이 Telnet Python 스크립트를 이용해서 CS1 (Cisco Switch)에 Vlan을 생성하고, Vlan에 대한 이름을 스크립트로 만들 수 있도로 하겠습니다. 파이썬 스크립트를 이용하여 Cisco Switch VLAN 설정 https://docs.python.org/3/library/telnetlib.html Vlan11 - 14까지 생성 Vlan11 name : Management_network Vlan12 name : Private_network Vlan13 ..