Cisco 로고 Python을 사용한 Cisco NX-OS 네트워크 자동화Python-0 제품을 사용하는 Cisco NX-OS 네트워크 자동화

네트워크 자동화

  • 소프트웨어를 사용하여 네트워크 프로비저닝, 테스트, 배포 및 네트워크 관리를 자동화하는 프로세스
  • 네트워크 효율성과 기능을 극대화하기 위해
  • 네트워크는 본질적으로 복잡하고 부피가 큽니다.
  • 수동 작업 – 더 많은 지연
  • 자동화를 통해 네트워크의 민첩성과 변화 대응력 향상
  • 이익:
  • 향상된 운영 효율성
  • 오류 감소

네트워크 자동화 아키텍처Python-1을 사용하는 Cisco NX-OS 네트워크 자동화

네트워크 프로그래밍 가능성Python-2을 사용하는 Cisco NX-OS 네트워크 자동화

  • 네트워크 장치를 배포, 관리 및 문제 해결하기 위한 도구 세트입니다.
  • 네트워크 엔지니어 관점 – 장치 또는 장치 그룹과 상호 작용
  • 소프트웨어 개발자 관점 – 네트워크 추상화. 전체 네트워크를 단일 장치로 보고 소프트웨어로 조작

네트워크 프로그래밍의 이점

  • OPEX 감소
  • 사용자 정의
  • 인적 오류 감소
  • 운영 유연성
  • 혁신 기회 증가

애플리케이션 프로그래밍 인터페이스(API)Python-3을 사용하는 Cisco NX-OS 네트워크 자동화

  • API는 애플리케이션 및 기타 소프트웨어와 통신하는 데 사용되는 메커니즘입니다.
  • API는 흐름에서 위치에 따라 다른 기능을 수행할 수 있습니다.
  • 소프트웨어를 통해 네트워크의 다양한 구성 요소와 통신하는 데 사용
  • API는 일반적으로 RESTful API입니다.

REST(Representational State Transfer) API

  • REST를 사용하는 API는 종종 RESTful API라고 합니다.
  • RESTful API는 HTTP(Hypertext Transfer Protocol) 방법을 사용하여 데이터를 수집하고 조작합니다.
HTTP 기능 행동
얻다 읽다
우편 만들다
반점 업데이트/수정
놓다 업데이트/교체
삭제 삭제

HTTP 상태 코드

HTTP 상태

암호

결과 일반적인 이유
200 Ok GET 또는 POST를 사용하여 데이터 교환

API

201 생성됨 REST API 호출을 사용하여 리소스 생성
400 잘못된 요청 클라이언트 측 문제로 인해 요청이 실패했습니다.
401 허가받지 않음 클라이언트가 사이트에 액세스하도록 인증되지 않았거나

API 호출

403 금지됨 제공된 기준에 따라 액세스 권한이 부여되지 않음

신임장

404 찾을 수 없음 HTTP의 페이지 URL 위치가 존재하지 않습니다

또는 숨겨져 있습니다

넷미코 오버view

  • Netmiko – 네트워크 장치와 상호 작용하기 위해 광범위하게 사용되는 Python 라이브러리
  • 다중 공급업체 라이브러리
  • Cisco IOS/IOS-XE, NX-OS, 방화벽 등
  • Paramiko 라이브러리의 SSH 기능에 대한 확장 지원
  • 구성 모드로 이동
  • 명령 보내기
  • 출력 검색
  • 예/아니오 프롬프트 처리

네이팜 오버view

  • NAPALM – 다중 공급업체를 지원하는 네트워크 자동화 및 프로그래밍 가능성 추상화 계층
  • 다음을 허용하는 기능을 제공합니다.
  • 구성 작업(커밋 또는 롤백)
  • 네트워크 장치에서 상태 데이터 검색
  • 네트워크 장치에 대한 연결을 설정하는 방법이 포함되어 있습니다.
  • 자동화 도구와 함께 작동 가능 – Ansible
  • 다양한 네트워크 OS를 지원합니다.
  • IOS, IOS-XR, NX-OS, JunOS, EOS 등
