我已阅读https://en.wikipedia.org/wiki/YANG,但在理解 的实际用途YANG
及其提供的好处方面仍然存在问题。据我了解,它现在不仅被 NETCONF 使用,正如最初设计的那样。YANG
不是普通意义上的语言,例如,即我们写的任何东西C
都没有被编译或翻译;据我了解,它被用作更高级别库或应用程序的参考模型。那么问题是高级代码如何理解?python
YANG
YANG
1 回答
YANG 是一种专门的模式语言,类似于 XSD Schema 或 RelaxNG,但(曾经)特定于 NETCONF。它的目标是对在对等点之间的协议会话期间交换的所有内容进行建模,如 RFC6020 中所述:
YANG 是一种用于为 NETCONF 协议建模数据的语言。YANG 模块定义了可用于基于 NETCONF 的操作的数据层次结构,包括配置、状态数据、远程过程调用 (RPC) 和通知。这允许对 NETCONF 客户端和服务器之间发送的所有数据进行完整描述。
YANG 定义的模型可以以通常的方式使用——例如代码生成,就像JAXB对 XSD Schema 和 Java 所做的那样。有一些工具和服务器实现只使用 YANG 模块集(一个 YANG 模型)并准备用作虚拟实现。还有一些工具使用该模型使用户能够查询设备,而无需实际实现有关设备的任何特定内容。你可以说一组 YANG 模块暴露了设备提供的接口。你用这个界面做什么完全取决于你。
我建议阅读规范中提供的高级概述:
还要检查ietf-netmod-yang标签的 wiki 页面。
编辑:您还可以从阅读An Architecture for Network Management Using NETCONF and YANG文档中受益。它进一步解释了 YANG a 所属的架构,包括应用程序开发人员等不同角色应如何处理它(在网络管理的背景下)。