네트워크관리사 기출 핵심 [49] 네트워크 자동화 파이썬 심화 완전 정복

네트워크 자동화의 필요성

수백 개의 네트워크 장비를 수동으로 관리하는 것은 비효율적이고 오류가 발생하기 쉽습니다. 네트워크관리사 시험에서는 Python 기반 Netmiko, NAPALM, Nornir, TextFSM 라이브러리 활용이 핵심 출제 범위입니다.

Paramiko와 Netmiko

  • Paramiko: Python SSH 라이브러리. 저수준 SSH 세션. 상호작용 처리에 추가 코드 필요
  • Netmiko: Paramiko 기반 고수준 라이브러리. 다양한 벤더(Cisco IOS/NXOS/ASA, Juniper, Arista, Huawei) 지원. 자동 프롬프트 처리
  • 주요 메서드:
    • connect() 또는 ConnectHandler() – 연결 생성
    • send_command() – 명령 실행 및 출력 반환
    • send_config_set() – 구성 모드에서 명령 실행
    • disconnect() – 연결 종료

NAPALM(Network Automation and Programmability Abstraction Layer)

벤더 독립적인 네트워크 자동화 라이브러리로 통일된 API를 제공합니다.

  • 게터(Getter): get_interfaces(), get_bgp_neighbors(), get_arp_table(). 벤더 무관하게 정규화된 데이터 반환
  • 구성 관리: load_merge_candidate(), load_replace_candidate(), compare_config(), commit_config(). 원자적 구성 변경
  • 지원 드라이버: ios, eos(Arista), junos, nxos, vyos

TextFSM과 NTC-Templates

CLI 출력을 구조화된 데이터로 파싱하는 라이브러리입니다.

  • TextFSM: 상태 기계 기반 파서. 템플릿으로 텍스트 출력을 JSON/리스트로 변환
  • NTC-Templates: 다양한 벤더 명령어에 대한 사전 제작 TextFSM 템플릿 모음
  • Netmiko 통합: use_textfsm=True 옵션으로 자동 파싱

Nornir

순수 Python 기반 네트워크 자동화 프레임워크입니다. Ansible과 달리 Python 코드로 직접 작성해 더 높은 유연성을 제공합니다.

  • 인벤토리: YAML 파일(hosts.yaml, groups.yaml)로 장비 정의
  • 태스크(Task): Netmiko, NAPALM, RESTCONF 플러그인을 태스크로 실행
  • 멀티스레딩: 기본적으로 병렬 실행(num_workers 설정)
  • 결과(Result): 각 호스트별 결과를 Result 객체로 반환

네트워크관리사 기출 핵심 정리

  • Netmiko = Paramiko 기반 멀티벤더 SSH 자동화
  • NAPALM = 벤더 독립적 게터/구성 관리 API
  • TextFSM = CLI 텍스트 → 구조화 데이터 파싱
  • Nornir = Python 기반 병렬 네트워크 자동화 프레임워크
  • NAPALM compare_config() = 변경 적용 전 차이 확인

Leave a Comment