네이팜 운영
  • 바꾸기 – 사용자가 기존의 실행 중인 구성을 완전히 새로운 구성으로 바꿀 수 있습니다.
  • 병합 – 사용자가 구성 변경 사항을 병합할 수 있습니다. file 장치에서 실행 중인 구성으로 이동합니다.
  • 비교 – 새로 제안된 구성을 기존 구성과 비교합니다. 병합 작업이 아닌 바꾸기 작업에만 적용됩니다.
  • 폐기 – 병합 구성을 재설정합니다. file 비어있는 곳으로 file. 따라서 새 구성을 장치에 적용할 수 없습니다.
  • 커밋 – 제안된 구성을 네트워크 장치에 커밋합니다. 즉, 다음과 같이 배포하는 데 사용됩니다.tag에드 구성.
  • 롤백 – 실행 중인 구성을 마지막 커밋 이전에 저장된 구성으로 롤백(되돌리기)합니다.

Jinja2로 템플릿하기

  • Jinja는 Python을 위한 현대적인 템플릿 언어입니다. Django 템플릿을 모델로 합니다.
  • 사용자가 Python 프로그램과 쉽게 상호 작용할 수 있습니다.
  • 데이터를 사용하여 동적 콘텐츠를 빠르게 생성
  • 이익:
  • 템플릿 상속
  • 최적의 적시 컴파일
  • 쉬운 디버깅 가능성
  • 구성 가능한 구문
  • 와 함께 일반적으로 사용되는 web Flask와 같은 프레임워크
  • 구성 관리 도구 – Ansible, Nornir 등

구분 기호Python을 사용한 Cisco NX-OS 네트워크 자동화-노르니르 오버view

  • Python 기반 자동화 프레임워크
  • 네트워크 및 호스트 인벤토리 관리 및 작성을 위한 공통 프레임워크 제공 plugins 네트워크 장치 및 호스트용
  • 최소 Python 버전 3.6.2 필요
  • 다중 스레드 – 기본값은 20개의 작업자 스레드입니다.
  • 구성을 사용하여 초기화됨 file – 참조 커플 기타 files
  • 호스트 인벤토리 file
  • 그룹 file
  • 이 모든 것 files는 YAML 형식으로 작성됩니다.

노르니르 아드반tages

  • Python 또는 Golang(Gornir)
  • 기존 라이브러리 재사용 – 네이팜, 넷미코
  • 모든 속성 또는 속성 조합을 기반으로 하는 빠른 호스트 필터링
  • 스레드를 사용하기 때문에 매우 빠름
  • Flask, Django 등을 사용하여 매우 유연하고 확장 가능한 자동화 도구를 구축하는 데 사용할 수 있습니다.
  • 자동으로 캐싱을 수행하고 열린 연결을 닫습니다.

추가 리소스 및 참조

시스코 프레스 뉴스

네트워크 프로그래밍 및 자동화 기초 [자세히 알아보기] CCNP 및 CCIE 보안 코어 SCOR 350-701 공식 인증 가이드
https://www.ciscopress.com/store/ccnp-and-ccie-security-core-scor-350-701-official-cert-9780135971970

Cisco DevNet Professional DEVCOR 350-901 학습 가이드
https://www.ciscopress.com/store/cisco-devnet-professional-devcor-350-901-study-guide-9780137500048

기타 유용한 리소스:
인터view Cisco의 최고 이벤트 기고자 Vinit Jain과 함께
https://community.cisco.com/t5/networking-documents/interview-with-vinit-jain-cisco-s-top-events-contributor/ta-p/3156059
Vinit의 출판물
http://www.ciscopress.com/authors/bio/255ee209-1418-4938-9a42-d3bece2b46c6

문서 / 리소스

Python을 사용한 Cisco NX-OS 네트워크 자동화 [PDF 파일] 사용자 매뉴얼
Python을 사용한 NX-OS 네트워크 자동화, Python을 사용한 네트워크 자동화, Python을 사용한 네트워크 자동화

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *