OpenDaylight是一种开源的SDN控制器,在2013年初由Linux协会联合业内18家企业(包括Cisco、Juniper、Broadcom等多家传统网络设备商)创立,他们的共同目标是以透明、开放、公平、协作为原则建立一个供应商、客户、合作伙伴和开发人员可以共同使用的SDN开源平台,从而推动SDN的产品化和商业化。2018年3月,OpenDaylight与FD.io、ONAP、OPNFV、SNAS.io、PNDA.io、Tungsten Fabric等顶级网络项目合并成立LFN(LF Networking),其目标是促进最终用户、设备厂商及开发者的协作,促进网路转型和开源发展进程,降低成本、推动创新和提高网络容量,实现网络优化管理和自动化的开源平台。
目前,OpenDaylight已经有6年的时间,这对很多开源项目来说已经走过一个从创建发展到没落的轮回,而对OpenDaylight来说,现在仍然保持较高的版本发布频率来增加新的特性,以满足商用的要求。另外,OpenDaylight的版本命名策略是按元素周期表的顺序依次命名,并在前段时间OpenDaylight发布了第9个版本:氟(Flourine),该版本增强了SFC和边缘计算特性。
一、逻辑架构
OpenDaylight的逻辑架构分为应用层、控制器层和数据转发层。其中,应用层聚焦网络业务逻辑开发,负责资源编排;控制器层进行全局网络的管理;数据转发层为各种网络设备,负责数据的转发。
从控制器层的角度来说,与应用层的接口被为北向接口,与数据转发层之间的接口被定义为南向接口。通过对北向接口(REST API、NETCONF)的封装,应用层以软件编程的形式调用各种网络资源和把控整个网络的资源状态,并对资源进行统一调度。南向接口协议包含NETCONF、OVSDB、SNMP、BGP等协议,其中OpenFlow协议用于控制器和交换机之间的通信,控制器可以通过OpenFlow下发流表控制交换机,交换机也可以反馈信息给控制器,同时,OpenFlow也规定了交换机对报文的转发方式。
注意到这里NETCONF即是北向接口也是南向接口,可能容易产生误解,为什么同一协议即在北向出现也在南向出现?事实上,从上面的定义来看,北向和南向只是我们一种习惯的称法,出现在应用层与控制层之间就是北向,出现在控制层与数据转发层之间就是南向。所以,这里不用太纠结,理解其本质就可以了。
二、项目依赖关系
OpenDaylight包含核心项目、协议项目、应用项目、服务项目与支撑项目等,其中核心项目包含AAA、Archetypes、MD-SAL、Controller、Yang Tools等;协议项目包含BGP LS、NETCONF、OpenFlow、OVSDB、P4、SNMP4SDN等;应用项目包含DluxApp、NetVirt、FaaS、NeutronNorthbound等;服务项目包含Topology Processing Framework、Unimgr等。支撑项目包含ODL Tools、Integration、Documentation等,如下图所示:
面对OpenDaylight这样一个庞然大物,让人最不安的问题或许是:我该如何更快更好地了解并掌握这个快速变化的项目?或许我们认知OpenDaylight最快也是最自然的方式就是努力在脑海里形成该项目的组织形式,并不断地细化。比如OpenDaylight作为一个SDN控制器,它包括了哪些功能分别对应哪些项目,各个项目又实现了哪些服务以及功能,这些功能又是以什么样的方式实现的等等。对于我们感兴趣的项目又可以更为细致地去研究其内部架构和流程。
三、重要概念
1.MD-SAL
SAL即为业务抽象层,将服务抽象化,实现控制器既能够支持多种不同的南向协议,也能向北向应用提供统一的服务接口。SAL提供设备发现、数据收集等服务,负责衔接南向协议与北向应用。OpenDaylight基于MD-SAL构建项目。
2.YANG
从网络设备配置的实践角度来说,让你配置一台设备,你直接CLI敲命令就可以了,如果让你配置10台、100台设备你会怎么去做,你肯定会去想有没有这样的方法,可以使用极少的步骤统一配置下发,甚至一键下发。针对网络中的众多问题,一群网络工程师聚在一起,滔滔不决地讨论着工作过程中的问题,同时,也期望着诗和远方:“如果是那样的话,就好了”,就这么着NETCONF和YANG出现了,所以,梦想还是要有的,万一实现了呢。有关YANG的细节如下图:
四、应用案例
全部0条评论
快来发表一下你的评论吧 !