VxLAN技術發展的背景:
VxLAN的發展得益于在IDC網絡中存在如下幾個原因:
4094個VLAN在雲計算資料中心有可能不夠;
虛拟化部署帶來的大二層需求;
虛拟機的動态遷移一直限定在二層網絡中,無法在不同網段之間遷移
大二層網絡中的防環路問題,原有的STP顯然不能滿足資料中心大二層的需求,從
而出現了TRILL、SPB等新資料中心技術,但是目前落地情況一般。
多租戶IP位址沖突問題,雲資料中心通過主機虛拟化需要為不同的使用者提供服務,而
使用者可能使用相同的IP位址,為了隔離使用者流量,需要添加額外網關、位址翻譯、vpn等技術,增加了組網的複雜性。
基于IP子網區域劃分極大限制了虛拟機動态遷移功能,在傳統基于IP子網區域劃分,虛拟機如果跨三層遷移後,網關需要發生變化必然會導緻較長時間的業務中斷,這個在傳
統的組網架構中是無法調和的沖突。
如何解決以上問題?
VLAN數量不足問題:
VNI取代VLAN用來表示不同的VxLAN網絡,VNI是一個24位進制表示,可以擴充
到1600萬+個網段
虛拟化部署帶來的大二層需求:
虛拟機可以跨三層網絡遷移,不在需要大二層
多租戶IP位址沖突問題:
在VxLAN網絡中根據VM mac位址表轉發(對應VTEP位址的),并非根據VM IP轉發隻需要控制不同VxLAN的互通即可解決
基于IP子網區域劃分極大限制了虛拟機動态遷移功能:
VxLAN實作了計算資源與實體網絡的無關性和二層網絡在三層網絡的擴充
VM遷移後Ingress方向上尋址問題:
通過控制平面(擴充協定、SDN controller或者GARP來更新MAC表(對應VTEP
位址的)
VM遷移後egress方向上的網關不變問題:
VM的IP GW的VTEP IP和GW VMAC 相同,VM在遷移前後無感覺網絡的變化,
對應的網關MAC沒發生變化
VxLAN網絡中的幾個概念:
什麼是VxLAN?
虛拟可擴充區域網路(virtual extensible lan),是overlay技
術的一種,通過隧道機制在現有網絡上建構一個疊加的網絡從
而繞過現有VLAN标簽的限制。
什麼是VNI?
VNI(VxLAN Network Identifier)虛拟擴充本地網絡标示符,VNI取代VLAN用來表示不同的VxLAN網絡,是一個24位進制表示,可以擴充到2的24次方個網段。
什麼是VTEP?
VTEP(VxLAN Tunnel End Point)虛拟擴充本地網絡隧道終結節點,上行方向将虛拟機(伺服器)産生的資料封裝到UDP標頭内發送出去,下行方向将收到的VxLAN封包解封裝後發給虛拟機(伺服器),VTEP之間建立了兩點之間的隧道(VTEP可以為軟體、硬體伺服器或者網路裝置、隧道是無狀态的)。
什麼是overlay網絡疊加技術?
overlay網絡是建立在已有網絡上的虛拟網絡,邏輯節點和邏輯鍊路構成了overlay網絡,overlay網絡是為了解決傳統網絡無法提供的功能和服務。Overlay分為主機overlay、網絡overlay、混合overlay。
什麼是VxLAN GW和VxLAN IP GW?
VxLAN IP GW:
網絡裝置支援VXLAN封包的封裝與解封裝,并根據内層封包的IP頭部進行三層轉發 。
VxLAN GW:
支援VXLAN封包的封裝與解封裝,并根據内層封包的MAC頭部進行二層轉發,實作VxLAN與VLAN的互通。
視訊講解什麼是VxLAN:
視訊加載中...
VxLAN封包封裝架構:
VxLAN标簽:
标志位(8bits),一個有效的VxLAN網絡ID(VNI),第5個bit的I标
志位必須設定為1;餘下的7個bit的标志位是保留的,必須設定為0,VxLAN網絡ID(VNI),長24bit,用于辨別一個單獨的VxLAN網絡。
UDP標頭:
标準UDP標頭,目的端口号為IANA配置設定的4798,源端口是資料幀本
身的二層桢頭的哈希結構,可以用作為流量負載分擔的依據。
外層三層標頭:
外層IP標頭的IP位址為隧道兩端的VTEP裝置位址,如果Hypervisor承
擔了VTEP工作則了伺服器網卡位址,如果VTEP為接入交換機,則IP地
址為出端口上的 IP位址或者三層接口位址、loopback位址。
外層二層標頭:
外層二層標頭為封包在普通網絡中做二、三層轉發的MAC位址(目的
MAC為目的VTEP裝置的 硬體MAC或者三層網關的MAC)。
VxLAN控制平面實作方式:
自學習模式:利用泛洪/廣播機制來實作VxLAN網絡的建立;指定VxLAN ID映射到一個IP多點傳播組,此VxLAN的VTEP都加入該多點傳播組,通過flooding和learning機制完成學習。
如圖VM Server屬于同一個VxLAN 10,加入特定多點傳播組239.1.1.1。
自學習方式一
自學習方式二
基于SDN控制器的集中式模式:SDN控制器作為控制平面,通過下發流表指導VTEP的轉發;SDN控制器與所有VxLAN ED(Edge Device,邊緣裝置)裝置建立連接配接(通過openflow協定),通過SDN 控制器給各VxLAN ED部署下發流表來進行VxLAN的轉發。
路由協定擴充模式:通過擴充isis(類EVI)、bgp協定來實作VxLAN網絡的建立;基于EVI鄰居發現協定,通過isis擴充協定來實作控制平面和mac位址學習;VxLAN網絡啟用ENDP(Enhanced Neighbor DiscoveryProtocol,增強的鄰居發現協定)協定,核心裝置作為ENDS(Enhanced Neighbor DiscoveryServer)裝置、接入裝置作為ENDC(Enhanced Neighbor DiscoveryClient)裝置,ISIS擴充協定來完成mac的釋出和回收。
Core裝置作為ENDS裝置、接入裝置(VTEP)作為ENDC裝置,ENDC裝置向ENDS裝置發起注冊(包括VxLAN ID、VTEP ID、network ID),ENDS發送應答包括所有ENDC裝置資訊,建立VxLAN控制平面。
vtep裝置轉發時需要的封包資訊
VxLAN資料平面實作方式:
隧道機制:
源和目的VTEP之間建立隧道,負責封包的VxLAN封裝和解封裝,VTEP為虛拟機資料包分裝了層層標頭,這些新標頭隻會在封包到目的VTEP時才會解封裝,中間路徑網絡裝置隻會根據外層標頭的目的位址進行轉發,對于轉發路徑上的網絡裝置,一個VxLAN封包就是一個普通IP封包。
在VTEP裝置上進行VxLAN的封裝解封裝,根據MAC位址表(對應有對端的VTEP IP位址)轉發,以虛拟機的二層轉發/同一個VxLAN為例。