中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VXLAN網關

發布時間:2020-04-05 15:54:11 來源:網絡 閱讀:1071 作者:lukaschare 欄目:數據安全

VXLAN網關

首先,補充一下現在流行的OverLay技術:

  • VXLANVXLAN是將以太網報文封裝成UDP報文進行隧道傳輸,UDP目的端口為4798(可修改),標準5元組方式有利于在IP網絡轉發過程中進行負載分擔;隔離標識VNI采用24比特來表示;所有的流量均被封裝為payload轉發。
  • NVGRE NVGRE采用的是RFC 2784和RFC 2890所定義的GRE隧道協議。將以太網報文封裝在GRE內進行隧道傳輸。隔離標識采用24比特來表示;與VXLAN的主要區別在對流量的負載分擔上,因為使用了GRE隧道封裝,NVGRE使用了GRE擴展字段flow ID進行流量負載分擔,這就要求物理網絡能夠識別GRE隧道的擴展信息。
  • STT STT是無狀態傳輸協議,通過將以太網報文封裝成TCP報文進行隧道傳輸,隔離標識采用64比特來表示。與VXLAN和NVGRE的主要區別是在隧道封裝格式使用了無狀態TCP,需要對傳統TCP協議進行修改以適應NVGRE的傳輸。

//感覺大同小異,基本新技術的產生最多的也是從舊協議中添加擴展來支持新功能。

言歸正傳,VXLAN的網關:

為什么需要VXLAN網關?

因為VXLAN的VTEP之間發現技術導致的,畢竟組播是不能適用于如今這么大規模的IDC設備的。

另外一部分原因是VXLAN的通信需求,即——同VNI VM之間的通信;不同VNI VM之間的通信;VM和外部服務器的通信

無論如何,VXLAN兩種數據包是不變的:

1. BUM(broadcast&unknown-unicast&multicast)包,就是新連接,需要尋找對應的VTEP

2. 在已知VTEP和對端的MAC地址的時候,發送單播包

VXLAN網關的幾種分類:

VXLAN網關

1. 二層VXLAN網關

就是普通的同VNI內的VM相互通信(同一個組播組互相查找)

2. 三層VXLAN網關

a.不同VNI之間的互訪(同時有兩個VNI的組播組,作為中間人)

b.VM和外網server之間的互訪(需要添加三層路由)

VXLAN網關的組網(集中式和分布式):

集中式VXLAN網關:

VXLAN網關

以地址為10.1.1.11的虛擬機為例,虛擬機與外界網絡進行三層通信的過程為:

(1)虛擬機(10.1.1.11)跨網段進行三層通信時,先廣播發送ARP請求消息,解析VXLAN IP網關(10.1.1.1)的MAC地址。//不管怎么樣VM的包第一個給接入VTEP

(2)VTEP 1收到ARP請求消息后,添加VXLAN封裝并發送給所有的遠端VTEP。//其實,不在已經學習到的流表中的請求,都需要提交VXLAN網關

(3)VTEP 3解封裝VXLAN報文后,發現ARP請求的目的IP為VXLAN對應的本地網關IP地址,即與VXLAN關聯的VSI虛接口的IP地址,則學習10.1.1.11的ARP信息,并向虛擬機回應ARP應答消息。//這個時候它沒有說明白,用的是哪個MAC回給VTEP1和VM

(4)VTEP 1收到ARP應答消息后,將該消息轉發給虛擬機。

(5)虛擬機獲取到網關的MAC地址后,為三層報文添加網關的MAC地址,通過VXLAN網絡將二層數據幀發送給VTEP 3。//VTEP在第三步返回的應該是自己的MAC(????懷疑??求證20180430,已經確認。)

(6)VTEP 3解封裝VXLAN報文,并去掉鏈路層頭后,對內層封裝的IP報文進行三層轉發,將其發送給最終的目的節點。

(7)目的節點回復的報文到達網關后,網關根據已經學習到的ARP表項,為報文封裝鏈路層頭,并通過VXLAN網絡將其發送給虛擬機。

屬于不同VXLAN網絡的虛擬機之間的通信過程與上述過程類似,不同之處在于一個VXLAN網絡的集中式網關需要將報文轉發給另一個VXLAN網絡的集中式網關,再由該集中式網關將報文轉發給本VXLAN內對應的虛擬機。

分布式VXLAN網關:

VXLAN網關

為什么要分布式VXLAN網關:

