본문 바로가기

전체 글

(16)
새로운 계획 새로운 방향 휴가 마지막 날에 업무에 복귀하면 어떤 계획을 가질까? 고민 끝에 여러 목표를 정하고, 여러 목표에 중간 계획 및 행동 계획에 대해서 아래와 같이 정리했다. 20년 가까이 Infra 업무를 하고 있지만, 솔직히 어떤 방향으로 내가 무엇을 공부할지 어떻게 일을 할지 막막할 때가 많다. 오히려 경력이 많지 않았을 때는 뭔가 확실한 방향과 공부해야 할 것들이 명확했었는데 말이다. 시간이 지나고 보니 어설프게 아는 것들만 쌓여 가는 느낌이다. 솔직히 나는 제대로 알고 있는 것이 많지 않다는 것이다. 앞으로도 내가 하는 일에 대해서 얼마나 제대로 알고 능숙한 엔지니어가 될 수 있는지는 확실하지 않지만, 다면 성실한 엔지니어가 되었음 하는 바람으로 아래와 같은 계획은 세웠다. 우선 생각나는 대로 8가지 목표를 세웠..
파이썬 네트워크 프로그래밍 (#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 간에 연결이 되어 ..
네트워크 Troubleshooting (#1 Time-to-Live Exceeded in Transit) Time-to-Live Exceeded in Transit "파이썬 네트워크 자동화" 글을 잠시 멈추고 "Time-to-Live Exceeded in Transit"이라는 문제에 대해서 간단히 이야기를 하겠습니다. "Time-to-Live Exceeded in Transit"은 ICMP 오류 메시지 종류 중의 하나입니다. 메시지의 "Exceeded"라는 말은 "초과되었다" 의미를 가지며, 이는 최종 목적지에 전달되기 이전에 "Time-to-Live" 데이터그램 활성화 시간의 값이 "0"이 됨을 의미합니다. "Time-to-Live" 필드에 데이터그램이 거칠 수 있는 최대 단계를 말하며, 값이 0에 도달된다는 말은 데이터그램을 전달하지 못했으며, 이에 데이터그램은 소멸된다. 대부분의 활성화 시간 값을 30..
파이썬 네트워크 프로그래밍 (#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..