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 概述了 netconf-state
Junos 设备上支持的子树。
|
描述 |
---|---|
|
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 回复包括和<data>
<netconf-state>
元素。这些元素将所请求信息的子树括起来。
<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>
和<statistics>
子树分别包含有关活动 NETCONF 会话和 NETCONF 服务器数据的信息。表 2 概述了为这些筛选器返回的支持元素。<sessions>
数据包括每个会话的计数器。数据报告 <statistics>
NETCONF 服务器的全局计数器。
节点 | 描述 | 筛选器 |
---|---|---|
|
异常终止的 NETCONF 会话数。 |
|
|
服务器接收的错误 RPC 消息数。 |
|
|
服务器接收的正确 RPC 消息数。 |
|
|
已启动的 NETCONF 会话数。 |
|
|
建立 NETCONF 会话的日期和时间。 |
|
|
NETCONF 服务器启动的日期和时间。 |
|
|
发送的消息数 |
|
|
包含 |
|
|
NETCONF 会话标识符。 |
|
|
NETCONF 客户端连接的 IP 地址或主机名。 |
|
|
例如, |
|
|
通过 NETCONF 传输协议验证的客户端身份。 |
|
检索 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 。
对于未定义某些值的会话(例如,内部会话),、 和 的transport
username
默认值分别为 、 internal-user
和 source-host
netconf-ssh
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>