OpenDaylight(ODL) 是一个基于SDN开发的模块化、可扩展、可升级、支持多协议的控制器框架。北向接口可扩展性强,REST型API用于松耦合应用,OSGI型用于紧耦合应用。引入SAL屏蔽不一样协议的差别性。南向支持多种协议插件,如OpenFlow 1.0、 OpenFlow 1.三、OVSDB、NETCONF、LISP、BGP、PCEP和SNMP等。底层支持传统交换机、纯Openflow交换机、混合模式的交换机。ODL控制平台采用了OSGI框架,实现了模块化和可扩展化,为OSGI模块和服务提供了版本和周期管理。ODL靠社区的力量驱动发,支持工业级最广的SDN和NFV使用用例。ODL每6个月推出一个版本,经历的版本为Hydrogen、Helium、Lithium、Beryllium。html
OpenDaylight 设计时候遵循六个基本架构原则:算法
ODL控制器能够运行在任何支持JAVA的平台上,如架构图1所示,大致分为三部分,网络APP/业务流程层、控制器平台层、物理/虚拟网络设备层,北向接口与南向接口将三者链接。控制器向应用层提供北向接口,应用使用控制器收集信息,利用控制器作分析,部署新的网络规则等。南向接口可支持多种协议,openflow1.0、openflow1.三、BGP等,这些协议插件动态地链接在SAL上。数据库
OpenDaylight(Beryllium)架构 图-1编程
最底层由物理、虚拟设备组成。例如交换机、路由器等在网络端点间创建链接。底层支持传统交换机、纯Openflow交换机、混合模式的交换机。api
ODL向下层提供的接口称之为南向接口,南向接口支持多种协议。如OpenFlow 1.0、 OpenFlow 1.3,OVSDB、NETCONF、LISP、BGP、PCEP和SNMP等。这些协议模块以插件的方式动态挂在SAL上。南向接口使用Netty来管理底层的并发IO。Netty是提供异步的、事件驱动的网络应用框架,该框架健壮性、可扩展性良好,还具备延时低、节省资源等特色。Netty使用简单,功能强大,支持多种主流协议。定制性强,能够经过channelHandler对通讯框架进行灵活扩展,适用于支持多种协议的南向接口。缓存
协议模块主要有OpenFlow、OVSDB、NETCONF、LISP、BGP、PCEP和SNMP等协议模块。其中OF最具表明性,OF是控制器与交换机之间的通讯准则,管理网络设备会话链接以及协议交互,一方面监听底层设备的消息,另外一方面将上层请求下发到底层设备,此外还支持链路发现服务。网络
为了用以太网交换机建SDN,提出一个南向接口插件。如图2所示,可经过这个插件中的SNMP和CLI把流配置安装到以太网交换机的转发表、ACL 和VLAN表中,此外须要拓展SAL的API去支持一些设置。架构
SNMP协议插件-图-2并发
OVSDB插件用于实现open VSwitch数据库管理协议,容许南向接口配置虚拟交换机。而LISP插件与LISP服务相互协做,为数据平台设备提供映射服务。BGP协议用于支持BGP链路状态分布,做为网络层拓扑信息来源。而PCEP协议用于支持路径计算单元协议,为底层网络实例化路径。框架
基本网络服务功能:
拓扑管理、统计管理模块、交换机管理模块、转发管理模块、主机追踪模块、ARPHandler模块
拓展服务功能(基础版以后添加):
Affinity service、OpenStack service、LISP service、OVSDB Neutron、VTN Manager、oDMC
OpenDaylight有不少重要的技术须要了解,每种技术都须要花一段时间研究,例如OSGI框架的使用,OSGI服务的注册和调度,maven工程中bundle的编写方法,sal,YANG,config等,
为加深对ODL架构理解,以ARP packet为例来分析packet分发流程。如图-3 所示,OSGI 框架动态管理Bundle,绑定一块儿的Bundle能够相互通讯,如SAL将packet 分发到实现IListenDataPacket接口的ArpHandler,同时ArpHandler调用SAL实现的IDataPacketService。
图-3
如图-4所示,交换机(openflow)经过OpenFlowJava、OpenFlowPlugin、protocal_plugin与SAL进行信息,SAL将Packet-In分发到上层应用。
图-4
如图-5所示,1.OpenFlowPlugin调用IPluginOutDataPacketService将ARP请求分发到SAL
2.SAL调用IListenDataPacket将ARP请求上层应用
3.上层应用调用IDataPacketService将ARP应答分发到SAL
4.SAL调用IPluginInDataPacketService将ARP应答分发到OpenFlowPlugin
图-5
ODL提供集群功能保证服务的高可用,集群中的多个实例对外表现出一个实例,NorthBound能够请求集群中任意一个实例。
集群的做用:
• Scaling: If you have multiple controllers running, you can potentially do more work with or store more data on those controllers if they are clustered. You can also break up your data into smaller chunks (known as shards) and either distribute that data across the cluster or perform certain operations on certain members of the cluster.
• High Availability: If you have multiple controllers running and one of them crashes, you would still have the other instances working and available.
• Data Persistence: You will not lose any data gathered by your controller after a manual restart or a crash.
集群使用的核心技术:
Infinispan(High Avaliable,Key/Value NoSQL datastore)提供高可用缓存服务
Raft算法保证多副本数据的一致性
Akka处理并发的请求
集群中数据以下图所示,
图-6
图-7
图-8
参考文档:
http://www.sdnlab.com/15390.html
https://wiki.opendaylight.org/images/8/88/ODL-Clustering-ONS-2016-ckd.pdf
ODL经过北向接口Neutron Bound与Neutron Server通讯,ODL利用OpenFlow和OVSDB 管理OpenStack计算节点的OpenVSwitch(组织table内的flow entry),提供L二、L三、LoadBalanceService、FirewallService。
注:Kilo -> 开始支持L3 Liberty 依然不支持LoadBalance 等其它服务
组织逻辑 图-9
ODL与OpenStack集成 图-10
图-11
图-12
参考文档:
http://www.flaviof.com/blog/work/how-to-odl-with-openstack-part1.html
https://wiki.opendaylight.org/images/5/55/Integrating-opendaylight-with-openstack-published.pdf
企业认识到云计算技术是提升本身的竞争力的核心技术,混合云和公有云提升业务灵活性并下降总成本的潜力,但对传统网络的需求依旧很是显著。通讯服务提供商(CSP)利用云技术来加强其庞大的网络基础设施的可管理性和成本效益,同时提升服务灵活性。SDN体系结构的核心是SDN控制器,其主要优势为:开放API便于实现多样化的应用;支持各大厂商的不一样设备;经过可编程网络提供了智能的控制和管理系统。
随着网络设备线性速率成倍增加,网络愈来愈低效,网络优化需求愈来愈急迫。因为带宽和网络延迟优先级很高,运营商和他们的用户都在寻求方法优化网络开销、网络弹性和其余跨异构网络技术和设备的QoS指标。网络优化对于昂贵的网络带宽,例如WAN(对于企业和云提供商)、海缆网络和传输网(对于运营商),是最重要的。没有运营商能够奢侈到推翻一切从头再来,网络资源优化方案利用创新方案从现有的基础设施上实施。
网络资源优化方案应该提供:
经过统一维护网络拓扑和配置连同告警和性能状态,OpenDaylight为网络资源优化(NRO)提供了一套丰富的基础网络服务和扩展网络服务。利用OpenDaylight的逻辑集中网络状态、数据分析和异构基础设施的流量工程策略的NRO算法,提升网络设备的利用率。运营商正在实现基于OpenDaylight融合分组光网络的多层控制,来优化带宽使用、保护带宽和动态服务环境的服务布局。
OpenDaylight提供的一个开放式SDN平台:
经过容许运营商组合网络应用和设备,OpenDaylight提供了一个强有力的支持自动化和操做智能化的服务交付平台,也支持运营商根据自身状况进行SDN迁移。
腾讯基于OpenDaylight的控制器,用以优化带宽使用从而解决其在大量的数据中心间传输服务的问题。
中国移动NovoNet,NovoNet描绘了2020年基于SDN和NFV的企业网络的愿景,其中一个重要用例就是围绕“自配置、自管理、智能流量规划和实时感知”实现的流量优化。
图-13
多层次传输控制器解决方案 SDN在电信行业一个重要的用例就是Transport-SDN,专一于解决城域网和长距离链接的光分组设施的控制问题。不少主流的原始设备制造商已经基于OpenDaylight开发出了Transport SDN控制器,用来控制多层次设备。爱立信的Transport SDN产品提供了一个网络资源和拓扑端到端、优化的资源位置以及跨IP层和光层的网络引擎的抽象视图。
图-14