Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NETCONF 事件通知

总结NETCONF 客户端可以在已启用 NETCONF 事件通知服务的受支持设备上订阅 NETCONF 会话中的事件通知。

NETCONF 事件通知概述

运行 Junos OS Evolved 的某些设备支持 NETCONF 事件通知,这是 NETCONF 服务器与 NETCONF 客户端之间的异步事件通知服务。启用通知服务后,NETCONF 服务器将异步地将事件通知发送到订阅通知服务的所有 NETCONF 客户端。客户可订阅 NETCONF 通知,以接收有关可能会影响设备操作或管理活动的事件的警报。

NETCONF 服务器会针对以下类型的事件发送通知:

  • netconf-session-start—表示 NETCONF 会话何时开始的事件,可识别开始会话的用户。
  • netconf-session-end—表示 NETCONF 会话何时终止的事件,可识别该会话拥有的用户以及会话终止的原因。
  • netconf-config-change—表示管理会话何时提交活动配置更改的事件,并提供更改摘要。

您可以在支持的设备上启用 NETCONF 事件通知服务。请参阅 如何启用和订阅 NETCONF 事件通知以 接收指示。

启用 NETCONF 事件通知后,NETCONF 服务器在功能交换 notification 中通告功能。

要订阅特定设备上事件的通知服务,NETCONF 客户端会向设备的 NETCONF 服务器发送 <create-subscription> RPC,并指明以下信息:

  • <stream>— 感兴趣的事件流。

    流是一组匹配某些转发标准的事件通知。订阅与单一流绑定,用于订阅的生存期。该 NETCONF 流是默认流,在运行 Junos OS 的设备上仅支持流。如果订阅请求用于任何其他流,NETCONF 服务器将返回一个错误。如果省略此参数,设备将订阅请求视为流 NETCONF 请求。

NETCONF 客户端订阅事件通知后,NETCONF 服务器将发送发生的通知。这些通知一直持续到 NETCONF 会话终止。

注意:

默认情况下,NETCONF 客户端会接收所有事件通知。无法根据用户权限限制或限制通知的内容。由于某些事件(例如事件)可能包含 netconf-config-change 敏感信息,因此控制对信息的读取访问非常重要。

有关 NETCONF 事件通知的其他信息,请参阅以下 RFC:

  • RFC 5277 ,NETCONF 事件通知

  • RFC 6470网络配置协议 (NETCONF) 基本通知

NETCONF 事件通知格式

NETCONF 事件通知是格式良好的 XML 文档。当 NETCONF 服务器收到内部事件时,它将它转换为使用顶层元素和子元素的适当 XML <notification> <eventTime> 编码。通知中包含的实际内容取决于事件。

以下示例事件通知包含 netconf-config-change 事件。通知会捕获事件时间戳、提交时间戳、提交配置更改的用户,以及这些更改的摘要。

以下通知包含示例 netconf-session-start netconf-session-end 和事件:

如何启用和订阅 NETCONF 事件通知

您必须先在设备上启用 NETCONF 事件通知服务,NETCONF 客户端才能在 NETCONF 会话中订阅事件通知。启用服务后,NETCONF 客户端会订阅,通过向 NETCONF 服务器发送订阅请求来接收事件通知。NETCONF 服务器回复指示请求是否成功。如果请求成功,服务器在事件发生时向 NETCONF 客户端发送异步事件通知,直到 NETCONF 会话终止。

此示例需要以下硬件和软件:

  • 在Junos OS 21.2R1 或更高版本中运行的设备,支持 NETCONF 事件通知服务。有关 受支持的设备, 请参阅 功能浏览器 。

要启用和订阅 NETCONF 事件通知,请执行以下任务:

启用 NETCONF 事件通知服务

要启用客户端订阅 NETCONF 会话中的事件通知:

  1. 通过配置 语句,启用 NETCONF 事件通知 notification 服务。
  2. (可选) rfc-compliant 配置语句以确保设备符合 NETCONF RFC 4741。
  3. 在默认端口上为设备上运行的应用程序启用通知服务。
  4. 提交配置。

订阅接收事件通知

在设备上启用 NETCONF 事件通知服务后,NETCONF 客户端可以在 NETCONF 会话中订阅接收事件通知。NETCONF 客户端在订阅请求中可包含以下可选参数:

  • <stream>— 感兴趣的活动流。默认值和唯一可接受的值是 NETCONF

要订阅 NETCONF 会话中的事件通知,

  1. 启动 NETCONF 会话。
  2. 验证 NETCONF 事件通知服务是否设备上已启用,确认通知功能已通告在功能交换中。
  3. 发出 create-subscription 请求,并可选择指定 NETCONF 流。
  4. 验证订阅请求是否成功。

    如果请求成功,NETCONF 服务器将返回;如果订阅请求 <ok/> <rpc-error> 无法完成,则返回元素。

    如果订阅请求成功,NETCONF 服务器将开始通过连接异步发送事件通知。

终止订阅

NETCONF 客户端终止订阅以接收事件通知,方式为终止 NETCONF 会话或 NETCONF 会话的底层传输会话。

要终止 NETCONF 会话和订阅,请执行以下操作之一:
  • 从外部 NETCONF 会话发出操作,并端到端指定 NETCONF 会话的会话 ID(在初始交换的元素 <kill-session> <session-id><hello> 定义)。

  • 终止 NETCONF 会话的底层传输会话。