我读过https://en.wikipedia.org/wiki/YANG,但在理解YANG
的实际使用及其带来的好处方面仍然存在问题。据我所知,现在它不仅被NETCONF使用,就像最初设计的那样。YANG
不是一种常识上的语言,例如C
或python
,即我们用YANG
编写的东西没有编译或翻译;正如我所理解的,它被用作高级库或应用程序的参考模型。那么问题是高级代码如何理解YANG
?
发布于 2016-01-07 09:28:23
YANG是一种专门的模式语言,类似于XSD或RelaxNG,但(曾经)特定于NETCONF。它的目标是对在对等点之间的协议会话期间交换的所有内容进行建模,如RFC6020中所述:
YANG是一种用于为NETCONF协议建模数据的语言。YANG模块定义了可用于基于NETCONF的操作的数据层次结构,包括配置、状态数据、远程过程调用(RPC)和通知。这允许对NETCONF客户端和服务器之间发送的所有数据进行完整描述。
杨定义的模型可以按照通常的方式使用--例如,代码生成,比如JAXB对XSD和Java所做的工作。有一些工具和服务器实现可以简单地使用YANG模块集( YANG模型),并且可以作为虚拟实现使用。还有一些工具可以使用该模型来使用户能够查询设备,而无需实际实现有关该设备的任何具体操作。您可以说,一组YANG模块公开了设备提供的接口。你用这个界面做什么完全取决于你自己。
我建议阅读规范中提供的高级概述:
还可以检查ietf-netmod-yang标记的wiki页面。
编辑:阅读基于NETCONF和YANG的网络管理体系结构文档也会使您受益。它进一步解释了YANG a所参与的体系结构,包括应用程序开发人员等不同角色应该如何处理它(在网络管理的上下文中)。
https://stackoverflow.com/questions/34643797
复制相似问题