您好,登錄后才能下訂單哦!
讀者的約束:需要讀者對TCP/IP有較深入的理解。
● 虛擬機規模受網絡規格限制虛擬機規模受網絡規格限制
在大二層網絡環境下,數據報文是通過查詢MAC地址表進行二層轉發,而MAC地址表的容量限制了虛擬機的數量。
● 網絡隔離能力限制
當前主流的網絡隔離技術是VLAN或×××(Virtual Private Network),在大規模的虛擬化網絡中部署存在如下限制:
─ 由于IEEE 802.1Q中定義的VLAN Tag域只有12比特,僅能表示4096個VLAN,無法滿足大二層網絡中標識大量用戶群的需求。
─ 傳統二層網絡中的VLAN/×××無法滿足網絡動態調整的需求。
● 虛擬機遷移范圍受網絡架構限制
虛擬機啟動后,可能由于服務器資源等問題(如CPU過高,內存不夠等),需要將虛擬機遷移到新的服務器上。為了保證虛擬機遷移過程中業務不中斷,則需要保證虛擬機的IP地址、MAC地址等參數保持不變,這就要求業務網絡是一個二層網絡,且要求網絡本身具備多路徑的冗余備份和可靠性。
● 針對虛擬機規模受網絡規格限制
VXLAN將虛擬機發出的數據包封裝在UDP中,并使用物理網絡的IP/MAC地址作為外層頭進行封裝,對網絡只表現為封裝后的參數。因此,極大降低了大二層網絡對MAC地址規格的需求。
● 針對網絡隔離能力限制
VXLAN引入了類似VLAN ID的用戶標識,稱為VXLAN網絡標識VNI(VXLAN Network ID),由24比特組成,支持多達16M((2^24-1)/1024^2)的VXLAN段,從而滿足了大量的用戶標識。
● 針對虛擬機遷移范圍受網絡架構限制
通過VXLAN構建大二層網絡,保證了在虛擬遷移時虛擬機的IP地址、MAC地址等參數保持不變。
VXLAN是NVO3(Network Virtualization over Layer3)中的一種網絡虛擬化技術,通過將VM或物理服務器發出的數據包封裝在UDP中,并使用物理網絡的IP/MAC作為報文頭進行封裝,然后在IP網絡上傳輸,到達目的地后由隧道終結點解封裝并將數據發送給目標虛擬機或物理服務器。
網絡虛擬邊緣節點NVE,是實現網絡虛擬化功能的網絡實體。報文經過NVE封裝轉換后,NVE間就可基于三層基礎網絡建立二層虛擬化網絡。
VTEP是VXLAN隧道端點,封裝在NVE中,用于VXLAN報文的封裝和解封裝。
VXLAN網絡標識VNI類似VLAN ID,用于區分VXLAN段,不同VXLAN段的虛擬機不能直接二層相互通信。
一個VNI表示一個租戶,即使多個終端用戶屬于同一個VNI,也表示一個租戶。VNI由24比特組成,支持多達16M((2^24-1)/1024^2)的租戶。
VM之間的通信模式主要有3種:同VNI下的不同VM,不同VNI下的跨網訪問,VXLAN和非VXLAN之間的訪問。如下VXLAN 網關示意圖。
VXLAN網關分為二層網關和三層網關。
位于同一網段的終端用戶通信,二層網關收到用戶報文后,根據報文中包含的目的MAC類型,報文轉發流程分為:
● MAC地址為BUM(broadcast&unknown-unicast&multicast,廣播&未知單播&組播)地址,按照 BUM報文轉發流程進行處理。
● MAC地址為已知單播地址,按照已知單播報文轉發流程進行處理。
三層網關,用于非同一網段的終端用戶通信或VXLAN和非VXLAN用戶間的通信。
VXLAN二層網關工作流程分為BUM 報文轉發工作流程和VXLAN已知單播轉發工作流程。
1. VXLAN BUM報文轉發工作流程
當BUM報文進入VXLAN隧道,接入端VTEP采用頭端復制方式進行報文的VXLAN封裝。BUM報文出VXLAN隧道,出口端VTEP對報文解封轉。BUM報文具體轉發流程如下圖所示。
頭端復制:接口收到BUM(Broadcast&Unknown-unicast&Multicast)報文,本地VTEP通過控制平面獲取屬于同一個VNI的VTEP列表,將收到的BUM報文根據VTEP列表進行復制并發送給屬于同一個VNI的所有VTEP。
通過頭端復制完成BUM報文的廣播,不需要依賴組播路由協議。
1) Switch_1收到來自終端A的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域,并判斷報文的目的MAC是否為BUM MAC。
● 是,在對應的二層廣播域內廣播,并跳轉到2)。
● 不是,通過已知單播報文轉發流程。
2) Switch_1上VTEP根據對應的二層廣播域獲取對應VNI的頭端復制隧道列表,依據獲取的隧道列表進行報文復制,并進行VXLAN封裝。基于每個出端口和VXLAN封裝信息封裝VXLAN頭和外層IP信息,并從出端口轉發。
3) Switch_2/Switch_3上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。依據VNI獲取對應的二層廣播域,然后進行VXLAN解封裝,獲取內層二層報文,判斷報文的目的MAC是否為BUM MAC。
● 是,在對應的二層廣播域內非VXLAN側進行廣播處理。
● 不是,再判斷是否是本機MAC。
─ 是,上送主機處理。
─ 不是,在對應的二層廣播域內查找出接口和封裝信息,并跳轉到4)。
4) Switch_2/Switch_3根據查找到的出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的終端B/C。
終端B/C回應終端A的消息,按照已知單播報文轉發流程進行轉發。
2. VXLAN已知單播轉發工作流程
已知單播報文具體轉發流程如下圖所示。
1) Switch_1收到來自終端A的報文,根據報文中接入的端口和VLAN信息獲取對應的二層廣播域,并判斷報文的目的MAC是否為已知單播MAC。
● 是,再判斷是否是本機MAC。
─ 是,上送主機處理。
─ 不是,在對應的二層廣播域內查找出接口和封裝信息,并跳轉到2)。
● 不是,在對應的二層廣播域內廣播,并跳轉到2)。
2) witch_1上VTEP根據查找到的出接口和封裝信息進行VXLAN封裝和報文轉發。
3) Switch_2上VTEP收到VXLAN報文后,根據UDP目的端口號、源/目的IP地址、VNI判斷VXLAN報文的合法有效性。依據VNI獲取對應的二層廣播域,然后進行VXLAN解封裝,獲取內層二層報文,判斷報文的目的MAC是否為已知單播報文MAC。
● 是,在對應的二層廣播域內查找出接口和封裝信息,并跳轉到4)。
● 不是,再判斷是否是本機MAC。
─ 是,上送主機處理。
─ 不是,通過BUM報文轉發流程。
4) Switch_2根據查找到的出接口和封裝信息,為報文添加VLAN Tag,轉發給對應的終端B。
不同網段的VXLAN間通信,及VXLAN和非VXLAN的通信,需要通過IP路由實現。
在三層網關上創建BD,將VNI以1:1方式映射到BD,基于BD創建BDIF接口,通過BDIF接口配置IP地址實現不同網段的VXLAN間,及VXLAN和非VXLAN的通信。
BDIF接口類似VLANIF接口。
L3網關分為集中式網關和分布式網關。
集中式網關,南北向/東西向的流量都需要經過網關,本地跨子網流量也通過集中式網關進行轉發,流量迂回。
分布式網關,跨子網流量也是最優路徑轉發,只有南北向的流量壓力,沒有東西向的流量壓力。
分布式網關分為軟件分布式網關和硬件分布式網關,其中軟件分布式網關位于vSwitch, vSwitch實現VXLAN封裝和解封裝,通過DVR實現跨子網東西向流量轉發。硬件分布式網關位于硬件網絡邊緣設備,由硬件網絡設備做VXLAN封裝和解封裝。
VXLAN二層網關工作流程分為BUM 報文轉發工作流程和VXLAN已知單播轉發工作流程。
不同網段的VXLAN網絡之間通信,以及不同網段VXLAN網絡和非VXLAN網絡的通信,需要通過VXLAN三層網關實現,VXLAN三層網關工作流程如下:
三層網關通信具體實現過程如下:
1. 作為VXLAN二層網關的Switch_4收到VXLAN報文后進行解封裝,確認內層報文中的DMAC是否是本網關接口的MAC地址。
● 是,轉給對應目的網段的三層網關處理,并跳轉2。
● 不是,在對應的二層廣播域內查找出接口和封裝信息。
2. 作為VXLAN三層網關的Switch_4剝除內層報文的以太封裝,解析目的IP。根據目的IP查找ARP表項,確認DMAC、VXLAN隧道出接口及VIN等信息。
● 沒有VXLAN隧道出接口及VIN信息,進行三層轉發。
● 有VXLAN隧道出接口及VIN信息,跳轉3。
3. 作為VXLAN二層網關的Switch_4重新封裝VXLAN報文,其中內層報文以太頭中的SMAC是網關接口的MAC地址。
Switch_4與其他Switch之間的通信,請參見二層網關實現原理。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。