張少芳 劉延鋒

摘? ?要:在云計算的背景下,服務器的虛擬化對傳統網絡的數據遷移能力提出了非常高的要求。文章分析了當前非常典型的一種網絡虛擬化技術—VXLAN技術,通過在三層IP網絡之上建立基于數據鏈路層的邏輯隧道,使數據鏈路層數據能夠穿越網絡層的承載網絡進行傳遞,實現虛擬機跨三層網絡的動態遷移,有效地提高了數據的傳輸效率以及對硬件資源的利用率。
關鍵詞:云計算;虛擬機;SDN;VXLAN;報文
1? ? VXLAN技術的引入
作為云計算中非常重要的一種核心技術,服務器虛擬化憑借其低成本、靈活的業務部署等優勢已經得到廣泛的認可和部署。通過使用服務器的虛擬化技術,一臺物理上的服務器就能夠虛擬出多臺邏輯上的虛擬機,從而在邏輯上使主機的數量實現量級的增長[1]。但是服務器虛擬化在滿足云計算需求的同時,也給虛擬網絡帶來了諸多問題,主要有以下3個方面。
1.1? 虛擬機的遷移范圍受到網絡物理架構的限制
虛擬機遷移在數據中心網絡中是一種必然的需求,目的在于虛擬機在跨物理服務器遷移時保障網絡業務不中斷,這就要求在遷移的整個過程中虛擬機的IP地址以及MAC地址都必須保持不變。因此,虛擬機的承載網絡必須是一個工作于數據鏈路層的二層網絡,使得網絡規模被限制在一定的范圍內,無法實現網絡虛擬化的高度擴展性。
1.2? 虛擬機的規模受到網絡規格限制
在二層數據網絡中,數據流量的轉發路徑需要通過在交換設備上查詢MAC地址來確定。因此,交換設備上的“端口與MAC地址映射表”的大小就決定了云計算數據中心中虛擬機規模的上限。由于受到交換設備內存大小的限制,MAC表項一般都比較小,限制了虛擬機的數量。
1.3? 租戶網絡的隔離能力受限
目前網絡中的鏈路隔離主要使用虛擬局域網(Virtual Local Area Network,VLAN)技術來實現,該技術在大規模網絡部署中存在非常大的局限性。一方面,由于數據封裝中VLAN ID字段的長度只有12比特,可用VLAN的數量只有4 094個(VLAN0和VLAN4095不可用),這對于大型的云數據中心或云計算中心來說顯然是遠遠不能滿足需求的。另一方面,目前VLAN主要通過靜態配置的方式來實現,出于易于配置的考慮,一般需要在中繼鏈路上將所有VLAN設置為允許通過,這就使廣播報文會被泛洪到整個網絡,導致網絡帶寬被無限制地消耗,降低網絡交換的性能。
針對上述問題,本研究引入了虛擬擴展區域網(Virtual eXtensible Local Area Network,VXLAN)技術,VXLAN技術是VLAN的一種擴展方案,使用了“MAC in UDP”的數據封裝方式,是一種基于三層IP網絡的虛擬化技術。它對于上述問題給出了很好的解決方法。
(1)針對虛擬機的遷移范圍受到網絡物理架構限制的問題,通過VXLAN能夠構建一個邏輯上的大二層網絡,以保證在遷移時可以保持虛擬機的IP地址和MAC地址不發生變化。
(2)針對虛擬機規模受到網絡規格限制的問題,首先,VXLAN將虛擬機發出的數據包使用UDP協議進行封裝,然后再使用物理網絡的IP地址和MAC地址分別進行封裝,外部網絡只能看到封裝后的外層物理網絡的參數。因此,二層網絡對于MAC地址規格的要求得到了非常大的降低。
(3)針對網絡隔離能力受限的問題,VXLAN引入了一種類似于VLAN ID的用戶標識,稱為VXLAN網絡標識VNI(VXLAN Network ID),其長度由VLAN ID的12比特擴展到了24比特,可以支持的VXLAN段數量多達16 M,對租戶的標識能力得到極大的擴展[2]。
2? ? ?VXLAN的基本原理
VXLAN通過“MAC in UDP”的封裝在邏輯上實現了對二層網絡的延伸,是一種典型的對大二層虛擬網絡進行擴展的隧道封裝技術。在大二層的網絡中,引入了軟件定義網(Software Defined Network,SDN)控制器來對虛擬網絡進行控制以及部署。SDN控制器通過使用OpenFlow協議將信息下發給SDN的轉發器,來實現對網絡的統一維護和管理[3],VXLAN結構具體如圖1所示。
圖1中涉及的概念具體如下。
(1)控制器:位于SDN的控制面,負責對數據報文的轉發路徑進行計算和管理。
(2)轉發器:SDN的轉發面設備,接收來自控制器的指令并對數據轉發任務進行處理。
(3)OpenFlow協議:SDN框架中的具體實現協議,定義了SDN中控制器與轉發器之間的通信。控制器通過OpenFlow協議把控制指令發送給轉發器。
(4)OpenFlow流表:是轉發器對報文轉發的依據。轉發器具體根據流表中的記錄匹配并對數據報文執行記錄給出的相應動作。
(5)網絡虛擬邊緣節點(Network Virtualization Edge,NVE):具體用來實現網絡虛擬化功能的網絡實體。
(6)虛擬接入點(Virtual Access Point,VAP):用于數據報文的接入。為二層的邏輯子接口配置不同的流封裝,就可以實現不同的數據報文到不同二層子接口的接入。
(7)VXLAN隧道端點(VXLAN Tunnel Endpoints,VTEP):封裝在網絡虛擬邊緣節點里,用來對VXLAN的報文進行封裝以及解封裝。VTEP分配有相應物理網絡的IP地址。在VXLAN的報文中,本節點的VTEP地址作為報文的源IP地址,對端節點的VTEP地址作為報文的目的IP地址,一對VTEP地址對應一個VXLAN的Tunnel。
(8)VXLAN網絡標識(VXLAN Network Identifier,VNI):作用與VLAN ID類似,用來對不同的VXLAN段進行區分,一個VNI表示一個租戶[4]。
3? ? VXLAN的數據轉發流程
VXLAN中數據報文的轉發流程如圖2所示。
(1)Switch_1接收來自終端A的數據報文,然后根據所接收報文的接入端口以及其所屬VLAN信息獲取相應的二層廣播域信息。另外,還需要判斷報文的目的MAC地址是否是已知的單播MAC地址。如果是,再判斷是否為本機的MAC地址:是本機的MAC地址,上送主機進行處理;不是本機的MAC地址,則在對應的二層廣播域內對報文進行廣播,并進入第(2)步。
(2)Switch_1上的VTEP根據查找到的出接口和VXLAN封裝信息對報文進行VXLAN的封裝以及轉發。
(3)Switch_2上的VTEP收到來自于Switch_1的VXLAN報文后,根據報文中的UDP目的端口號、源IP地址、目的IP地址以及VNI的值來判斷VXLAN報文是否合法有效。然后依據VNI獲取對應的二層廣播域,解封裝VXLAN報文,獲取內層的二層數據報文,判斷報文的目的MAC地址是否是已知單播報文的MAC地址。如果是,在對應的二層廣播域內查找出接口以及VLAN封裝信息,并進入第(4)步。如果不是,則需要再判斷是否是本機的MAC地址:是本機的MAC地址,上送主機進行處理;不是本機的MAC地址,則進入廣播和未知—單播和多播(Broadcast&Unknown- unicast&Multicast,BUM)報文的轉發流程。
(4)Switch_2根據查找到的出接口和封裝信息,為報文添加相應的VLAN標識,并將報文轉發給最終的目的主機,即終端B[5]。
4? ? 結語
VXLAN技術通過在原始數據報文的外部增加VXLAN封裝的方式,在三層IP網絡中建立數據鏈路層的邏輯隧道,實現網絡邏輯上的扁平化,使數據鏈路層的數據報文可以穿越三層IP網絡,實現虛擬機的動態遷移,有效提高云計算背景下數據中心硬件資源利用率以及網絡管理的效率。
[參考文獻]
[1]華為公司.HCNP-R&S-IENP教材[EB/OL].(2019-04-25)[2019-05-10].http://support.huawei.com/learning/Certificate!showCertificate?lang=zh&pbiPath=term1000025451&id=Node1000004373.
[2]劉廣紅,孟祥春.基于SDN和VXLAN的云網一體化專線方案探討[J].郵電設計技術,2018(8):46-50.
[3]張屆新,吳志明.基于VXLAN組網的云數據中心互聯方案[J].電信科學,2016(12):122-128.
[4]鐘耿輝,唐加山.基于VXLAN的EVPN技術研究與實現[J].計算機技術與發展,2017(5):46-50.
[5]王永建,張健,張富根,等.基于VXLAN的云數據中心網絡研究[J].通信技術,2017(1):78-83.
Abstract:In the background of cloud computing, server virtualization puts forward very high requirements for data migration ability of traditional networks. As a very typical network virtualization technology at present, VXLAN technology allows data link layer data to pass through the carrying network of the network layer by establishing a logical tunnel based on the data link layer on the three-layer IP network. Thus, the dynamic migration of virtual machine across the three-layer network is realized, which effectively improves the data transmission efficiency and the utilization of hardware resources.
Key words:cloud computing; virtual machine; SDN; VXLAN; message