采用集中式VXLANIP網關方案時,不同VXLAN之間的流量以及VXLAN訪問外界網絡的流量全部由集中式VXLAN IP網關處理,網關壓力較大,并加劇了網絡帶寬資源的消耗。而在分布式VXLAN IP網關方案中,每臺VTEP設備都可以作為VXLAN IP網關,對本地站點的流量進行三層轉發,很好地緩解了網關的壓力。

在分布式VXLAN IP網關組網中,所有的分布式VXLAN IP網關(GW)上都需要創建VSI虛接口,并為不同GW上的相同VSI虛接口配置相同的IP地址,作為VXLAN內虛擬機的網關地址。在分布式VXLAN IP網關上還需要開啟本地代理ARP功能。邊界網關(Border)上也需要創建VSI虛接口,并配置IP地址(和GW上不同)。

采用分布式VXLANIP網關組網方案時,三層流量通過查找ARP表項進行三層轉發。ARP表項可以根據ARP協議動態學習。

VXLAN網關

1.相同VXLAN內不同站點的虛擬機通信過程

以VM 1訪問VM 4為例,相同VXLAN內不同站點的虛擬機的通信過程為:

(1)VM 1廣播發送ARP請求消息,希望獲取VM 4的MAC地址。這個包被GW1收到。

(2)GW 1收到ARP請求消息后,學習VM 1的ARP信息,并代理應答該ARP請求,即:向VM 1發送ARP應答消息,應答的MAC地址為VSI虛接口10的MAC地址。

(3)VM 1學習到VM 4的MAC地址為GW 1上VSI虛接口10的MAC地址。

(4)GW 1將接收到的ARP請求消息中的源MAC地址修改為VSI虛接口10的MAC地址,對該消息進行VXLAN封裝后,將其發送給VXLAN內的所有遠端VTEP。//1.組播 2.不改ARP內容,還是詢問VM4

(5)GW 2對VXLAN報文進行解封裝后,學習VM 1的ARP信息(IP為10.1.1.11、MAC為GW 1上VSI虛接口10的MAC、出接口為接收該VXLAN報文的Tunnel接口),并將ARP請求消息中的源MAC修改為本地VSI虛接口10的MAC地址,在VXLAN 10的本地站點內進行廣播。//同樣是代理ARP

(6)VM 4收到ARP請求后,學習VM 1的ARP信息(IP為10.1.1.11、MAC為GW 2上VSI虛接口10的MAC),并發送ARP應答消息給本地網關GW 2。

(7)GW 2從VM 4收到ARP應答消息后,學習VM 4的ARP信息,將ARP應答消息中的源MAC修改為本地VSI虛接口10的MAC地址,并根據已經學習到的ARP表項,為ARP應答消息添加VXLAN封裝后發送給GW 1。

(8)GW 1對VXLAN報文進行解封裝后,根據收到的ARP應答消息學習VM 4的ARP信息(IP為10.1.1.12、MAC為GW 2上VSI虛接口10的MAC、出接口為接收該VXLAN報文的Tunnel接口)。

(9)通過上述步驟完成ARP信息的學習后,VM 1發送給VM 4的報文,根據已經學習到的ARP信息進行轉發:首先發送給GW 1;GW 1對其進行VXLAN封裝后,將其發送給GW 2;GW 2解封裝后,將其發送給VM 4。

//可以看到的是除了代理ARP代答,并沒有用到VSI口的IP,僅僅是用的MAC。所以相同的VSI IP也是可行的。

2.不同VXLAN間不同站點的虛擬機通信過程

以VM 1訪問VM 5為例,不同VXLAN的虛擬機的通信過程為:

(1)VM 1廣播發送ARP請求消息,獲取網關10.1.1.1的MAC地址。

(2)GW 1收到ARP請求消息后,學習VM 1的ARP信息,并向VM 1發送ARP應答消息,應答的MAC地址為VSI虛接口10的MAC地址。//ARP代理

(3)VM 1將訪問VM 5的報文發送給GW 1。

(4)GW 1在所有VXLAN內向本地站點和遠端站點廣播發送ARP請求,獲取VM 5的MAC地址。ARP請求消息中的源IP地址為20.1.1.1、源MAC地址為本地VSI虛接口20的MAC地址。//GW1直接拿VNI20的IP做ARP,說明在這里它已經知道VM5屬于VNI20

