내용물
숨다
Python을 사용한 Cisco NX-OS 네트워크 자동화
네트워크 자동화
- 소프트웨어를 사용하여 네트워크 프로비저닝, 테스트, 배포 및 네트워크 관리를 자동화하는 프로세스
- 네트워크 효율성과 기능을 극대화하기 위해
- 네트워크는 본질적으로 복잡하고 부피가 큽니다.
- 수동 작업 – 더 많은 지연
- 자동화를 통해 네트워크의 민첩성과 변화 대응력 향상
- 이익:
- 향상된 운영 효율성
- 오류 감소
네트워크 자동화 아키텍처
네트워크 프로그래밍 가능성
- 네트워크 장치를 배포, 관리 및 문제 해결하기 위한 도구 세트입니다.
- 네트워크 엔지니어 관점 – 장치 또는 장치 그룹과 상호 작용
- 소프트웨어 개발자 관점 – 네트워크 추상화. 전체 네트워크를 단일 장치로 보고 소프트웨어로 조작
네트워크 프로그래밍의 이점
- OPEX 감소
- 사용자 정의
- 인적 오류 감소
- 운영 유연성
- 혁신 기회 증가
애플리케이션 프로그래밍 인터페이스(API)
- 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 등
구분 기호
노르니르 오버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을 사용한 네트워크 자동화 |