Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解运行 Junos OS 的设备上的 YANG

YANG 是一种基于标准的可扩展数据建模语言,用于对网络设备的配置和操作状态数据、远程过程调用 (RPC) 和服务器事件通知进行建模。IETF 中的 NETMOD 工作组最初设计 YANG 是为了对网络管理数据进行建模,并为网络配置协议 (NETCONF) 模型的内容层提供标准。但是,YANG 与协议无关,YANG 数据模型可以独立于传输或 RPC 协议使用,并且可以转换为网络配置协议支持的任何编码格式。

瞻博网络发布了 YANG 模块,用于定义 Junos 设备的配置层次结构、操作命令、操作状态数据和 YANG 扩展。您可以从瞻博网络网站或瞻博网络 GitHub 存储库下载 YANG 模块,也可以在 Junos 设备上生成模块。

YANG 使用类似 C 的语法(数据的分层组织),并提供一组内置类型以及定义派生类型的功能。YANG 强调可读性,它通过使用模块和子模块以及可重用类型和节点组来提供模块化和灵活性。

YANG 模块定义单个数据模型并确定该数据的编码。YANG 模块通过其数据定义数据模型,以及对该数据的分层组织和约束。模块可以是完整的独立实体,也可以引用其他模块和子模块中的定义,也可以使用其他节点扩充其他数据模型。

YANG 模块不仅定义语法,还定义数据的语义。它显式定义了数据之间的关系和约束。这使您能够创建语法正确的配置数据,以满足约束要求,并使您能够在上传数据并将其提交到设备上之前根据模型验证数据。

YANG 使用模块来定义网络操作的配置和状态数据、通知和 RPC,其方式类似于管理信息结构 (SMI) 使用 MIB 对 SNMP 操作的数据进行建模的方式。但是,YANG 的好处是能够区分操作数据和配置数据。YANG 保持与 SNMP 的 SMI 版本 2 (SMIv2) 的兼容性,您可以使用 libsmi 将 SMIv2 MIB 模块转换为 YANG 模块,反之亦然。此外,当无法使用 YANG 分析器时,可以将 YANG 模块转换为 YANG 独立表示法 (YIN),这是一种等效的 XML 语法,可由 XML 解析器和 XSLT 脚本读取。

您可以使用现有的基于 YANG 的工具或开发自定义网络管理应用程序,以利用 YANG 模块实现更快、更准确的网络可编程性。例如,客户端应用程序可以利用 YANG 模块为不同设备生成特定于供应商的配置数据,并在将数据上传到设备之前对其进行验证。应用程序还可以处理和排查意外的 RPC 响应和错误。

有关 YANG 的信息,请参阅 RFC 6020YANG - 网络配置协议 (NETCONF) 的数据建模语言和相关 RFC。