RFC 준수 NETCONF 세션 구성
NETCONF를 사용하여 Junos 디바이스를 관리하는 경우 NETCONF 서버가 NETCONF 세션 중에 RFC 4741, NETCONF 구성 프로토콜 을 준수하는 특정 동작을 실행하도록 요구할 수 있습니다. RFC 컴플라이 rfc-compliant
언스 적용을 위해 계층 수준에서 명령문을 [edit system services netconf]
구성합니다. 문을 구성하면 rfc-compliant
NETCONF 세션의 다음 측면에 영향을 미칩니다.
-
NETCONF 서버 회신에서 방출되는 네임스페이스
-
반환할 구성 데이터가 없는 경우 RPC에 반환된 요소 및
<get-config>
작업에 대한<get>
회신 -
NETCONF 서버는 심각도 수준의 경고 수준을 가진 요소와
<rpc-error>
요소를 모두<ok/>
반환할 것이라고 응답합니다. - NETCONF 서버가 및
<validate>
운영에 대해<commit>
회신합니다.
차이는 다음 섹션에서 자세히 설명되어 있습니다.
네임 스페이스
기본적으로 NETCONF 서버는 서버 응답의 오프닝 태그에 있는 NETCONF 네임스페이스에 기본 네임스페이스를 설정하며 NETCONF 태그 이름은 자격이 없습니다. 예를 들어:
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <capabilities> <capability>urn:ietf:params:netconf:base:1.0</capability> ... </capabilities> <session-id>27700</session-id> <hello> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos">
문을 구성할 rfc-compliant
때 NETCONF 서버는 응답에서 기본 네임스페이스를 정의하지 않습니다. 대신, 서버는 NETCONF 네임스페이스에 대한 네임스페이스 선언을 포함하며, 이는 접두사에 nc
바인딩되며, 모든 NETCONF 태그가 접두사로 응답에 적합합니다. RPC 요청에서 NETCONF 네임스페이스에 기본 네임스페이스를 설정하는 경우, 서버는 기본 네임스페이스를 폐기하고 접두사에 바인딩 nc
된 선언된 네임스페이스만 사용하여 응답을 내보낸다.
다음 샘플 출력은 명령문이 구성되면 NETCONF 서버의 <hello>
메시지와 기능이 교환되는 것을 rfc-compliant
보여줍니다. 태그에는 <hello>
선언문이 xmlns:nc
포함되어 있으며 모든 NETCONF 태그에는 접두사도 nc
포함됩니다.
<nc:hello xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:capabilities> <nc:capability>urn:ietf:params:netconf:base:1.0</nc:capability> ... </nc:capabilities> <nc:session-id>27703</nc:session-id> </nc:hello>
다음 출력은 명령문이 구성되면 샘플 RPC 응답을 rfc-compliant
보여줍니다.
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos"> <nc:data> <configuration xmlns="http://xml.juniper.net/xnm/1.1/xnm" junos:changed-seconds="1417554471" junos:changed-localtime="2014-12-02 13:07:51 PST"> <!--configuration data--> </configuration> <database-status-information> <database-status> <user>root</user> <terminal></terminal> <pid>47868</pid> <start-time junos:seconds="1417560303">2014-12-02 14:45:03 PST</start-time> <edit-path></edit-path> </database-status> </database-status-information> </nc:data> </nc:rpc-reply>
Junos OS 릴리스 17.2R1부터 NETCONF 세션에서 문을 구성 rfc-compliant
하고 구성 데이터를 요청할 때 서버는 요소의 기본 네임스페이스를 <configuration>
해당 YANG 모델과 동일한 네임스페이스에 설정합니다.
<rpc> <get-config> <source> <running/> </source> </get-config> </rpc> ]]>]]> <nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/17.2R1/junos"> <nc:data> <configuration xmlns="http://yang.juniper.net/yang/1.1/jc/configuration/junos/17.2R1.13" junos:commit-seconds="1493761452" junos:commit-localtime="2017-05-02 14:44:12 PDT" junos:commit-user="user"> ... </configuration> </nc:data> </nc:rpc-reply> ]]>]]>
<get> 및 <get-config> 운영의 변경 사항
반환 rfc-compliant
할 구성 데이터가 없는 경우 문은 및 <get-config>
서버 응답에 영향을 미칩니다<get>
. 예를 들어, 필터를 적용하여 구성의 하위 집합을 반환하고 구성의 해당 부분이 비어 있는 경우 이러한 문제가 발생할 수 있습니다.
또는 작업을 실행하고 <get>
요청된 계층에 구성 데이터가 없는 경우, 문이 구성되지 않은 경우 rfc-compliant
RPC 응답에는 요소 내부에 <data>
빈 <configuration>
요소가 포함 <get-config>
됩니다.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/15.1D0/junos"> <data> <configuration> </configuration> </data> </rpc-reply>
또는 작업을 실행하고 <get>
요청된 계층에 구성 데이터가 없는 경우, 문이 구성되면 rfc-compliant
RPC 응답이 빈 <data>
요소를 반환하고 요소를 생략합니다<configuration>
.<get-config>
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos"> <nc:data> </nc:data> </nc:rpc-reply>
<rpc-error> RPC Replies에서 심각도 수준의 경고가 있는 요소
릴리스 17.4R3, 18.2R2, 18.3R2 및 18.4R1 Junos OS 문을 구성할 rfc-compliant
때 NETCONF 서버는 요소와 <ok/>
요소를 모두 <rpc-error>
포함하는 RPC 응답을 반환할 수 없습니다. 작업이 성공했지만 서버 응답에 요소 외 <ok/>
에 심각도 수준의 경고가 있는 하나 이상의 <rpc-error>
요소가 포함될 경우 경고는 생략됩니다. 또한 Junos OS 릴리스 21.2R1부터는 작업 중에 <commit>
생략된 모든 경고가 시스템 로그 파일로 리디렉션되어 추적할 수 있습니다.
이전 릴리스에서 또는 문이 구성되지 않은 경우 rfc-compliant
NETCONF 서버는 경고의 심각도 수준과 <ok/>
요소를 모두 <rpc-error>
포함하는 RPC 응답을 발행할 수 있습니다. 예를 들어 커밋 작업은 성공했지만 다음 NETCONF 서버 응답과 같이 경고를 반환합니다.
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/17.4R1/junos"> <nc:rpc-error> <nc:error-severity>warning</nc:error-severity> <nc:error-message> uid changed for jadmin (2001->2014) </nc:error-message> </nc:rpc-error> <nc:ok/> </nc:rpc-reply> ]]>]]>
문을 구성 rfc-compliant
하면 경고가 생략됩니다.
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.4R1/junos"> <nc:ok/> </nc:rpc-reply> ]]>]]>
NETCONF Server < 커밋> 및 < 검증> 운영에 대한 응답
릴리스 21.2R1 Junos OS 시작하여 문을 구성할 rfc-compliant
때 NETCONF 서버의 운영 응답 <commit>
에는 다음과 같은 변경 사항이 포함됩니다.
-
작업이
<commit>
하나 이상의 경고와 함께 응답을 반환하면 경고가 응답에서 생략될 뿐만 아니라 시스템 로그 파일로 리디렉션됩니다. -
NETCONF 서버 응답은 요소 대신 요소의
<error-info>
하위 요소로 요소를 내보<source-daemon>
낸다<rpc-error>
. -
또한 계층 수준에서 문을 구성하는
flatten-commit-results
경우 NETCONF 서버는 응답에서 또는<rpc-error>
요소만 내보내<ok/>
고 XML 하위 트리를 억제합니다<commit-results>
.[edit system services netconf]
릴리스 23.2R1 Junos OS 시작하여 문을 구성할 rfc-compliant
때 NETCONF 서버는 운영에 따라 <validate>
또는 <rpc-error>
요소만 <ok/>
내보낸다. 이전 릴리스에서는 RPC 응답에도 요소도 포함됩니다<commit-results>
.
rfc-compliant
때 NETCONF 서버는 운영에 따라
<validate>
또는
<rpc-error>
요소만
<ok/>
내보낸다. 이전 릴리스에서는 RPC 응답에도 요소도 포함됩니다
<commit-results>
.
rfc-compliant
하면 NETCONF 서버의 작동 응답
<commit>
이 수정됩니다.
rfc-compliant
하면 NETCONF 서버는 요소와
<ok/>
요소를 모두
<rpc-error>
포함하는 RPC 응답을 반환할 수 없습니다.