NETCONF를 사용하여 운영 정보 요청
NETCONF 세션 내에서 클라이언트 애플리케이션은 Junos 디바이스의 현재 상태에 대한 정보를 요청할 수 있습니다. 운영 정보를 요청하기 위해 클라이언트 애플리케이션은 원하는 정보를 반환하는 Junos XML API에서 특정 요청 태그 요소를 내보냅니다.
표 1 에는 동등한 CLI 명령과 동일한 정보를 요청하는 요청 태그의 예가 나와 있습니다.
요청 태그 | CLI 명령 |
---|---|
<get-interface-information> |
show interfaces |
<get-chassis-inventory> |
show chassis hardware |
<get-system-inventory> |
show software information |
다음과 같은 여러 가지 방법을 사용하여 적절한 Junos XML 요청 태그를 결정할 수 있습니다.
-
| display xml rpc
CLI에서 운영 명령에 추가됩니다. -
Junos XML API Explorer - Operational Tags 애플리케이션을 사용하여 주어진 릴리스에서 명령 또는 요청 태그를 검색합니다.
예를 들어, 다음 명령은 명령에 해당하는 show interfaces
요청 태그를 표시합니다.
user@router> show interfaces | display xml rpc <rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.9/junos"> <rpc> <get-interface-information> </get-interface-information> </rpc> </rpc-reply>
RPC를 실행하기 위해 클라이언트 애플리케이션은 요소에 요청 태그를 묶습니다 <rpc>
. 구문은 해당 CLI 명령에 포함된 옵션이 있는지 여부에 따라 달라집니다.
<rpc> <!-- If the command does not have options --> <operational-request/> <!-- If the command has options --> <operational-request> <!-- tag elements representing the options --> </operational-request> </rpc> ]]>]]>
클라이언트 애플리케이션은 NETCONF 서버에서 반환되는 정보의 형식을 지정할 수 있습니다. 열기 작업 요청 태그에서 선택적 format
특성을 설정하면 클라이언트 응용 프로그램에서 응답 형식을 XML 태그 형식(기본값인 ASCII 텍스트 형식) 또는 JSON(JavaScript Object Notation)으로 지정할 수 있습니다. 형식 지정에 대한 자세한 내용은 NETCONF 세션에서 운영 정보 요청의 출력 형식 지정을 참조하십시오.
7비트 ASCII 문자 세트 외부의 문자를 포함하는 운영 또는 구성 데이터를 표시할 때, Junos OS는 동일한 UTF-8 소수점 문자 참조를 사용하여 이러한 문자를 이스케이프하고 인코딩합니다. 자세한 내용은 주니퍼 네트웍스 디바이스에서 문자 인코딩 작동 방식을 참조하십시오.
클라이언트 애플리케이션이 XML 출력을 요청하면 NETCONF 서버는 요청 태그 요소에 해당하는 특정 응답 태그 요소에 응답을 동봉한 다음 태그 요소에 동봉 <rpc-reply>
합니다.
<rpc-reply xmlns="URN" xmlns:junos="URL"> <operational-response xmlns="URL-for-DTD"> <!-- tag elements for the requested information --> </operational-response> </rpc-reply> ]]>]]>
예를 들어, 클라이언트 애플리케이션이 RPC를 <get-interface-information>
보내면 NETCONF 서버는 응답 태그를 반환합니다 <interface-information>
.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/23.4R1.9/junos"> <interface-information xmlns="http://xml.juniper.net/junos/23.4R1.9/junos-interface" junos:style="normal"> <physical-interface> <name> ge-0/0/0 </name> <admin-status junos:format="Enabled"> up </admin-status> ...
XML 형식의 경우 각 작업 응답의 여는 태그에 xmlns
속성이 포함됩니다. 이 속성은 네임스페이스 접두사(예: junos:
)가 없는 닫힌 태그 요소에 대한 XML 네임스페이스를 정의합니다. 네임스페이스는 응답에서 태그 요소 집합을 정의하는 Junos XML DTD(Document Type Definition)를 나타냅니다.
Junos XML API는 서로 다른 소프트웨어 모듈의 운영 응답에 대해 별도의 DTD를 정의합니다. 예를 들어, 인터페이스 정보에 대한 DTD는 junos-interface.dtd라고 하고 섀시 정보에 대한 DTD는 junos-chassis.dtd 라고 합니다 . 별도의 DTD와 XML 네임스페이스로 나뉜다는 것은 이름이 같은 태그 요소가 정의된 DTD에 따라 별개의 기능을 가질 수 있음을 의미합니다.
네임스페이스는 다음 형식의 URL입니다.
http://xml.juniper.net/junos/release-code/junos-category
어디:
-
release-code 은 NETCONF 서버 디바이스에서 실행되는 Junos OS 릴리스를 나타내는 표준 문자열입니다.
-
category 는 DTD를 지정합니다.
클라이언트 애플리케이션이 형식이 지정된 ASCII 텍스트로 출력을 요청하는 경우, NETCONF 서버는 태그로 <rpc-reply>
둘러싸인 태그 요소에 응답을 <output>
동봉합니다.
<rpc-reply xmlns="URN" xmlns:junos="URL"> <output> operational-response </output> </rpc-reply> ]]>]]>
클라이언트 애플리케이션이 JSON 형식의 출력을 요청하면 NETCONF 서버는 JSON 데이터를 태그 요소에 동봉합니다 <rpc-reply>
.
<rpc-reply xmlns="URN" xmlns:junos="URL"> operational-response </rpc-reply> ]]>]]>