XenServer的網絡堆棧Open vSwitch模式

在上一篇文章中,咱們介紹了XenServer的Bridge網絡堆棧模式,如今在本篇文檔中,咱們將介紹XenServer支持的另外一種開源的網絡堆棧模式:open vswitch。XenServer如今安裝部署的版本中默認採用open vswitch模式,若是咱們不須要作LACP或者綁定更多的網卡及使用分佈式交換機,那麼建議在生產環境中仍是使用Linux Bridge模式。數據庫

Open vSwitch是一款開源的軟件虛擬交換機,適用於基於Linux的虛擬化平臺。實質上Citrix也將其集成到本身的XenServer產品當中,並對其進行大力支持。而且基於其開發出本身的虛擬分佈式交換機產品提供給XenServer使用。從XenServer6.0開始Citrix將其做爲xenServer默認的網絡堆棧模式。Open vSwitch提供近似於硬件交換機的多種功能,相比於Bridge網絡協議棧來講,Open vSwitch提供了比Bridge更多的功能,好比VLAN功能,端口鏡像,QoS等。OpenvSwitch提供的具體功能以下:編程

  • NetFlow:NetFlow最初是由思科公司開發的一項技術,用於監控網絡流量和爲管理員提供網絡流量的可視化的視圖。安全

  • sFlow:sFlow技術是用於監視網絡的開放標準技術協議,爲管理員提供了可視化的網絡流量視圖。服務器

  • Switched Port Analyzer (SPAN):SPAN或端口鏡像用於複製或鏡像數據包從一個端口到另外一個交換機上。這一般是用於監視和掃描目的,好比部署亞信安全的TDA設備進行網絡安全威脅掃描等。網絡

  • Remote Switched Port Analyzer (RSPAN):RSPAN顧名思義就是遠程的SPAN技術。利用SPAN技術咱們能夠把交換機上某些想要被監控端口(如下簡稱受控端口)的數據流COPY或MIRROR一份,發送給鏈接在監控端口上的流量分析儀,好比CISCO的IDS或是裝了SNIFFER工具的PC. 受控端口和監控端口能夠在同一臺交換機上,也能夠在不一樣的交換機上(遠程SPAN)。架構

  • Quality of Service (QoS):QoS(Quality of Service,服務質量)指一個網絡可以利用各類基礎技術,爲指定的網絡通訊提供更好的服務能力, 是網絡的一種安全機制, 是用來解決網絡延遲和阻塞等問題的一種技術。socket

  • Link Aggregation Control Protocol (LACP):提供LACP協議的能力,聚合多個物理網絡接口鏈接到對端交換機,提供冗餘邏輯鏈路以及帶寬的聚合提高。分佈式

  • OpenFlow suppor:容許OpenFlow的控制平面的從打開的vSwitch的狀況下抽象咱們的數據包,其主要做爲轉發平面。此功能提供了虛擬交換機做爲SDN的支持。ide

  • Generic Routing Encapsulation (GRE):GRE 是通用路由封裝協議,能夠對某些網絡層協議的數據報進行封裝,使這些被封裝的數據報可以在IPv4 網絡中傳輸。工具

  • VXLAN:VXLAN(Virtual eXtensible Local AreaNetwork)是一種將二層報文用三層協議進行封裝的技術,能夠對二層網絡在三層範圍進行擴展。即所謂的大二層技術。

 

在這裏重點提一下OpenFlow技術,如今比較火熱的新型網絡架構軟件定義網絡( SDN)中,如今業界主要分爲兩大陣營在該領域搶佔制高點,其中一派爲傳統的網絡設備製造廠商,譬如CISCO,他們以OpenFlow爲核心技術,將網絡設備的控制與數據平面分離,從而實現網絡流量的靈活控制,爲核心網絡及應用的創新提供良好的平臺。以此實現軟件定義網絡。另外一陣營以新興的虛擬化廠商爲表明,好比VMware,他們以Overlay技術爲主,高舉開放的旗幟,他們不用關心底層硬件的工做,更關心的是如何經過軟件的方式來定義和控制網絡。這兩大陣營有對抗也有共鳴。

無疑Open vSwitch也是OpenFlow技術陣營的。OpenFlow 是一組協議和API,它起源於斯坦福大學的Ethane 項目,實現可編程網絡的思想, 從SDN 整個架構看,OpenFlow 協議又是控制器與交換機中的通訊協議。控制器使用OpenFlow 協議對交換機中的流表表項進行添加、更新與刪除。2009 年12月,OpenFlow.org 發佈了OpenFlow標準的1.0 版本,在2011年2月,OpenFlow.org 繼續發佈標準1.1版,後由ONF負責。

 

