brunch

You can make anything
by writing

C.S.Lewis

파이썬 네트워크 프로그래밍 (#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 서버에서 접속이 가능한 상태를 만듭니다.

파이썬 네트워크 자동화

CS1 : 192.168.37.20/24

CS2 : 192.168.37.21/24

CS3 : 192.168.37.22/24

CS4 : 192.168.37.23/24


여러 대의 Cisco Switch에 여러 Vlan 설정하기

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를 이용해서 장비에 접속하고, 장비에 원하는 설정을 할 수 있는 내용에 대해서 이야기하겠습니다.

 


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