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