接下來咱們首先介紹Open vSwitch的架構和組件。

  在Open vSwitch中,若是從總體上來看的話,Open vSwitch在服務器上主要簡化的結構以下圖所示:

wKioL1Z0_mLwh4ojAAAfRjuQGCU738.png

能夠理解爲Open vSwitch主要包含Controller和Datapath兩個部分。其中Datapath咱們譯爲數據路徑,其實質就是一臺以太網交換機。

其中,Controller層是一個網絡的管理層,統一管理和配置下面的各個Datapath層設備。Controller層還能夠和OpenFlow緊密集成。

數據路徑Datapath層其實就是一個虛擬的交換機設備,功能和傳統的交換機相似。在Open vSwitch中一臺虛擬的交換機就被稱之爲一個Datapath。其主要是在名稱上的稱呼。其實這個Datapath和bridge差很少,區別就在於,Datapath受Open vswitch的Controller管理,支持更多的功能。其主要的功能:

   傳遞虛擬機之間的流量

   實現虛擬機和外部網絡的流量通訊

wKiom1Z0_nqA2zR6AAPM_fDoK30979.png

本圖來源於網絡

如上圖所示,本圖很好的展現了Open vSwitch的具體邏輯實現架構。最上層表達的意思是利用OpenFlow協議鏈接到OpenFlow控制器,以實現SDN的控制層面存在。

中間的這一層就是OpenvSwitch本身的服務守護進行等,主要運做在Domain 0的用戶空間。

  • Ovs-vswitchd:該組件是openvswitch在用戶空間的守護進程,主要實現虛擬交換機的交換功能。經過netlink協議直接和內核模塊Datapath進行通訊。

  • Ovsdb-Server:open vswitch的數據庫,主要存儲openvswitch的配置信息,ovs-vswitchd主要讀取ovsdb-server裏面保存的配置信息進行工做。ovs-vswitchd會經過Unix socket和ovsdb-server通訊。

最下面的這層運行Open vSwitch內核模塊Datapath,Datapath主要運行於內核空間,是主要的應用咱們配置數據包規則的程序,就是負責幹活的一線工程師。

 

下面咱們說說Open vSwitch是如何工做的。

 

在系統的內核模塊中,Open vSwitch能夠建立多個「數據路徑(DataPath)」(這相似於以太網交換機,和咱們上文中說的網橋相似),在每一個Datapath中均可以建立多個「vports」(交換機端口)。

   每一個Datapath經過關聯流表(flow table)來進行相應的動做,而這些流表中的流都是用戶空間在報文頭和元數據的基礎上映射的關鍵信息,通常的操做都是將數據包轉發到另外一個vport。當一個數據包到達一個vport,內核模塊所作的處理是提取其流的關鍵信息並在流表中查找這些關鍵信息。當有一個匹配的流時它執行對應的操做。若是沒有匹配,會交給用戶態的ovs-vswitchd查詢flow,用戶態處理後,會把處理完的數據包輸出到正確的端口,而且設置新的datapath規則,後續數據包能夠經過新的datapath規則實現快速轉發。細節以下圖所示:

wKioL1Z0_qjTCBHiAAC0GUNkxcM503.png

圖片來自網絡

上面咱們花了必定的篇幅來介紹什麼是Open vSwitch和Opne vSwitch的架構以及Open vSwitch如何工做。接下來我須要給你們說明,在Xen或着XenServer中,Open vSwitch是如何和Xen虛擬化底層結合的。

在下面的圖中展現了Xen環境下的Opne vSwitch設備架構圖

wKiom1Z0_rLxTwQQAACtJ9-Hmjw655.png

圖片來自網絡

  咱們能夠看到,在Xen的環境下,Open vSwitch會在每臺Xen的主機Domain 0中建立數據路徑Datapath。而後經過統一的Controller來進行管理。

wKiom1Z0_tCCiIIxAAAuzWVNDEY900.png

虛擬機網卡與Open vSwitch的Datapath即網橋端口直接鏈接。數據包轉發到Datapath以後,再有咱們上面所說的處理機制進行數據包的處理。這裏的tap就是交換機上的一個端口。

  在多臺Xen或着XenServer主機中的網絡鏈接示意圖。

wKioL1Z0_vaTUSs6AAFq-XrZob8356.png

在XenServer中,Citrix基於OpenvSwitch開發了分佈式虛擬交換機。

分佈式虛擬交換機架構圖

wKiom1Z0_v_SGneDAAED4xb1BDo398.png

在XenServer中,分佈式虛擬交換機以下圖所示,XenServer有一臺專門封裝好的虛擬機,導入XenServer中做爲分佈式交換機的控制器,對各臺XenServer上的Open vSwitch網絡進行統一管理。

wKioL1Z0_zCRle5tAABJaStjtTU181.png

相關文章
相關標籤/搜索