了解运行网络的设备 YANG Junos OS
YANG 是一种基于标准的可扩展数据建模语言,用于对网络设备的配置和操作状态数据、远程过程调用 (RPC) 和服务器事件通知进行建模。数据中心中的 NETMOD 工作组IETF设计 YANG 来对网络管理数据进行建模,并为网络配置协议 (NETCONF) 模型的内容层提供标准。但是,YANG 与协议无关,YANG 数据模型可独立于传输或 RPC 协议使用,并可以转换为网络配置协议支持的任何编码格式。
瞻博网络提供 YANG 模块,用于定义Junos OS层次结构、操作命令和JUNOS OS YANG 扩展。您可从远程瞻博网络下载 YANG 模块,瞻博网络 GITHub YANG 存储库下载,也可在运行此设备的设备上生成Junos OS。
YANG 使用类似 C 的语法和数据的分层组织,并且提供一组内置类型以及定义派生类型的功能。YANG 强调可读性,并通过使用模块和子模块以及可重用的类型和节点组提供模块化和灵活性。
YANG 模块定义单个数据模型并确定此数据的编码。YANG 模块通过其数据定义数据模型,以及此数据的层次结构组织和约束。模块可以是一个完整的独立实体,也可以参考其他模块和子模块中的定义,以及使用附加节点增强其他数据模型。
YANG 模块不仅定义了语法,还定义了数据语义。它明确定义了数据之间的关系和约束。这样,您才能创建符合约束要求且能确保数据在上传和在设备上提交之前根据模型进行验证的语法正确配置数据。
YANG 使用模块来为网络操作定义配置和状态数据、通知和 RPC,其方式类似于管理信息结构 (SMI) 使用 MBB 为 SNMP 操作建模数据的方式。但是,YANG 具有能够区分操作数据和配置数据的好处。YANG 保持与 SNMP 的 SMI 版本 2 (SMIv2) 兼容,您可以使用 libsmi 将 SMIv2 MIB模块转换为 YANG 模块,反之亦然。此外,当您无法使用 YANG 解析器时,可以将 YANG 模块转换为 YANG 无关表示法 (一种由 XML 解析器和 XSLT 脚本可读的等效 XML 语法)。
您可以使用基于 YANG 的现有工具或开发自定义网络管理应用程序,以利用 YANG 模块实现更快、更准确的网络可编程性。例如,客户端应用程序可以利用 YANG 模块为不同设备生成特定于供应商的配置数据,并验证该数据,然后再将其上传到设备。应用程序还可以处理和故障排除意外 RPC 响应和错误。
有关 YANG 的信息,请参阅 RFC 6020、 YANG - 网络配置协议 (NETCONF)的数据建模语言 和相关 RFC 。