從三個開源項目認識OpenFlow交換機 - OVS


 

  在SDN/NFV的網絡革新技術浪潮的引領下,催生了諸多數據面開源方案的誕生。業界知名度較高的有OVS(Open vSwitch)、FD.io (Fast Data I/O)、ODP(Open Data Plane)。

然而,在現有的虛擬交換機中,OVS作為主流的開源方案,是目前大多數虛擬化環境和OpenStack部署中的網絡基礎,可以在很多SDN/NFV場景下進行靈活部署。

 

什么是OVS?

  Open vSwitch是由Nicira公司使用C和Python語言開發實現的遵循開源Apache2.0許可的產品級質量的多層虛擬交換機,目的是讓大規模網絡通過可編程實現自動化擴展。

它既可以作為一個軟件交換機運行在虛擬化層,也可以作為交換芯片的控制棧實現,支持多種標准管理接口和協議(NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。

OVS項目的開源發展歷史:

  OVS項目早在2009年,就已孵化誕生,於2012年7月30日發布第一個開源版本V1.7.0,經過這幾年的不斷發展壯大,到目前為止,OVS開源版本已經更新到V2.6.0。圖2簡單展示了其開源版本的更新歷程。

  隨着其社區生態圈日趨豐富,OVS已經被移植到多種虛擬化平台(XenServer6.0、Xen 、KVM、Proxmox VE、VirtualBox)和交換芯片組。

同時被集成到許多虛擬化管理系統(OpenStack、openQRM、OpenNebula、oVirt)。

此外,內核datapath已經被納入Linux內核作為發行版的一部分,像知名的Linux操作系統Ubuntu、Debian、Fedora也都提供了datapath的安裝包。

OVS同樣也支持FreeBSD和NetBSD,更有DPDK( Data Plane Development Kit )助力加速OVS,幫助改善其轉發性能。

 

OVS的組成結構:

  OVS的構成非常簡單,每個部件負責各自的職責,圖3描述了其基礎架構組成。

  簡單了解完OVS本身,接下來我們通過兩個子項目,再進行深入認識:

 

子項目1:OpenFlow伙伴協議——OF-CONFIG

  為了對控制器做更好的支持而誕生。因OVS中的OVSDB協議無法很好的服務於交換機的配置管理,所以就促成了OVS需要支持OF-CONFIG協議的需求,從而有了OVS旗下的OF-CONFIG開源子項目。

  首先簡單認識一下,什么是OF-CONFIG?
  OF-CONFIG協議全稱OpenFlow Configuration Protocol,由開放網絡基金會ONF(Open Networking Foundation)的配置管理工作組CMWG(Configuration and Management working group)提出,

基於NETCONF協議實現,依賴於NETCONF的操作和傳輸標准,旨在對OpenFlow交換機實現遠程管理。

  其次,OF-CONFIG能夠幫我們完成哪些方面的工作?
  最新1.2版本的OF-CONFIG協議支持OpenFlow1.3版本的交換機,主要可以完成的功能如表2所示:

  最后,看一下OVS是如何在現有的基礎架構上支持OF-CONFIG?

 

  圖4顯示了OF-CONFIG對接OVS的架構實現,OF-CONFIG server作為一個系統守護進程,和OVSDB server之間通過OVSDB IDL(Interface Definition Language)建立連接。

然后OF-CONFIG server等待來自NETCONF agent的會話連接請求,一個NETCONF會話連接請求對應一個NETCONF agent。NETCONF agent在啟動的時候和OF-CONFIG server建立連接,

並和OF-CONFIG client完成會話建立的握手。OF-CONFIG server和OF-CONFIG client之間通過D-BUS或UNIX socket方式的進行內部通信。

 

子項目2:開放虛擬網絡OVN

  為更好的服務於雲計算環境而誕生。由於 Openstack Neutron 的實現架構存在一些性能問題,比如 neutron-server 要與非常多的 agent 之間通信,

存在RPC(Remote Procedure Call Protocol)性能瓶頸,還有 neutron 里用到非常多的 namespace,namespace 資源有限且系統開銷比較大,這里也存在性能瓶頸。    

  從長遠來看,OVS 社區覺得Neutron 應該讓一個其它的項目來做虛擬網絡的控制平面,Neutron 只需要提供 API 的處理,

於是 OVS 社區於2015年1月推出了 OVN(Open Virtual Network),用來給OVS引入一個輕量級的控制平面,致力於提高基於OVS的OpenStack網絡方案的擴展性和易用性。

 

  首先,看看OVN的實現架構:

 

  其次,了解OVN組成結構:

  圖5描述了OVN的總體實現架構,結合表3的描述,我們可以簡單了解OVN的每個組件的基本功能實現。

  OVN 對運行平台沒有額外要求,只要能夠運行 OVS,就可以運行 OVN,所以 OVN 可以和 Linux,Docker,DPDK 還有 Hyper-V 兼容,從 OVS 升級到 OVN 也是非常容易的。

  最后,了解一下引入OVN是如何簡化OVS在OpenStack中的集成。

  OpenvSwitch OVN項目將租戶的概念引入了OVS,正式向neutron方向發展,提供對L2/L3網絡虛擬化的支持。引入OVN架構,通過替代OVS agent、L3 agent和DHCP agent,

從而簡化Open vSwitch在Neutron的集成。OVS集成OpenStack在沒有OVN和有OVN支持的兩種情況下的架構實現如下圖所示:

  通過以上三個開源項目的簡單介紹,我們可以認識到,OVS作為一款優秀的開源Openflow交換機,在不斷提供豐富功能特性的同時,

也注重和控制器及雲管平台的對接支持,從而利用豐富的開源社區生態來組建實現靈活多樣的SDN/NFV應用場景。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM