专家访谈
与Jürgen Schönwälder的问答
Jürgen Schönwälder是雅各布斯大学不来梅分校的计算机科学教授。他的研究兴趣包括网络管理和测量、网络安全、嵌入式系统和分布式系统。他在IETF共同撰写了40多个网络管理相关规范和标准,对网络管理协议(SNMP和NETCONF)以及相关数据建模语言(SMIv2、SMIng和YANG)做出了重大贡献。他在担任NETMOD工作组共同主席期间监督了YANG1.1的工作。
提问:
Jürgen,你是IETF中许多协议和数据模型的主要设计者,涵盖SNMP、MIB、NETCONF、RESTCONF和YANG。基于YANG的数据模型驱动管理有什么如此特别之处?
回答:
网络管理总是涉及自动化。我在20世纪90年代初开始涉足网络管理技术,当时SNMP得到了广泛的实现和部署。SNMP的设计相对简单(忽略ASN.1/BER细节,它显然不是那么简单),但是由于数据的组织和通信方式,SNMP相对难以用于自动化配置任务。即使是基本的操作,如检索设备配置的快照以用于备份和还原,也很难通过SNMP实现。(有些设备允许通过SNMP触发配置快照,但配置数据通常是以私有格式通过FTP传递的。)
鉴于SNMP的汇编语言特性,运维人员通常发现通过私有的命令行接口配置设备更加方便。由于命令行接口不是设计作为编程API的,因此通过脚本命令行接口实现的自动化变得有些脆弱,因为数据表示通常是为人类读者而不是为编程访问而优化的。
21世纪初有人试图改进SNMP技术及其数据建模语言,但未能取得足够的进展,IETF最终开始创建新的管理协议来解决配置管理问题。目标是提供一个健壮的API来管理设备的配置。最初的协议工作完成后,2007年,一群人聚集在一起设计了一种支持新配置协议的数据建模语言,这是YANG的起源。所有这些都发生在XML和XML Schema是业界热门话题的时候,但是YANG的设计者认为需要一种特定领域的语言,它比XML Schema更易于读写,并设计成以增量方式组装相当复杂的数据模型。
同时,设备的配置也变得越来越动态,这扩大了对可持续运行的、健壮的配置事务的需求,并影响到许多设备。YANG语言开始填补一个空缺,因为它是现成的,有基本的工具支持。虽然YANG最初使用XML对实例数据进行编码,但对其他数据表示的支持也相对简单。此外,YANG语言被设计成可扩展的。因此,供应商和运营商能够用由YANG数据模型驱动的API替换私有API,尽管在某些情况下能够使用非标准的数据编码和协议。YANG允许这种情况发生,这对它的采用有好处。另一个驱动力是向软件定义网络演进,其中某些控制功能从设备移到外部控制器。YANG在这里既作为控制器管理的设备接口(南向接口),也作为其他控制器和服务管理系统的高级接口(北向接口)。
虽然YANG是一个成功的例子,但进一步改进技术的工作仍在进行。最近一个网络管理数据存储的架构发布出来,进一步发展了数据存储的架构概念,而YANG正是基于这个概念。实施后应用程序管理设备或控制器将能够在设备和控制器的内部,配置处理工作流程的不同阶段访问的配置数据,并提供关键元数据,说明特定设置如何生效,从而使新型应用程序能够解释设备的实际行为与其预期行为有何不同。
通过从YANG数据模型派生的编程API进行的数据驱动管理开始向服务管理发展。可以预期将来对单个设备及其API的关注会减少。将出现新的网络和服务编程概念,使网络运维人员能够建立和扩展服务管理系统,以前所未有的速度协调复杂的服务。