NETCONF Perl Client 및 샘플 스크립트 이해
Junos OS를 실행하는 장치는 클라이언트 애플리케이션이 장비에서 구성 정보를 요청하고 변경할 수 있도록 하는 NETCONF XML 관리 프로토콜을 지원합니다. NETCONF 프로토콜은 구성 데이터 및 원격 절차 호출에 XML(Extensible Markup Language) 기반 데이터 인코딩을 사용합니다. Juniper Networks NETCONF Perl API는 Perl 프로그래밍 언어에 익숙한 프로그래머가 자체 Perl 애플리케이션을 생성하여 NETCONF를 통해 Junos OS를 실행하는 디바이스를 관리할 수 있도록 지원합니다.
Junos OS 릴리스 16.1 이전에 모든 Junos OS 릴리스에는 NETCONF Perl 클라이언트의 새로운 릴리스 종속 버전이 포함되었습니다. Junos OS Release 16.1부터 NETCONF Perl 클라이언트는 릴리스 독립형이며 GitHub 및 CPAN에서 호스팅되며 모든 버전의 Junos OS 릴리스를 실행하는 디바이스를 관리할 수 있습니다. NETCONF Perl 배포의 릴리스 종속 버전에 있는 모듈 및 샘플 스크립트는 GitHub 및 CPAN에 호스팅된 릴리스 독립 버전의 모듈과 다릅니다.
이 섹션에는 다음 항목이 포함되어 있습니다.
NETCONF Perl Client Modules
표 1 은 NETCONF Perl 라이브러리의 릴리스 독립 버전에 모듈을 요약하고 있습니다. 이 모듈은 Net::Netconf::Manager
Junos OS를 실행하는 장치에서 NETCONF 서버와 통신하기 위한 객체 지향적 인터페이스를 제공하며, 디바이스에 쉽게 연결하고 NETCONF 세션을 설정하며 운영 및 구성 요청을 실행할 수 있습니다. 클라이언트 애플리케이션은 객체를 직접 호출하기만 합니다 Net::Netconf::Manager
. 클라이언트 애플리케이션이 객체를 Manager
생성하면 장비에 액세스할 때 사용할 장비 이름과 로그인 이름을 제공합니다. 로그인 이름은 장비에서 클라이언트 애플리케이션의 액세스 수준을 결정합니다.
모듈 |
설명 |
---|---|
|
객체를 |
|
모든 NETCONF 상수를 선언합니다. |
|
Junos OS를 실행하는 장비가 지원하는 NETCONF API에 객체 지향적 인터페이스를 구현합니다. 이 클래스의 객체는 NETCONF 프로토콜을 사용하여 클라이언트와 통신하는 장비 연결의 로컬 측면을 나타냅니다. |
|
운영 및 구성 요청 모두에 대한 XML 문서의 개발을 용이하게 합니다. 이 모듈은 기본 라이브러리로 사용 |
|
요청된 서버에 따라 NETCONF 또는 Junos XML |
|
NETCONF 서버의 응답을 구문 분석하는 SAX 기반 파서 |
|
인스턴스에 |
|
추적 수준을 제공하고 요청된 디버그 레벨에 따라 추적을 지원합니다. |
다음 모듈은 NETCONF Perl 클라이언트 EzEditXML
의 릴리스 독립 버전에서 새 버전입니다. .
다음 모듈은 NETCONF Perl 클라이언트Transform
Plugins
Version
의 릴리스 독립 버전에서 제거되었습니다.
클라이언트 애플리케이션은 퍼블릭 도메인의 Perl 모듈을 활용하여 NETCONF Perl 클라이언트 애플리케이션의 개발을 용이하게 할 수 있습니다. NETCONF는 XML 기반 데이터 인코딩을 사용하기 때문에 클라이언트 애플리케이션은 XML 데이터를 조작하는 많은 Perl 모듈을 사용할 수 있습니다.
NETCONF Perl 클라이언트를 사용하여 장비에 연결하고 NETCONF 세션을 설정하며 작업을 실행하는 Perl 애플리케이션을 생성할 수 있습니다. NETCONF Perl API를 통해 장비상의 클라이언트와 NETCONF 서버 간의 통신에는 다음 단계가 포함됩니다.
Junos OS를 실행하는 장치에서 클라이언트 애플리케이션과 NETCONF 서버 간에 SSHv2를 통해 NETCONF 세션 설정
요청에 해당하는 RPC를 생성하고 NETCONF 서버로 전송합니다.
NETCONF 서버에서 RPC 응답을 수신 및 처리합니다.
샘플 스크립트
NETCONF Perl 배포에는 모듈을 사용하여 다양한 기능을 수행하는 방법을 설명하는 샘플 스크립트가 포함된 예제 디렉토리가 포함되어 있습니다. 스크립트 실행에 대한 지침은 https://github.com/Juniper/netconf-perl NETCONF Perl GitHub 리포지토리의 README 파일을 참조하십시오.
diagnose_bgp/diagnose_bgp.pl—장비 상태를 모니터링하고 문제를 진단하는 방법을 설명합니다. 이 스크립트는 전체 BGP 구성 데이터 집합에서 장비의 BGP(Unestabled Border Gateway Protocol) 피어에 대한 정보를 추출하고 표시합니다.
get_chassis_inventory/get_chassis_inventory.pl—미리 정의된 쿼리를 사용하여 장비에서 정보를 요청하는 방법을 설명합니다. 샘플 스크립트는 Junos XML
<get-chassis-inventory><detail/></get-chassis-inventory>
요청 및detail
CLI 운영 모드 명령show chassis hardware detail
에서 반환한 것과 동일한 정보를 요청하는 옵션을 사용하여 쿼리를 호출get_chassis_inventory
합니다.edit_configuration/edit_configuration.pl—Junos XML 태그 요소로 포맷된 구성 데이터가 포함된 파일을 로드하여 디바이스를 구성하는 방법을 설명합니다. 배포에는 샘플 구성 파일, config.xml; 그러나 스크립트를 호출할 때 명령줄에 다른 구성 파일을 지정할 수 있습니다.