了解 YANG 及其目标

Mar*_*ark 4 schema model ietf-netmod-yang

我已阅读https://en.wikipedia.org/wiki/YANG但仍然无法理解 的实际用途YANG及其提供的好处。据我了解,它现在不仅像最初设计的那样由 NETCONF 使用。YANG不是普通意义上的语言,例如Cpython我们所写的任何内容都YANG不会被编译或翻译;据我了解,它被用作更高级别的库或应用程序的参考模型。那么问题是高层代码如何理解呢YANG

pre*_*edi 5

YANG 是一种专门的模式语言,类似于 XSD Schema 或 RelaxNG,但特定于 NETCONF。其目标是对对等点之间的协议会话期间交换的所有内容进行建模,如 RFC6020 中所述:

YANG 是一种用于为 NETCONF 协议建模数据的语言。YANG 模块定义了可用于基于 NETCONF 的操作的数据层次结构,包括配置、状态数据、远程过程调用 (RPC) 和通知。这允许对 NETCONF 客户端和服务器之间发送的所有数据进行完整描述。

YANG 定义的模型可以以通常的方式使用 - 例如代码生成,就像JAXB对 XSD Schema 和 Java 所做的那样。有一些工具和服务器实现可以简单地使用 YANG 模块集(YANG 模型)并准备用作虚拟实现。还有一些工具使用该模型使用户能够查询设备,而无需实际实现有关设备的任何特定内容。您可以说一组 YANG 模块公开了设备提供的接口。您使用此界面做什么完全取决于您。

我建议阅读规范中提供的高级概述:

另请检查ietf-netmod-yang标签的 wiki 页面。

编辑:您还可以从阅读使用 NETCONF 和 YANG 的网络管理架构文档中受益。它进一步解释了 YANG a 所属的架构,包括应用程序开发人员等不同角色应如何处理它(在网络管理的背景下)。