NETCONF イベント通知
まとめNETCONF クライアントは、NETCONF イベント通知サービスが有効になっているサポートされているデバイス上の NETCONF セッションでイベント通知を購読できます。
NETCONF イベント通知の概要
Evolvedで実行されているJunos OSは、NETCONFイベント通知、NETCONFサーバーとNETCONFクライアント間の非同期イベント通知サービスをサポートしています。通知サービスが有効になっている場合、NETCONF サーバーはイベントが発生すると非同期で、通知サービスに加入しているすべての NETCONF クライアントにイベント通知を送信します。クライアントは NETCONF 通知を受信して、デバイスの運用や管理アクティビティに影響を与える可能性があるイベントに関するアラートを受信できます。
NETCONF サーバーは、次のタイプのイベントに関する通知を送信します。
netconf-session-start
—NETCONF セッションがいつ開始され、セッションを開始したユーザーを識別するイベントです。netconf-session-end
—NETCONF セッションが終了する時間を示し、セッションを所有しているユーザーと、セッションが終了した理由を示します。netconf-config-change
—管理セッションがアクティブな設定に変更をコミットするときに示されるイベントで、変更のサマリが提供されます。
サポートされるデバイスで NETCONF イベント通知サービスを有効にできます。手順 については、「 NETCONF イベント通知を 有効にする方法と購読する方法 」を参照してください。
NETCONF イベント通知を有効にした後、NETCONF notification
サーバーは機能交換機能をアドバタイズします。
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <capabilities> ... <capability>urn:ietf:params:netconf:capability:notification:1.0</capability> <capability>urn:ietf:params:xml:ns:netconf:notification:1.0</capability> <capability>urn:ietf:params:xml:ns:netmod:notification</capability> </capabilities> <session-id>29862</session-id> </hello> ]]>]]>
特定のデバイス上のイベントについて通知サービスを購読するには、NETCONF クライアントがデバイス上の NETCONF <create-subscription>
サーバーに RPC を送信し、以下の情報を通知します。
-
<stream>
—関心のあるイベントのストリーム。ストリームは、一部の転送条件に一致するイベント通知のセットです。サブスクリプションは、サブスクリプションの存続期間、単一ストリームにバインドされています。ストリーム
NETCONF
はデフォルトで、Evolvedで実行されているデバイスでJunos OSです。サブスクリプション要求が他のストリームに対する場合、NETCONF サーバーからエラーが返されます。このパラメータを除外した場合、デバイスはサブスクリプション要求をストリームのリクエストとして扱NETCONF
います。
NETCONF クライアントがイベント通知を受信すると、NETCONF サーバーから通知が発生すると送信されます。通知は NETCONF セッションが終了するまで続きます。
NETCONF クライアントは、デフォルトですべてのイベント通知を受信します。ユーザー権限に基づいて通知の内容を制限または制限する方法はありません。イベント(イベントなど)には netconf-config-change
機密情報を含む可能性がある場合があります。このため、情報への読み取りアクセスを制御することが重要です。
NETCONF イベント通知の詳細については、次の RFC を参照してください。
NETCONF イベント通知形式
NETCONF イベント通知は、形式が正しい XML 文書です。NETCONF サーバーが内部イベントを受信すると、それを上位レベルの要素と子要素を持つ適切な XML <notification>
<eventTime>
エンコーディングに変換します。通知に含まれる実際の内容は、イベントによって異なります。
以下のサンプル イベント通知にはイベントが含 netconf-config-change
まれます。この通知は、イベントのタイムスタンプ、コミットのタイムスタンプ、設定変更をコミットしたユーザー、変更のサマリを取得します。
<notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"> <eventTime>2021-04-15T11:39:41-07:00</eventTime> <netconf-config-change xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-notifications"> <change-time>2021-04-15T18:39:41Z</change-time> <changed-by> <username>admin</username> <session-id>29862</session-id> <source-host>198.51.100.25</source-host> </changed-by> <datastore>running</datastore> <edit> <target xmlns:junos-conf-root="http://yang.juniper.net/junos/conf/root" xmlns:junos-conf-interfaces="http://yang.juniper.net/junos/conf/interfaces">/junos-conf-root:configuration/junos-conf-interfaces:interfaces/junos-conf-interfaces:interface[junos-conf-interfaces:name='et-0/0/0']/junos-conf-interfaces:description</target> <operation>replace</operation> </edit> </netconf-config-change> </notification> ]]>]]>
次の通知には、サンプルとイベント netconf-session-start
が含 netconf-session-end
まれます。
<notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"> <eventTime>2021-04-15T11:28:51-07:00</eventTime> <netconf-session-start xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-notifications"> <username>admin</username> <session-id>29862</session-id> <source-host>198.51.100.25</source-host> </netconf-session-start> </notification> ]]>]]>
<notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"> <eventTime>2021-04-15T11:49:06-07:00</eventTime> <netconf-session-end xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-notifications"> <username>admin</username> <session-id>29862</session-id> <source-host>198.51.100.25</source-host> <termination-reason>closed</termination-reason> </netconf-session-end> </notification> ]]>]]>
NETCONF イベント通知を有効にして購読する方法
NETCONF クライアントが NETCONF セッションでイベント通知を購読するには、デバイスで NETCONF イベント通知サービスを有効にする必要があります。サービスが有効になると、NETCONF クライアントはサブスクリプション要求を NETCONF サーバーに送信することで、イベント通知を受信するために加入します。NETCONF サーバーからの返信は、リクエストが正常に完了したかどうかを示します。リクエストが正常に完了すると、サーバーはイベントが発生し、NETCONF セッションが終了するまで、非同期イベント通知を NETCONF クライアントに送信します。
この例では、次のハードウェアとソフトウェアが必要です。
-
NETCONF イベントJunos OSサポートする Evolved Release 21.2R1 以降で実行されているデバイス。サポート されるデバイスについては、「 Feature Explorer 」を参照してください。
NETCONF イベント通知を有効にして購読するには、次のタスクを実行します。
NETCONF イベント通知サービスを有効にする
クライアントが NETCONF セッションでイベント通知を購読するには、次の方法に示します。
イベント通知を受信する
デバイスで NETCONF イベント通知サービスを有効にした後、NETCONF クライアントは NETCONF セッションでイベント通知を受信するために登録できます。NETCONF クライアントは、サブスクリプションリクエストに以下のオプション パラメータを含めできます。
-
<stream>
—関心のあるイベントのストリーム。デフォルトでは、許容可能な値のみNETCONF
.
NETCONF セッションでイベント通知を購読するには、次の方法に関します。
サブスクリプションの終了
NETCONF クライアントは、NETCONF セッションまたは NETCONF セッションの基になるトランスポート セッションのいずれかを終了することで、イベント通知を受け取るサブスクリプションを終了します。
-
外部の
<kill-session>
NETCONF セッションから操作を発行し、NETCONF<session-id>
セッションのセッション ID をエンドツーエンドで指定します(最初の交換の要素で定義<hello>
)。<rpc><kill-session><session-id>29862</session-id></kill-session></rpc>
-
NETCONF セッションの基礎となるトランスポート セッションを終了します。