파이썬 네트워크 자동화
앞선 이야기에서 telnet python example을 이용하여 Cisco Router에게 loopback을 설정했고, Cisco Switch에는 vlan 생성 및 생성된 vlan을 interface에게 할당하는 파이썬 스크립트를 만들습니다. 접속 방법을 telnet에서 ssh로 넘어가기 전에 telnet 접속 방식으로 여러 대의 Cisco switch을 한 번에 여러 vlan을 설정할 수 있는 파이썬 스크립트를 만들 수 있도록 하겠습니다.
우선 위 테스트를 진행하기 위해서 Cisco Switch를 아래와 같이 추가하고 Ethernet Switch와 연결을 맺습니다. 이후 아래 IP를 해당 인터페이스에 설정하여 Ubuntu 서버에서 접속이 가능한 상태를 만듭니다.
파이썬 네트워크 자동화
CS1 : 192.168.37.20/24
CS2 : 192.168.37.21/24
CS3 : 192.168.37.22/24
CS4 : 192.168.37.23/24
CS1-CS4에서 VLAN 101 - 109 만들기
CS1 vlan101에 ip "10.101.101.20/24" 설정하기
CS1 vlan102에 ip "10.102.102.20/24" 설정하기
CS1 vlan103에 ip "10.103.103.20/24" 설정하기
CS1 vlan104에 ip "10.104.104.20/24" 설정하기
CS (Cisco Switch) 스위치 IP 정보 파일 생성을 생성합니다.
Original telnet example을 "b_telnet_multiple.py" 복사합니다.
그럼 복사된 파일에서 위 내용을 수용할 수 있는 스크립트를 생성합니다.
hosts = open("cs_ipaddresses.txt") - Open 파일을 hosts의 변수로 선언한다.
for host in hosts: - for 문을 이용하여 hosts에 저장된 내용을 한 줄씩 출력하며, 하나씩 호출된 정보는 host의 변수로 선언된다.
for vlan in range(101,105): - for 문 사용에 range을 사용하여 101,102,103,104의 vlan을 반복한다.
if HOST == "192.168.37.20": - HOST가 192.168.37.20라면, 아래 for문을 수행한다.
스위치가 정상적으로 설정되었는지 확인
텔넷을 통해서 파이썬 스크립트가 네트워크 장비들을 설정하는 간단한 스크립트를 만들습니다. 앞선 내용과 달리 여러 장비를 하나의 스크립트로 만든 부분이 가장 큰 차이 일 것 입니다. for or while 그리고 function을 사용한다면 몇 대가 아닌 좀더 많은 장비를 손쉽게 동일한 내용을 설정 하실 수 있을 것 입니다. 자신에 환경에 맞게 스크립트를 수정하고 도움이 될 것 같습니다. 앞으로는 ssh를 이용해서 장비에 접속하고, 장비에 원하는 설정을 할 수 있는 내용에 대해서 이야기하겠습니다.