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 応答に および <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>および<statistics>サブツリーには、それぞれアクティブなNETCONFセッションとNETCONFサーバーのデータに関する情報が含まれます。表 2 に、これらのフィルターで返されるサポートされる要素の概要を示します。<sessions>データには、セッションごとのカウンターが含まれます。データは<statistics>、NETCONFサーバーのグローバルカウンターを報告します。
| ノード | 記述 | フィルター |
|---|---|---|
|
|
異常終了したNETCONFセッションの数。 |
|
|
|
サーバーが受信した正しくない RPC メッセージの数。 |
|
|
|
サーバーが受信した正しい RPC メッセージの数。 |
|
|
|
開始されたNETCONFセッションの数。 |
|
|
|
NETCONF セッションが確立された日時。 |
|
|
|
NETCONFサーバが起動された日時。 |
|
|
|
|
|
|
|
要素を含む |
|
|
|
NETCONF セッション識別子。 |
|
|
|
NETCONF クライアントの接続元の IP アドレスまたはホスト名。 |
|
|
|
NETCONF セッション用のトランスポートプロトコル(例: |
|
|
|
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 セッションで、サブツリーに対する
netconf-state/datastores操作を実行します<get>。<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 サーバは、設定データストアとそのロック状態を返します。この場合、データストアには、ロックされている設定とrunning(アクティブな)設定が含まれますcandidate。
<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 、サポートされているスキーマの識別子のみを返します。実際のスキーマは含まれません。ID を指定すると、特定のスキーマ インスタンスを取得できます。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デフォルト値はそれぞれ 、 、 usernameinternal-userlocal-hostおよび source-host です。netconf-ssh
デバイス上のアクティブなNETCONFセッションを取得するには:
-
NETCONF セッションで、サブツリーに対する
netconf-state/sessions操作を実行します<get>。<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 セッションで、サブツリーに対する
netconf-state/statistics操作を実行します<get>。<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>