NETCONF 모니터링
요약 Junos 디바이스를 쿼리하여 NETCONF 서버에서 NETCONF 상태 정보 및 지원되는 스키마를 검색할 수 있습니다.
Junos 디바이스는 여러 로컬 및 원격 NETCONF 클라이언트의 동시 관리 세션을 지원합니다. 때때로, 디바이스의 활성 NETCONF 세션에 대한 가시성과 NETCONF 서버 통계 및 지원에 대한 정보가 필요합니다. NETCONF 상태 정보에 쉽게 액세스하면 네트워크 디바이스를 보다 효과적으로 관리할 수 있습니다.
NETCONF 모니터링 데이터 모델은 NETCONF 서버에 대한 운영 정보를 제공합니다. NETCONF 클라이언트는 Junos 디바이스를 쿼리하여 NETCONF 서버에서 NETCONF 상태 정보를 검색할 수 있습니다. 클라이언트는 NETCONF 기능, NETCONF 세션 및 통계, 구성 데이터 저장소 및 지원되는 스키마에 대한 정보를 요청할 수 있습니다.
NETCONF 모니터링 모델에 대한 자세한 내용은 RFC 6022, NETCONF 모니터링을 위한 YANG 모듈을 참조하십시오.
NETCONF 상태 정보 개요
NETCONF 모니터링 데이터 모델은 NETCONF 서버의 운영 데이터를 정의합니다. 컨테이너는 netconf-state
다양한 작업 영역에 대한 데이터를 정의하고 포함하는 하위 트리로 구성됩니다.
표 1 에는 Junos 디바이스에서 지원되는 하위 트리가 netconf-state
요약되어 있습니다.
|
설명 |
---|---|
|
NETCONF 서버가 지원하는 NETCONF 운영. |
|
사용 가능한 구성 데이터스토어(예 |
|
디바이스에서 지원되는 스키마입니다. |
|
디바이스의 활성 NETCONF 관리 세션. |
|
NETCONF 서버 성능 데이터. |
NETCONF 모니터링 데이터 모델을 지원하는 Junos 디바이스는 세션 설정 중 NETCONF 세션의 기능 교환에서 이 기능을 보급합니다.
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <capabilities> <capability>urn:ietf:params:netconf:base:1.0</capability> <capability>urn:ietf:params:xml:ns:netconf:base:1.0</capability> ... <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring</capability> ... </capabilities> <session-id>12976</session-id> </hello> ]]>]]>
NETCONF 상태 정보를 요청하려면 요청을 보내고 <get>
관심 있는 하위 트리를 netconf-state
지정합니다(예: <datastores>
).
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <get> <filter type="subtree"> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <subtree> </netconf-state> </filter> </get> </rpc>
NETCONF 상태 정보를 요청하면 서버의 RPC 응답에 및 <netconf-state>
요소가 포함됩니다<data>
. 이러한 요소는 요청된 정보에 대한 하위 트리를 묶습니다.
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.12-EVO/junos" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> ... </netconf-state> </data> </rpc-reply>
및 하위 트리에는 netconf-state
<sessions>
각각 활성 NETCONF 세션 및 <statistics>
NETCONF 서버 데이터에 대한 정보가 포함됩니다. 표 2 에서는 이러한 필터에 대해 반환되는 지원되는 요소를 간략하게 설명합니다. 데이터에는 <sessions>
세션별 카운터가 포함됩니다. <statistics>
데이터는 NETCONF 서버에 대한 글로벌 카운터를 보고합니다.
노드 | 설명 | 필터 |
---|---|---|
|
비정상적으로 종료된 NETCONF 세션 수. |
|
|
서버에서 받은 잘못된 RPC 메시지 수입니다. |
|
|
서버에서 받은 올바른 RPC 메시지 수입니다. |
|
|
시작된 NETCONF 세션 수입니다. |
|
|
NETCONF 세션이 설정된 날짜 및 시간. |
|
|
NETCONF 서버가 시작된 날짜 및 시간. |
|
|
|
|
|
요소를 포함하는 |
|
|
NETCONF 세션 식별자입니다. |
|
|
NETCONF 클라이언트가 연결된 IP 주소 또는 호스트 이름. |
|
|
예를 들어, |
|
|
NETCONF 전송 프로토콜에 의해 인증된 클라이언트 ID. |
|
NETCONF 기능 검색
NETCONF 클라이언트는 NETCONF 서버의 기능을 검색할 수 있습니다. 기능은 NETCONF 서버에서 지원하는 작업을 정의합니다. NETCONF 서버는 세션 설정 중에 지원되는 기능을 보급합니다. 기본적으로 Junos 디바이스는 기능 목록에서 지원되는 YANG 모듈을 광고하지 않습니다. 그러나 이를 포함하도록 디바이스를 구성할 수 있습니다.
NETCONF 서버의 기능을 요청하려면 다음을 수행합니다.
NETCONF 서버는 지원되는 기능을 갖춘 요소를 반환합니다 <capabilities>
. 이 <capabilities>
정보는 세션 설정 중에 보낸 메시지 교환의 <hello>
정보와 동일합니다.
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.12-EVO/junos" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <capabilities> <capability>urn:ietf:params:netconf:base:1.0</capability> <capability>urn:ietf:params:netconf:capability:candidate:1.0</capability> <capability>urn:ietf:params:netconf:capability:confirmed-commit:1.0</capability> <capability>urn:ietf:params:netconf:capability:validate:1.0</capability> <capability>urn:ietf:params:netconf:capability:url:1.0?scheme=http,ftp,file</capability> <capability>urn:ietf:params:xml:ns:netconf:base:1.0</capability> <capability>urn:ietf:params:xml:ns:netconf:capability:candidate:1.0</capability> <capability>urn:ietf:params:xml:ns:netconf:capability:confirmed-commit:1.0</capability> <capability>urn:ietf:params:xml:ns:netconf:capability:validate:1.0</capability> <capability>urn:ietf:params:xml:ns:netconf:capability:url:1.0?scheme=http,ftp,file</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-yang-metadata?module=ietf-yang-metadata&revision=2016-08-05</capability> <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring</capability> <capability>http://xml.juniper.net/netconf/junos/1.0</capability> <capability>http://xml.juniper.net/dmi/system/1.0</capability> <capability>http://yang.juniper.net/junos/jcmd?module=junos-configuration-metadata&revision=2021-09-01</capability> <capability>http://yang.juniper.net/junos/common/types?module=junos-common-types&revision=2023-01-01</capability> <capability>http://yang.juniper.net/junos/conf/access-profile?module=junos-conf-access-profile&revision=2023-01-01</capability> <capability>http://yang.juniper.net/junos/conf/access?module=junos-conf-access&revision=2023-01-01</capability> <capability>http://yang.juniper.net/junos/conf/accounting-options?module=junos-conf-accounting-options&revision=2023-01-01</capability> ... </capabilities> </netconf-state> </data> </rpc-reply>
구성 데이터스토어 검색
구성 데이터스토어는 디바이스에서 지원되는 구성 데이터베이스입니다. 구성 데이터스토어에 대한 정보를 요청하면 서버는 잠금 상태도 반환합니다.
NETCONF 서버에서 지원하는 구성 데이터 저장소 목록을 요청하려면 다음을 수행합니다.
-
NETCONF 세션에서 하위 트리에
<get>
대한netconf-state/datastores
작업을 실행합니다.<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <get> <filter type="subtree"> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <datastores/> </netconf-state> </filter> </get> </rpc>
NETCONF 서버는 구성 데이터스토어와 해당 잠금 상태를 반환합니다. 이 경우 데이터스토어에는 잠금이 candidate
설정된 구성과 running
(활성) 구성이 포함됩니다.
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.12-EVO/junos" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <datastores> <datastore> <name>candidate</name> <locks> <locked-by-session>0</locked-by-session> <locked-time junos:seconds="1691539727">2023-08-08T17:08:47-07:00</locked-time> </locks> </datastore> <datastore> <name>running</name> </datastore> </datastores> </netconf-state> </data> </rpc-reply>
스키마 검색
NETCONF 클라이언트는 디바이스에서 지원되는 스키마 목록을 요청할 수 있습니다. 기본적으로 Junos 디바이스는 지원되는 스키마 목록에서 Junos 네이티브 스키마만 반환합니다. 그러나 디바이스에 설치된 사용자 지정 YANG 모듈과 OpenConfig와 같은 표준 모듈을 포함하여 지원되는 추가 스키마를 포함하도록 디바이스를 구성할 수 있습니다.
지원되는 스키마 목록을 요청하려면 다음을 수행합니다.
디바이스는 지원되는 스키마 목록을 반환합니다. 출력에는 Junos 네이티브 스키마가 포함됩니다. 출력에는 사용자 지정 및 표준 스키마도 포함됩니다(이러한 스키마를 내보내도록 디바이스를 구성한 경우).
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.12-EVO/junos" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <schemas> <schema> <identifier>junos-common-types</identifier> <version>2023-01-01</version> <format>yang</format> <namespace>http://yang.juniper.net/junos/common/types</namespace> <location>NETCONF</location> </schema> <schema> <identifier>junos-conf-access-profile</identifier> <version>2023-01-01</version> <format>yang</format> <namespace>http://yang.juniper.net/junos/conf/access-profile</namespace> <location>NETCONF</location> </schema> ... </schemas> </netconf-state> </data> </rpc-reply>
하위 트리는 netconf-state/schemas
지원되는 스키마에 대한 식별자만 반환합니다. 실제 스키마는 포함되지 않습니다. 식별자가 주어지면 특정 스키마 인스턴스를 검색할 수 있습니다. NETCONF 세션에서 스키마 인스턴스를 요청하려면 다음을 수행합니다.
-
작업을 실행하고
<get-schema>
스키마 식별자를 지정합니다.<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <get-schema xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <identifier>schema-identifier</identifier> </get-schema> </rpc>
예를 들어 다음 RPC는
junos-conf-access-profile
스키마를 검색합니다.<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <get-schema xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <identifier>junos-conf-access-profile</identifier> </get-schema> </rpc>
NETCONF 서버는 기본값이자 유일하게 지원되는 형식인 YANG 형식으로 스키마를 반환합니다.
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.12-EVO/junos" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> /* * Copyright (c) 2023 Juniper Networks, Inc. * All rights reserved. */ module junos-conf-access-profile { namespace "http://yang.juniper.net/junos/conf/access-profile"; prefix jc-access-profile; import junos-common-types { prefix jt; revision-date 2023-01-01; } import junos-conf-root { prefix jc; revision-date 2023-01-01; } organization "Juniper Networks, Inc."; contact "yang-support@juniper.net"; description "Junos access-profile configuration module"; revision 2023-01-01 { description "Junos: 23.4R1.12-EVO"; } augment /jc:configuration { uses access-profile-group; } augment /jc:configuration/jc:groups { uses access-profile-group; } grouping access-profile-group { container access-profile { description "Access profile for this instance"; leaf access-profile-name { description "Profile name"; type string; } } } } </data> </rpc-reply>
NETCONF 세션 정보 검색
NETCONF 클라이언트는 디바이스에서 활성 NETCONF 세션 목록을 요청할 수 있습니다. NETCONF 서버는 각 세션에 대한 정보와 함께 활성 세션을 반환합니다. 반환된 데이터에는 세션별 카운터가 포함됩니다. 출력 필드에 대한 설명은 표 2 를 참조하십시오.
특정 값이 정의되지 않은 세션(예: 내부 세션)의 경우, , , 및 의 netconf-ssh
기본값은 transport
각각 , , internal-user
username
source-host
입니다local-host
.
디바이스에서 활성 NETCONF 세션을 검색하려면:
-
NETCONF 세션에서 하위 트리에
<get>
대한netconf-state/sessions
작업을 실행합니다.<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <get> <filter type="subtree"> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <sessions/> </netconf-state> </filter> </get> </rpc>
NETCONF 서버는 세션별 데이터와 함께 활성 NETCONF 세션을 반환합니다.
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.12-EVO/junos" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <sessions> <session> <session-id>2614</session-id> <transport>netconf-ssh</transport> <username>admin</username> <source-host>10.1.1.101</source-host> <login-time junos:seconds="1691699108">2023-08-10T13:25:08-07:00</login-time> <in-rpcs>6</in-rpcs> <in-bad-rpcs>0</in-bad-rpcs> <out-rpc-errors>1</out-rpc-errors> <out-notifications>0</out-notifications> </session> <session> <session-id>2879</session-id> <transport>netconf-ssh</transport> <username>sec-admin</username> <source-host>198.51.100.11</source-host> <login-time junos:seconds="1691699237">2023-08-10T13:27:17-07:00</login-time> <in-rpcs>11</in-rpcs> <in-bad-rpcs>1</in-bad-rpcs> <out-rpc-errors>2</out-rpc-errors> <out-notifications>0</out-notifications> </session> <session> <session-id>13559</session-id> <transport>netconf-ssh</transport> <username>root</username> <source-host>local-host</source-host> <login-time junos:seconds="1689712208">2023-07-18T13:30:08-07:00</login-time> <in-rpcs>14</in-rpcs> <in-bad-rpcs>0</in-bad-rpcs> <out-rpc-errors>0</out-rpc-errors> <out-notifications>0</out-notifications> </session> </sessions> </netconf-state> </data> </rpc-reply>
NETCONF 서버 통계 검색
NETCONF 클라이언트는 주어진 디바이스에 대한 NETCONF 서버 통계를 요청할 수 있습니다. 필터는 세션별 카운터를 반환하는 반면 <netconf-state>
<sessions>
, <netconf-state>
<statistics>
NETCONF 서버에 대한 글로벌 카운터를 반환합니다. 출력 필드에 대한 설명은 표 2 를 참조하십시오.
디바이스에서 NETCONF 서버 통계를 요청하려면 다음을 수행합니다.
-
NETCONF 세션에서 하위 트리에
<get>
대한netconf-state/statistics
작업을 실행합니다.<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <get> <filter type="subtree"> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <statistics/> </netconf-state> </filter> </get> </rpc>
NETCONF 서버는 서버에 대한 글로벌 성능 데이터를 반환합니다.
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.12-EVO/junos" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <statistics> <netconf-start-time junos:seconds="1689712174">2023-07-18T13:29:34-07:00</netconf-start-time> <in-sessions>43</in-sessions> <dropped-sessions>3</dropped-sessions> <in-rpcs>58</in-rpcs> <in-bad-rpcs>48</in-bad-rpcs> <out-rpc-errors>4</out-rpc-errors> <out-notifications>2</out-notifications> </statistics> </netconf-state> </data> </rpc-reply>