一、VxLAN技術(shù)發(fā)展的背景
數(shù)據(jù)中心網(wǎng)絡(luò)中存在的幾個(gè)問(wèn)題
(1)VLAN數(shù)量不足
4094個(gè)VLAN在云計(jì)算數(shù)據(jù)中心有可能是不夠的
(2)虛擬化部署帶來(lái)的大二層需求
虛擬機(jī)的動(dòng)態(tài)遷移一直限定在二層網(wǎng)絡(luò)中,無(wú)法在不同網(wǎng)段之間遷移大二層的需求帶來(lái)了的問(wèn)題防環(huán)路問(wèn)題,原有的STP顯然不能滿(mǎn)足數(shù)據(jù)中心大二層的需求,從而出現(xiàn)了TRILL、SPB等新數(shù)據(jù)中心技術(shù),落地情況一般
(3)多租戶(hù)IP地址沖突問(wèn)題
云數(shù)據(jù)中心通過(guò)主機(jī)虛擬化需要為不同的用戶(hù)提供服務(wù),而用戶(hù)可能使用相同的IP地址,為了隔離用戶(hù)流量,需要添加額外網(wǎng)關(guān)、地址翻譯、vpn等技術(shù),增加了組網(wǎng)的復(fù)雜性
(4)基于IP子網(wǎng)區(qū)域劃分極大限制了虛擬機(jī)動(dòng)態(tài)遷移功能
在傳統(tǒng)基于IP子網(wǎng)區(qū)域劃分,虛擬機(jī)如果跨三層遷移后,網(wǎng)關(guān)需要發(fā)生變化必然會(huì)導(dǎo)致較長(zhǎng)時(shí)間的業(yè)務(wù)中斷,這個(gè)在傳統(tǒng)的組網(wǎng)中是無(wú)法調(diào)和的矛盾
二、VxLAN的幾個(gè)概念
1.overlay網(wǎng)絡(luò)疊加技術(shù)
overlay網(wǎng)絡(luò)
overlay網(wǎng)絡(luò)是建立在已有網(wǎng)絡(luò)上的虛擬網(wǎng)絡(luò),邏輯節(jié)點(diǎn)和邏輯鏈路構(gòu)成了overlay網(wǎng)絡(luò),overlay網(wǎng)絡(luò)是為了解決傳統(tǒng)網(wǎng)絡(luò)無(wú)法提供的功能和服務(wù)。
Overlay分為主機(jī)overlay、網(wǎng)絡(luò)overlay、混合overlay
2. VxLAN技術(shù)
(1)VxLAN
虛擬可擴(kuò)展局域網(wǎng)(virtual extensible lan),是overlay技術(shù)的一種,通過(guò)隧道機(jī)制在現(xiàn)有網(wǎng)絡(luò)上構(gòu)建一個(gè)疊加的網(wǎng)絡(luò)從而繞過(guò)現(xiàn)有VLAN標(biāo)簽的限制
(2)VNI
VxLAN Network Identifier 虛擬擴(kuò)展本地網(wǎng)絡(luò)標(biāo)示符VNI取代VLAN用來(lái)表示不同的VxLAN網(wǎng)絡(luò)VNI是一個(gè)24位進(jìn)制表示,可以擴(kuò)展到2的24次方個(gè)網(wǎng)段
(3)VTEP
VxLAN Tunnel End Point 虛擬擴(kuò)展本地網(wǎng)絡(luò)隧道終結(jié)節(jié)點(diǎn)上行方向?qū)⑻摂M機(jī)(服務(wù)器)產(chǎn)生的數(shù)據(jù)封裝到UDP包頭內(nèi)發(fā)送出去,下行方向?qū)⑹盏降腣xLAN報(bào)文解封裝后發(fā)給虛擬機(jī)(服務(wù)器)VTEP之間建立了兩點(diǎn)之間的隧道(VTEP可以為軟件、硬件服務(wù)器或者網(wǎng)路設(shè)備、隧道是無(wú)狀態(tài)的)
3. VxLAN的報(bào)文封裝
(1)VxLAN標(biāo)簽
標(biāo)志位(8bits),一個(gè)有效的VxLAN網(wǎng)絡(luò)ID(VNI),第5個(gè)bit的I標(biāo)志位必須設(shè)置為1;余下的7個(gè)bit的標(biāo)志位是保留的,必須設(shè)置為0。VxLAN網(wǎng)絡(luò)ID(VNI),長(zhǎng)24bit,用于標(biāo)識(shí)一個(gè)單獨(dú)的VxLAN網(wǎng)絡(luò)
(2)UDP包頭
標(biāo)準(zhǔn)UDP包頭,目的端口號(hào)為IANA分配的4798,源端口是數(shù)據(jù)幀本身的二層楨頭的哈希結(jié)構(gòu),可以用作為流量負(fù)載分擔(dān)的依據(jù)
(3)外層三層包頭
外層ip包頭的ip地址為隧道兩端的VTEP設(shè)備地址,如果Hypervisor承擔(dān)了VTEP工作則了服務(wù)器網(wǎng)卡地址,如果VTEP為接入交換機(jī),則IP地址為出端口上的 IP地址或者三層接口地址、loopback地址
(4)外層二層包頭
外層二層包頭為報(bào)文在普通網(wǎng)絡(luò)中做二、三層轉(zhuǎn)發(fā)的MAC地址(目的mac為目的VTEP設(shè)備的 硬件mac或者三層網(wǎng)關(guān)的MAC)
4.報(bào)文舉例
5.VxLAN GW和VxLAN IP GW
VxLAN IP GW
網(wǎng)絡(luò)設(shè)備支持VXLAN報(bào)文的封裝與解封裝,并根據(jù)內(nèi)層報(bào)文的IP頭部進(jìn)行三層轉(zhuǎn)發(fā)
VxLAN GW
支持VXLAN報(bào)文的封裝與解封裝,并根據(jù)內(nèi)層報(bào)文的MAC頭部進(jìn)行二層轉(zhuǎn)發(fā),實(shí)現(xiàn)VxLAN與VLAN的互通
三、VxLAN技術(shù)原理
1.VxLAN的控制平面
VxLAN的控制平面實(shí)現(xiàn)方式分為3類(lèi)
(1)自學(xué)習(xí)模式
利用泛洪/廣播機(jī)制來(lái)實(shí)現(xiàn)VxLAN網(wǎng)絡(luò)的建立
(2)基于SDN Controller的集中式模式
SDN Controller作為控制平面,通過(guò)下發(fā)流表指導(dǎo)VTEP的轉(zhuǎn)發(fā)
(3)路由協(xié)議擴(kuò)展模式
通過(guò)擴(kuò)展isis(類(lèi)EVI)、bgp協(xié)議來(lái)實(shí)現(xiàn)VxLAN網(wǎng)絡(luò)的建立
2.VxLAN的控制平面—自學(xué)習(xí)模式
指定VxLAN ID映射到一個(gè)IP組播組,此VxLAN的VTEP都加入該組播組,通過(guò)flooding和learning機(jī)制完成學(xué)習(xí)
如圖VM server屬于同一個(gè)VxLAN 10 加入特定組播組239.1.1.1
3.VxLAN的控制平面—基于controller方式
基于sdn controller方式的控制平面和地址學(xué)習(xí)
SDN controller與所有VxLAN ED設(shè)備建立連接(通過(guò)openflow協(xié)議),通過(guò)SDN controller給各VxLAN ED部署下發(fā)流表來(lái)進(jìn)行VxLAN的轉(zhuǎn)發(fā)
4.VxLAN的控制平面—基于isis協(xié)議
基于isis擴(kuò)展協(xié)議的控制平面和mac地址學(xué)習(xí)
基于EVI鄰居發(fā)現(xiàn)協(xié)議,通過(guò)isis擴(kuò)展協(xié)議來(lái)實(shí)現(xiàn)控制平面和mac地址學(xué)習(xí)VxLAN網(wǎng)絡(luò)啟用ENDP協(xié)議,核心設(shè)備作為ENDS設(shè)備、接入設(shè)備作為ENDC設(shè)備,ISIS擴(kuò)展協(xié)議來(lái)完成mac的發(fā)布和回收
Core設(shè)備作為ENDS設(shè)備、接入設(shè)備(VTEP)作為ENDC設(shè)備,ENDC設(shè)備向ENDS設(shè)備發(fā)起注冊(cè)(包括VxLAN ID、VTEP ID、network ID),ENDS發(fā)送應(yīng)答包括所有ENDC設(shè)備信息,建立VxLAN控制平面
5. VxLAN的數(shù)據(jù)平面
隧道機(jī)制
源和目的VTEP之間建立隧道,負(fù)責(zé)報(bào)文的VxLAN封裝和解封裝VTEP為虛擬機(jī)數(shù)據(jù)包分裝了層層包頭,這些新包頭只會(huì)在報(bào)文到目的VTEP時(shí)才會(huì)解封裝,中間路徑網(wǎng)絡(luò)設(shè)備只會(huì)根據(jù)外層包頭的目的地址進(jìn)行轉(zhuǎn)發(fā),對(duì)于轉(zhuǎn)發(fā)路徑上的網(wǎng)絡(luò)設(shè)備,一個(gè)VxLAN報(bào)文就是一個(gè)普通IP報(bào)文
在VTEP設(shè)備上進(jìn)行VxLAN的封裝解封裝,根據(jù)MAC地址表(對(duì)應(yīng)有對(duì)端的VTEP IP地址)轉(zhuǎn)發(fā),以虛擬機(jī)的二層轉(zhuǎn)發(fā)/同一個(gè)VxLAN為例
6. VXLAN如何解決數(shù)據(jù)中心網(wǎng)絡(luò)中的問(wèn)題
(1)VLAN數(shù)量不足
VNI取代VLAN用來(lái)表示不同的VxLAN網(wǎng)絡(luò),VNI是一個(gè)24位進(jìn)制表示,可以擴(kuò)展到1600萬(wàn)+個(gè)網(wǎng)段
(2)虛擬化部署帶來(lái)的大二層需求
虛擬機(jī)可以跨三層網(wǎng)絡(luò)遷移,不在需要大二層
(3)多租戶(hù)IP地址沖突問(wèn)題
在VxLAN網(wǎng)絡(luò)中根據(jù)VM mac地址表轉(zhuǎn)發(fā)(對(duì)應(yīng)VTEP地址的),并非根據(jù)VM IP轉(zhuǎn)發(fā)只需要控制不同VxLAN的互通即可解決
(4)基于IP子網(wǎng)區(qū)域劃分極大限制了虛擬機(jī)動(dòng)態(tài)遷移功能
VxLAN實(shí)現(xiàn)了計(jì)算資源與物理網(wǎng)絡(luò)的無(wú)關(guān)性和二層網(wǎng)絡(luò)在三層網(wǎng)絡(luò)的擴(kuò)展
VM遷移后Ingress方向上尋址問(wèn)題
通過(guò)控制平面(擴(kuò)展協(xié)議、SDN controller或者GARP來(lái)更新MAC表(對(duì)應(yīng)VTEP地址的)
VM遷移后egress方向上的網(wǎng)關(guān)不變問(wèn)題
VM的IP GW的VTEP IP和GW VMAC 相同,VM在遷移前后無(wú)感知網(wǎng)絡(luò)的變化,對(duì)應(yīng)的網(wǎng)關(guān)MAC沒(méi)發(fā)生變化。