Vyatta公司成立于2005年 。该公司提供一个也叫Vyatta的、在商用硬件上运行的开源网络操作系统。Vyatta名称取自梵语中的“open”,发音为“vee-at-ah”。2006年推出Vyatta商业订购版本,定价500美元/年 。
随着云计算的发展,Vyatta被众多公有云厂商支持。比如AWS Marketplace中的第一个虚拟路由器应用就是Vyatta :
2012年11月,博科收购了Vyatta 后,取消了开源的社区版本,软件也改名为Vyatta vRouter。但是Vyatta的开源之路并没有终结,针对博科停止Vyatta社区版的决定,独立开发人员从Vyatta Core 6.6 R1版本fork 出一个分支,即VyOS开源软件项目。
Vyatta于2017年7月被AT&T收购,Vyatta NOS构成了AT&T开源dNOS(disaggregated Network Operating System,分解的网络操作系统)平台的基础。
dNOS由硬件和软件组件组成:
AT&T将dNOS软件用在这几个场景:
dNOS功能和组件图
简单分析下上面这张图中的三个层次:
1、应用程序(Applications)是路由器上控制平面或管理平面组件具有的任何网络功能。
2、共享基础设施和数据(Shared Infrastructure and Data)。NOS必须能够使用通用方法和协议在不同供应商的应用程序之间共享数据。 dNOS的一个关键目标是创建一个便于应用程序之间共享的开放环境。为此,dNOS包括通用基础架构组件和共享数据结构。
基本网络状态信息存储在一组公共共享数据结构中。这些数据结构包括有关接口状态,邻居解析表,转发信息库(FIB)状态等的信息。应用程序使用通用方法更新相关的基本网络状态共享数据。
所有共享基础设施数据由使用合适的标准数据结构和/或数据建模语言(例如,YANG)表示的标准化数据模型定义。数据共享基础设施和基本网络状态共享数据结构使得能够在不同协议之间共享公共数据(例如,经典IGP可访问的链路状态数据,例如OSPF和ISIS以及用于SDN控制应用的BGP-LS), 以及协议选择的优雅演变(例如,使用gRPC代替SNMP来收集OAM数据)。
用户,业务流程和数据导出接口提供了一个通用基础架构,用于将应用程序和系统基础架构连接到外部系统以进行管理和分析。ONAP管理和控制系统的北向接口包括NetConf / YANG和gRPC,并支持用于telemetry数据收集的流式传输和(传统)轮询机制。
3、dNOS包括一组支持多个不同转发层的组件。转发抽象层(FAL,Forwarding Abstraction Layer)负责从共享基础架构和数据组件获取高级网络状态输入,并转换为供应商特定API,以用于各种软件和硬件转发选项:
FAL的目标是使ASIC供应商具有多样性,并且多个ASIC共享一个与目标无关的共同抽象层。长期目标是让FAL包含支持完全可编程硬件流水线的抽象。这种抽象将基于正式的网络编程语言,如P4或其他类似的行业认可的标准化语言。
AT&T在2018年初将dNOS作为种子代码贡献给Linux基金会,Linux基金会的据此成立DANOS项目 。DANOS(Dis-Aggregated Network Operating System分解网络操作系统)将提供一个开放的NOS框架,利用现有的开源资源和硬件平台,如白盒交换机、白盒路由器和uCPE等。Vyatta第四代架构引入了商业芯片+软件转发的混合转发模式。采用Vyatta第四代架构的DANOS,预计于2019年第一季度正式发布。
DANOS侧重于硬件/软件分解和超越云数据中心网络功能,创建和培养路由软件组件供应商生态系统,以提供创新的网络解决方案,满足MAN/WAN网络的大规模和快速发展的功能要求(包括蜂窝站点路由器,城域以太网服务和RAN回传路由器/交换机,Internet和VPN服务边缘路由器,运营商POP内互连结构,骨干核心路由器等)。DANOS 目前计划支持这五个操作系统:dNOS 、FRR、SONiC 、OpenSwitch和Stratum 。
DANOS/dNOS详细架构图(颜色对应上一张“dNOS功能和组件图”)
对照上面这张图,大概介绍下DANOS的控制和管理平面、基础操作系统和数据平面:
1、https://about.att.com/content/dam/innovationblogdocs/att-routing-nos-open-architecture_FINAL%20whitepaper.pdf
2、https://www.fiercetelecom.com/telecom/linux-foundation-builds-off-at-t-s-dnos-to-push-danos-project
3、https://vimeo.com/307590844/132bdb2384
注:本文已发表至SDNLAB https://www.sdnlab.com/22893.html