VXLAN網(wǎng)關(guān)
成都創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元微山做網(wǎng)站,已為上家服務(wù),為微山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
首先,補(bǔ)充一下現(xiàn)在流行的OverLay技術(shù):
//感覺(jué)大同小異,基本新技術(shù)的產(chǎn)生最多的也是從舊協(xié)議中添加擴(kuò)展來(lái)支持新功能。
言歸正傳,VXLAN的網(wǎng)關(guān):
為什么需要VXLAN網(wǎng)關(guān)?
因?yàn)閂XLAN的VTEP之間發(fā)現(xiàn)技術(shù)導(dǎo)致的,畢竟組播是不能適用于如今這么大規(guī)模的IDC設(shè)備的。
另外一部分原因是VXLAN的通信需求,即——同VNI VM之間的通信;不同VNI VM之間的通信;VM和外部服務(wù)器的通信
無(wú)論如何,VXLAN兩種數(shù)據(jù)包是不變的:
1. BUM(broadcast&unknown-unicast&multicast)包,就是新連接,需要尋找對(duì)應(yīng)的VTEP
2. 在已知VTEP和對(duì)端的MAC地址的時(shí)候,發(fā)送單播包
VXLAN網(wǎng)關(guān)的幾種分類:
1. 二層VXLAN網(wǎng)關(guān)
就是普通的同VNI內(nèi)的VM相互通信(同一個(gè)組播組互相查找)
2. 三層VXLAN網(wǎng)關(guān)
a.不同VNI之間的互訪(同時(shí)有兩個(gè)VNI的組播組,作為中間人)
b.VM和外網(wǎng)server之間的互訪(需要添加三層路由)
VXLAN網(wǎng)關(guān)的組網(wǎng)(集中式和分布式):
集中式VXLAN網(wǎng)關(guān):
以地址為10.1.1.11的虛擬機(jī)為例,虛擬機(jī)與外界網(wǎng)絡(luò)進(jìn)行三層通信的過(guò)程為:
(1)虛擬機(jī)(10.1.1.11)跨網(wǎng)段進(jìn)行三層通信時(shí),先廣播發(fā)送ARP請(qǐng)求消息,解析VXLAN IP網(wǎng)關(guān)(10.1.1.1)的MAC地址。//不管怎么樣VM的包第一個(gè)給接入VTEP
(2)VTEP 1收到ARP請(qǐng)求消息后,添加VXLAN封裝并發(fā)送給所有的遠(yuǎn)端VTEP。//其實(shí),不在已經(jīng)學(xué)習(xí)到的流表中的請(qǐng)求,都需要提交VXLAN網(wǎng)關(guān)
(3)VTEP 3解封裝VXLAN報(bào)文后,發(fā)現(xiàn)ARP請(qǐng)求的目的IP為VXLAN對(duì)應(yīng)的本地網(wǎng)關(guān)IP地址,即與VXLAN關(guān)聯(lián)的VSI虛接口的IP地址,則學(xué)習(xí)10.1.1.11的ARP信息,并向虛擬機(jī)回應(yīng)ARP應(yīng)答消息。//這個(gè)時(shí)候它沒(méi)有說(shuō)明白,用的是哪個(gè)MAC回給VTEP1和VM
(4)VTEP 1收到ARP應(yīng)答消息后,將該消息轉(zhuǎn)發(fā)給虛擬機(jī)。
(5)虛擬機(jī)獲取到網(wǎng)關(guān)的MAC地址后,為三層報(bào)文添加網(wǎng)關(guān)的MAC地址,通過(guò)VXLAN網(wǎng)絡(luò)將二層數(shù)據(jù)幀發(fā)送給VTEP 3。//VTEP在第三步返回的應(yīng)該是自己的MAC(????懷疑??求證20180430,已經(jīng)確認(rèn)。)
(6)VTEP 3解封裝VXLAN報(bào)文,并去掉鏈路層頭后,對(duì)內(nèi)層封裝的IP報(bào)文進(jìn)行三層轉(zhuǎn)發(fā),將其發(fā)送給最終的目的節(jié)點(diǎn)。
(7)目的節(jié)點(diǎn)回復(fù)的報(bào)文到達(dá)網(wǎng)關(guān)后,網(wǎng)關(guān)根據(jù)已經(jīng)學(xué)習(xí)到的ARP表項(xiàng),為報(bào)文封裝鏈路層頭,并通過(guò)VXLAN網(wǎng)絡(luò)將其發(fā)送給虛擬機(jī)。
屬于不同VXLAN網(wǎng)絡(luò)的虛擬機(jī)之間的通信過(guò)程與上述過(guò)程類似,不同之處在于一個(gè)VXLAN網(wǎng)絡(luò)的集中式網(wǎng)關(guān)需要將報(bào)文轉(zhuǎn)發(fā)給另一個(gè)VXLAN網(wǎng)絡(luò)的集中式網(wǎng)關(guān),再由該集中式網(wǎng)關(guān)將報(bào)文轉(zhuǎn)發(fā)給本VXLAN內(nèi)對(duì)應(yīng)的虛擬機(jī)。
分布式VXLAN網(wǎng)關(guān):
為什么要分布式VXLAN網(wǎng)關(guān):
采用集中式VXLANIP網(wǎng)關(guān)方案時(shí),不同VXLAN之間的流量以及VXLAN訪問(wèn)外界網(wǎng)絡(luò)的流量全部由集中式VXLAN IP網(wǎng)關(guān)處理,網(wǎng)關(guān)壓力較大,并加劇了網(wǎng)絡(luò)帶寬資源的消耗。而在分布式VXLAN IP網(wǎng)關(guān)方案中,每臺(tái)VTEP設(shè)備都可以作為VXLAN IP網(wǎng)關(guān),對(duì)本地站點(diǎn)的流量進(jìn)行三層轉(zhuǎn)發(fā),很好地緩解了網(wǎng)關(guān)的壓力。
在分布式VXLAN IP網(wǎng)關(guān)組網(wǎng)中,所有的分布式VXLAN IP網(wǎng)關(guān)(GW)上都需要?jiǎng)?chuàng)建VSI虛接口,并為不同GW上的相同VSI虛接口配置相同的IP地址,作為VXLAN內(nèi)虛擬機(jī)的網(wǎng)關(guān)地址。在分布式VXLAN IP網(wǎng)關(guān)上還需要開(kāi)啟本地代理ARP功能。邊界網(wǎng)關(guān)(Border)上也需要?jiǎng)?chuàng)建VSI虛接口,并配置IP地址(和GW上不同)。
采用分布式VXLANIP網(wǎng)關(guān)組網(wǎng)方案時(shí),三層流量通過(guò)查找ARP表項(xiàng)進(jìn)行三層轉(zhuǎn)發(fā)。ARP表項(xiàng)可以根據(jù)ARP協(xié)議動(dòng)態(tài)學(xué)習(xí)。
1.相同VXLAN內(nèi)不同站點(diǎn)的虛擬機(jī)通信過(guò)程
以VM 1訪問(wèn)VM 4為例,相同VXLAN內(nèi)不同站點(diǎn)的虛擬機(jī)的通信過(guò)程為:
(1)VM 1廣播發(fā)送ARP請(qǐng)求消息,希望獲取VM 4的MAC地址。這個(gè)包被GW1收到。
(2)GW 1收到ARP請(qǐng)求消息后,學(xué)習(xí)VM 1的ARP信息,并代理應(yīng)答該ARP請(qǐng)求,即:向VM 1發(fā)送ARP應(yīng)答消息,應(yīng)答的MAC地址為VSI虛接口10的MAC地址。
(3)VM 1學(xué)習(xí)到VM 4的MAC地址為GW 1上VSI虛接口10的MAC地址。
(4)GW 1將接收到的ARP請(qǐng)求消息中的源MAC地址修改為VSI虛接口10的MAC地址,對(duì)該消息進(jìn)行VXLAN封裝后,將其發(fā)送給VXLAN內(nèi)的所有遠(yuǎn)端VTEP。//1.組播 2.不改ARP內(nèi)容,還是詢問(wèn)VM4
(5)GW 2對(duì)VXLAN報(bào)文進(jìn)行解封裝后,學(xué)習(xí)VM 1的ARP信息(IP為10.1.1.11、MAC為GW 1上VSI虛接口10的MAC、出接口為接收該VXLAN報(bào)文的Tunnel接口),并將ARP請(qǐng)求消息中的源MAC修改為本地VSI虛接口10的MAC地址,在VXLAN 10的本地站點(diǎn)內(nèi)進(jìn)行廣播。//同樣是代理ARP
(6)VM 4收到ARP請(qǐng)求后,學(xué)習(xí)VM 1的ARP信息(IP為10.1.1.11、MAC為GW 2上VSI虛接口10的MAC),并發(fā)送ARP應(yīng)答消息給本地網(wǎng)關(guān)GW 2。
(7)GW 2從VM 4收到ARP應(yīng)答消息后,學(xué)習(xí)VM 4的ARP信息,將ARP應(yīng)答消息中的源MAC修改為本地VSI虛接口10的MAC地址,并根據(jù)已經(jīng)學(xué)習(xí)到的ARP表項(xiàng),為ARP應(yīng)答消息添加VXLAN封裝后發(fā)送給GW 1。
(8)GW 1對(duì)VXLAN報(bào)文進(jìn)行解封裝后,根據(jù)收到的ARP應(yīng)答消息學(xué)習(xí)VM 4的ARP信息(IP為10.1.1.12、MAC為GW 2上VSI虛接口10的MAC、出接口為接收該VXLAN報(bào)文的Tunnel接口)。
(9)通過(guò)上述步驟完成ARP信息的學(xué)習(xí)后,VM 1發(fā)送給VM 4的報(bào)文,根據(jù)已經(jīng)學(xué)習(xí)到的ARP信息進(jìn)行轉(zhuǎn)發(fā):首先發(fā)送給GW 1;GW 1對(duì)其進(jìn)行VXLAN封裝后,將其發(fā)送給GW 2;GW 2解封裝后,將其發(fā)送給VM 4。
//可以看到的是除了代理ARP代答,并沒(méi)有用到VSI口的IP,僅僅是用的MAC。所以相同的VSI IP也是可行的。
2.不同VXLAN間不同站點(diǎn)的虛擬機(jī)通信過(guò)程
以VM 1訪問(wèn)VM 5為例,不同VXLAN的虛擬機(jī)的通信過(guò)程為:
(1)VM 1廣播發(fā)送ARP請(qǐng)求消息,獲取網(wǎng)關(guān)10.1.1.1的MAC地址。
(2)GW 1收到ARP請(qǐng)求消息后,學(xué)習(xí)VM 1的ARP信息,并向VM 1發(fā)送ARP應(yīng)答消息,應(yīng)答的MAC地址為VSI虛接口10的MAC地址。//ARP代理
(3)VM 1將訪問(wèn)VM 5的報(bào)文發(fā)送給GW 1。
(4)GW 1在所有VXLAN內(nèi)向本地站點(diǎn)和遠(yuǎn)端站點(diǎn)廣播發(fā)送ARP請(qǐng)求,獲取VM 5的MAC地址。ARP請(qǐng)求消息中的源IP地址為20.1.1.1、源MAC地址為本地VSI虛接口20的MAC地址。//GW1直接拿VNI20的IP做ARP,說(shuō)明在這里它已經(jīng)知道VM5屬于VNI20
(5)GW 2從VXLAN隧道上接收到VXLAN報(bào)文,對(duì)其進(jìn)行解封裝后,學(xué)習(xí)GW 1的ARP信息(IP為20.1.1.1、MAC為GW 1上VSI虛接口20的MAC、出接口為接收該VXLAN報(bào)文的Tunnel接口),并將ARP請(qǐng)求消息中的源MAC修改為本地VSI虛接口20的MAC地址,在VXLAN 20的本地站點(diǎn)內(nèi)廣播該ARP請(qǐng)求消息。//注意:GW2改了MAC,但是沒(méi)有改IP!??!因?yàn)镮P是一樣的!
(6)VM 5收到ARP請(qǐng)求后,學(xué)習(xí)GW 2的ARP信息(IP為20.1.1.1、MAC為GW 2上VSI虛接口20的MAC),并發(fā)送ARP應(yīng)答消息給本地網(wǎng)關(guān)GW 2。
(7)GW 2從VM 5收到ARP應(yīng)答消息后,學(xué)習(xí)VM 5的ARP信息,將ARP應(yīng)答消息中的源MAC修改為本地VSI虛接口20的MAC地址,并根據(jù)已經(jīng)學(xué)習(xí)到的ARP表項(xiàng),為ARP應(yīng)答消息添加VXLAN封裝后發(fā)送給GW 1。
(8)GW 1對(duì)VXLAN報(bào)文進(jìn)行解封裝后,根據(jù)收到的ARP應(yīng)答消息學(xué)習(xí)VM 5的ARP信息(IP為20.1.1.12、MAC為GW 2上VSI虛接口20的MAC、出接口為接收該VXLAN報(bào)文的Tunnel接口)。
(9)通過(guò)上述步驟完成ARP信息的學(xué)習(xí)后,VM 1發(fā)送給VM 5的報(bào)文,根據(jù)已經(jīng)學(xué)習(xí)到的ARP信息進(jìn)行轉(zhuǎn)發(fā):首先發(fā)送給GW 1;GW 1對(duì)其進(jìn)行VXLAN封裝后,將其發(fā)送給GW 2;GW 2解封裝后,將其發(fā)送給VM 5。
疑問(wèn):未解決//20180503
//在GW1和GW2的交互過(guò)程中,他們都用到了VNI20的IP20.1.1.1,要注意的是他們發(fā)的是ARP包,雖然目的IP不一樣,但是源IP是一樣的,GW2收到了來(lái)自自己IP的,不同MAC的ARP請(qǐng)求包,還能正常處理,這是必須要這么做還是另有原因?
虛擬機(jī)與外部網(wǎng)絡(luò)的三層通信過(guò)程
虛擬機(jī)要想與外部網(wǎng)絡(luò)進(jìn)行三層通信,需要在接入虛擬機(jī)的本地分布式VXLAN IP網(wǎng)關(guān)上指定流量的下一跳為Border,可以通過(guò)如下方式來(lái)實(shí)現(xiàn):
·在本地分布式VXLAN IP網(wǎng)關(guān)上配置靜態(tài)路由,指定路由下一跳為Border上同一個(gè)VXLAN對(duì)應(yīng)VSI虛接口的IP地址。
·在本地分布式VXLAN IP網(wǎng)關(guān)上配置策略路由,通過(guò)apply default-next-hop命令設(shè)置報(bào)文的缺省下一跳為Border上同一個(gè)VXLAN對(duì)應(yīng)VSI虛接口的IP地址。
以VM 1訪問(wèn)外部網(wǎng)絡(luò)內(nèi)的主機(jī)50.1.1.1為例,虛擬機(jī)訪問(wèn)外部網(wǎng)絡(luò)的三層通信過(guò)程為:
(1)VM 1廣播發(fā)送ARP請(qǐng)求消息,獲取網(wǎng)關(guān)10.1.1.1的MAC地址。
(2)GW 1收到ARP請(qǐng)求消息后,學(xué)習(xí)VM 1的ARP信息,并向VM 1發(fā)送ARP應(yīng)答消息,應(yīng)答的MAC地址為VSI虛接口10的MAC地址。//ARP代理
(3)VM 1將訪問(wèn)外部網(wǎng)絡(luò)的報(bào)文發(fā)送給GW 1。
(4)GW 1接收到報(bào)文后,根據(jù)策略路由判斷報(bào)文的下一跳地址為10.1.1.2。GW 1在VXLAN 10內(nèi)向本地站點(diǎn)和遠(yuǎn)端站點(diǎn)廣播發(fā)送ARP請(qǐng)求消息,獲取10.1.1.2對(duì)應(yīng)的MAC地址。//也就是說(shuō),GW1已經(jīng)知道了這個(gè)目的地址是在外網(wǎng)
(5)Border對(duì)VXLAN報(bào)文進(jìn)行解封裝,學(xué)習(xí)GW 1的ARP信息,并通過(guò)VXLAN隧道回復(fù)ARP應(yīng)答消息。//答復(fù)的是10.1.1.2的MAC地址
(6)GW 1對(duì)VXLAN報(bào)文進(jìn)行解封裝,并獲取到10.1.1.2的ARP信息。
(7)GW 1根據(jù)獲取到的信息為VM 1發(fā)送的報(bào)文封裝鏈路層地址(10.1.1.2對(duì)應(yīng)的MAC地址),并通過(guò)VXLAN隧道將報(bào)文發(fā)送給Border。
(8)Border對(duì)接收到的報(bào)文進(jìn)行解封裝后,對(duì)報(bào)文進(jìn)行三層轉(zhuǎn)發(fā)。
名稱欄目:VXLAN網(wǎng)關(guān)
網(wǎng)頁(yè)路徑:http://m.rwnh.cn/article46/gspceg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)公司、服務(wù)器托管、自適應(yīng)網(wǎng)站、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)