(5)GW 2從VXLAN隧道上接收到VXLAN報文,對其進行解封裝后,學習GW 1的ARP信息(IP為20.1.1.1、MAC為GW 1上VSI虛接口20的MAC、出接口為接收該VXLAN報文的Tunnel接口),并將ARP請求消息中的源MAC修改為本地VSI虛接口20的MAC地址,在VXLAN 20的本地站點內廣播該ARP請求消息。//注意:GW2改了MAC,但是沒有改IP!!!因為IP是一樣的!

(6)VM 5收到ARP請求后,學習GW 2的ARP信息(IP為20.1.1.1、MAC為GW 2上VSI虛接口20的MAC),并發送ARP應答消息給本地網關GW 2。

(7)GW 2從VM 5收到ARP應答消息后,學習VM 5的ARP信息,將ARP應答消息中的源MAC修改為本地VSI虛接口20的MAC地址,并根據已經學習到的ARP表項,為ARP應答消息添加VXLAN封裝后發送給GW 1。

(8)GW 1對VXLAN報文進行解封裝后,根據收到的ARP應答消息學習VM 5的ARP信息(IP為20.1.1.12、MAC為GW 2上VSI虛接口20的MAC、出接口為接收該VXLAN報文的Tunnel接口)。

(9)通過上述步驟完成ARP信息的學習后,VM 1發送給VM 5的報文,根據已經學習到的ARP信息進行轉發:首先發送給GW 1;GW 1對其進行VXLAN封裝后,將其發送給GW 2;GW 2解封裝后,將其發送給VM 5。

疑問:未解決//20180503

//在GW1和GW2的交互過程中,他們都用到了VNI20的IP20.1.1.1,要注意的是他們發的是ARP包,雖然目的IP不一樣,但是源IP是一樣的,GW2收到了來自自己IP的,不同MAC的ARP請求包,還能正常處理,這是必須要這么做還是另有原因?

虛擬機與外部網絡的三層通信過程

虛擬機要想與外部網絡進行三層通信,需要在接入虛擬機的本地分布式VXLAN IP網關上指定流量的下一跳為Border,可以通過如下方式來實現:

·在本地分布式VXLAN IP網關上配置靜態路由,指定路由下一跳為Border上同一個VXLAN對應VSI虛接口的IP地址。

·在本地分布式VXLAN IP網關上配置策略路由,通過apply default-next-hop命令設置報文的缺省下一跳為Border上同一個VXLAN對應VSI虛接口的IP地址。

以VM 1訪問外部網絡內的主機50.1.1.1為例,虛擬機訪問外部網絡的三層通信過程為:

(1)VM 1廣播發送ARP請求消息,獲取網關10.1.1.1的MAC地址。

(2)GW 1收到ARP請求消息后,學習VM 1的ARP信息,并向VM 1發送ARP應答消息,應答的MAC地址為VSI虛接口10的MAC地址。//ARP代理

(3)VM 1將訪問外部網絡的報文發送給GW 1。

(4)GW 1接收到報文后,根據策略路由判斷報文的下一跳地址為10.1.1.2。GW 1在VXLAN 10內向本地站點和遠端站點廣播發送ARP請求消息,獲取10.1.1.2對應的MAC地址。//也就是說,GW1已經知道了這個目的地址是在外網

(5)Border對VXLAN報文進行解封裝,學習GW 1的ARP信息,并通過VXLAN隧道回復ARP應答消息。//答復的是10.1.1.2的MAC地址

(6)GW 1對VXLAN報文進行解封裝,并獲取到10.1.1.2的ARP信息。

(7)GW 1根據獲取到的信息為VM 1發送的報文封裝鏈路層地址(10.1.1.2對應的MAC地址),并通過VXLAN隧道將報文發送給Border。

(8)Border對接收到的報文進行解封裝后,對報文進行三層轉發。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

廊坊市| 双辽市| 七台河市| 巴林右旗| 仙游县| 弥勒县| 吉木乃县| 麻栗坡县| 德昌县| 福安市| 柞水县| 卓尼县| 孝感市| 吉木乃县| 鄱阳县| 平山县| 县级市| 开平市| 吉安县| 西乡县| 馆陶县| 辽宁省| 从化市| 澄江县| 石柱| 东乡| 通州区| 曲周县| 七台河市| 清河县| 定兴县| 平顺县| 长海县| 报价| 普安县| 韶山市| 江安县| 四川省| 金门县| 清水县| 民权县|