大型數(shù)據(jù)中心云平臺(tái)建設(shè)中網(wǎng)絡(luò)的知識(shí)、原理及實(shí)踐

虛擬集群的規(guī)模( 非物理機(jī)所能比擬) 使得Vxlan的組播傳播( 虛擬機(jī)構(gòu)成的集群包含的 MAC 地址數(shù)量往往多一兩個(gè)數(shù)量級(jí) MAC地址表 )對(duì)網(wǎng)絡(luò)設(shè)備性能要求巨大(你不可能每個(gè)交換機(jī)都買(mǎi)核心交換機(jī)一樣的配置吧)。

【導(dǎo)讀】本文介紹了云計(jì)算中網(wǎng)絡(luò)的的一些重要知識(shí)和原理,以及結(jié)合實(shí)際業(yè)務(wù)分享行業(yè)云的一些架構(gòu)設(shè)計(jì)。

【作者】一力搜索,某銀行分布式數(shù)據(jù)庫(kù)架構(gòu)師,重點(diǎn)負(fù)責(zé)行內(nèi)分布式數(shù)據(jù)庫(kù)領(lǐng)域及私有云,個(gè)人微信公眾號(hào):一力搜索。

最簡(jiǎn)單的總結(jié)

SDN主流選擇了OverLay 。虛擬集群的規(guī)模( 非物理機(jī)所能比擬) 使得Vxlan的組播傳播( 虛擬機(jī)構(gòu)成的集群包含的 MAC 地址數(shù)量往往多一兩個(gè)數(shù)量級(jí) MAC地址表 )對(duì)網(wǎng)絡(luò)設(shè)備性能要求巨大(你不可能每個(gè)交換機(jī)都買(mǎi)核心交換機(jī)一樣的配置吧)。Overlay通過(guò)隧道技術(shù)(VxLAN或GRE)和控制平面可以減少集群中MAC地址表和ARP請(qǐng)求( H3C VXLAN解決方案基于SDN架構(gòu),通過(guò)引入全網(wǎng)的SDN Controller來(lái)實(shí)現(xiàn)VXLAN的管理和維護(hù),使得VTEP之間的信息可以通過(guò)Controller來(lái)進(jìn)行反射。這樣,VTEP的MAC地址表映射關(guān)系不再通過(guò)組播向全網(wǎng)其他VTEP傳達(dá),而是統(tǒng)一上報(bào)給控制器,由控制器統(tǒng)一下發(fā)給需要接受此消息的其他VTEP,由具體的VTEP執(zhí)行轉(zhuǎn)發(fā)機(jī) ), VxLan中Vlan內(nèi)部只走2層網(wǎng)關(guān),只有VxLan之間(不同租戶(hù),云主機(jī)和裸金屬之間)才需要走3層網(wǎng)關(guān)。進(jìn)而有效 降低二層核心網(wǎng)絡(luò)設(shè)備壓力。

常見(jiàn)網(wǎng)絡(luò)術(shù)語(yǔ)

普通的VLAN數(shù)量只有4096個(gè),無(wú)法滿(mǎn)足大規(guī)模云計(jì)算IDC的需求,而IDC為何需求那么多VLAN呢,因?yàn)槟壳按蟛糠諭DC內(nèi)部結(jié)構(gòu)主要分為兩種L2,L3。

L2( 二層網(wǎng)關(guān) ) :位于同一網(wǎng)段的終端用戶(hù)通信,L2網(wǎng)關(guān)收到用戶(hù)報(bào)文后,根據(jù)報(bào)文中包含的目的MAC類(lèi)型 進(jìn)行轉(zhuǎn)發(fā)。

L2網(wǎng)關(guān)主要解決的就是同一VNI下的VM之間的互訪(fǎng) 。

L3(三層網(wǎng)關(guān)):用于非同一網(wǎng)段的終端用戶(hù)通信或VXLAN和非VXLAN用戶(hù)間的通信。

L3網(wǎng)關(guān)解決的就是不同VNI(VXLAN Network Identifier)以及VXLAN和非VXLAN之間的互訪(fǎng)

VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端點(diǎn)) 為VXLAN隧道的端點(diǎn),封裝在NVE中,用于VXLAN報(bào)文的封裝和解封裝。VTEP與物理網(wǎng)絡(luò)相連,分配的地址為物理網(wǎng)絡(luò)IP地址。VXLAN報(bào)文中源IP地址為本節(jié)點(diǎn)的VTEP地址,VXLAN報(bào)文中目的IP地址為對(duì)端節(jié)點(diǎn)的VTEP地址,一對(duì)VTEP地址就對(duì)應(yīng)著一個(gè)VXLAN隧道。

L2結(jié)構(gòu)里面,所有的服務(wù)器都在一個(gè)大的局域網(wǎng)里面,TOR透明L2,不同交換機(jī)上的服務(wù)器互通靠MAC地址,通信隔離和廣播隔離靠的vlan,網(wǎng)關(guān)在內(nèi)網(wǎng)核心上。而L3結(jié)構(gòu)這是從TOR級(jí)別上就開(kāi)始用協(xié)議進(jìn)行互聯(lián),網(wǎng)關(guān)在TOR上,不同交換機(jī)之間的互通靠IP地址。

ToR(Top of Rack):接入方式就是在服務(wù)器機(jī)柜的最上面安裝接入交換機(jī)。

EoR(End of Row):接入交換機(jī)集中安裝在一列機(jī)柜端部的機(jī)柜內(nèi),通過(guò)水平纜線(xiàn)以永久鏈路方式連接設(shè)備柜內(nèi)的主機(jī)/服務(wù)器/小型機(jī)設(shè)備。EoR 對(duì)設(shè)備機(jī)柜需要敷設(shè)大量的水平纜線(xiàn)連接到交換機(jī)。

對(duì)比:

EOR布線(xiàn)方式的缺點(diǎn):從服務(wù)器機(jī)柜到網(wǎng)絡(luò)機(jī)柜的銅纜多(約有20-40根銅纜),且距網(wǎng)絡(luò)機(jī)柜越遠(yuǎn)的服務(wù)器機(jī)柜的銅纜,在機(jī)房中的布線(xiàn)距離越長(zhǎng),由此導(dǎo)致線(xiàn)纜管理維護(hù)工作量大、靈活性差。

TOR布線(xiàn)的缺點(diǎn):每個(gè)服務(wù)器機(jī)柜受電源輸出功率限制,可部署的服務(wù)器數(shù)量有限,由此導(dǎo)致機(jī)柜內(nèi)交換機(jī)的接入端口利用率不足。在幾個(gè)服務(wù)器機(jī)柜間共用1-2臺(tái)接入交換機(jī),可解決交換機(jī)端口利用率不足的問(wèn)題,但這種方式增加了線(xiàn)纜管理工作量。

從網(wǎng)絡(luò)設(shè)計(jì)考慮,TOR布線(xiàn)方式的每臺(tái)接入交換機(jī)上的VLAN量不會(huì)很多,在網(wǎng)絡(luò)規(guī)劃的時(shí)候也要盡量避免使一個(gè)VLAN通過(guò)匯聚交換機(jī)跨多臺(tái)接入交換機(jī),因此采用TOR布線(xiàn)方式的網(wǎng)絡(luò)拓?fù)渲校總€(gè)VLAN的范圍不會(huì)太大,包含的端口數(shù)量不會(huì)太多。但對(duì)于EOR布線(xiàn)方式來(lái)說(shuō),接入交換機(jī)的端口密度高,在網(wǎng)路最初設(shè)計(jì)時(shí),就可能存在包含較多端口數(shù)的VLAN。

TOR方式的接入交換機(jī)數(shù)量多,EOR方式的接入交換機(jī)數(shù)量少,所以TOR方式的網(wǎng)絡(luò)設(shè)備管理維護(hù)工作量大。

隨著用戶(hù)數(shù)據(jù)業(yè)務(wù)需求的猛增,數(shù)據(jù)中心機(jī)房服務(wù)器密度越來(lái)越高,虛擬化和云計(jì)算等新技術(shù)趨勢(shì)日益流行,使得服務(wù)器對(duì)應(yīng)的網(wǎng)絡(luò)端口大大增加,并且增加了管理的復(fù)雜性,另外以太網(wǎng)(LAN)與光纖存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)的融合也越來(lái)越常見(jiàn),這就必然要求一種新的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)與之相對(duì)應(yīng)。在云計(jì)算的大潮下,這種分布式架構(gòu)的業(yè)務(wù)擴(kuò)展性極強(qiáng),要求的服務(wù)器數(shù)量也越來(lái)越多。例如新的Apache Hadoop 0.23支持6000~10000臺(tái)服務(wù)器在一個(gè)集群內(nèi), 海量的服務(wù)器數(shù)量要求充分利用數(shù)據(jù)中心機(jī)柜空間的同時(shí),海量的業(yè)務(wù)數(shù)據(jù)也需要更快更直接的高性能鏈路把數(shù)據(jù)傳送到網(wǎng)絡(luò)核心 。在這樣的趨勢(shì)下,顯然ToR更加適用,在業(yè)務(wù)迅速擴(kuò)展的壓力下,ToR的方式可以更好的實(shí)現(xiàn)網(wǎng)絡(luò)的更快速擴(kuò)展。

一 . SDN

在SDN解決方案中overlay與underlay是最為常見(jiàn)的二個(gè)網(wǎng)絡(luò)術(shù)語(yǔ) .

UnderLay指的是物理網(wǎng)絡(luò),它由物理設(shè)備和物理鏈路組成。常見(jiàn)的物理設(shè)備有交換機(jī)、路由器、防火墻、負(fù)載均衡、入侵檢測(cè)、行為管理等,這些設(shè)備通過(guò)特定的鏈路連接起來(lái)形成了一個(gè)傳統(tǒng)的物理網(wǎng)絡(luò),這樣的物理網(wǎng)絡(luò),我們稱(chēng)之為UnderLay網(wǎng)絡(luò)。

實(shí)現(xiàn) SDN的技術(shù)主要有 overlay , OpenFlow ,和思科的 onePK 。Overlay已成主流,該類(lèi)方案主要思想可被歸納為解耦,獨(dú)立,控制三個(gè)方面。

OverLay其實(shí)就是一種隧道技術(shù) ,VXLAN,NVGRE及STT (都是OverLay實(shí)現(xiàn)方式之一) 是典型的三種隧道技術(shù), 它們都是通過(guò)隧道技術(shù)實(shí)現(xiàn)大二層網(wǎng)絡(luò) 。將原生態(tài)的二層數(shù)據(jù)幀報(bào)文進(jìn)行封裝后在通過(guò)隧道進(jìn)行傳輸??傊ㄟ^(guò)OverLay技術(shù),我們?cè)趯?duì)物理網(wǎng)絡(luò)不做任何改造的情況下,通過(guò)隧道技術(shù)在現(xiàn)有的物理網(wǎng)絡(luò)上創(chuàng)建了一個(gè)或多個(gè)邏輯網(wǎng)絡(luò)即虛擬網(wǎng)絡(luò),有效解決了物理數(shù)據(jù)中心,尤其是云數(shù)據(jù)中心存在的諸多問(wèn)題,實(shí)現(xiàn)了數(shù)據(jù)中心的自動(dòng)化和智能化。

與UnderLay網(wǎng)絡(luò)相比,OverLay實(shí)現(xiàn)了控制與轉(zhuǎn)發(fā)的分離,這是SDN的核心理念 。

Overlay 技術(shù)與 SDN 可以說(shuō)天生就是適合互相結(jié)合的技術(shù)組合。Overlay 網(wǎng)絡(luò)虛擬機(jī)物理位置無(wú)關(guān)特性就需要有一種強(qiáng)有力的集中控制技術(shù)進(jìn)行虛擬機(jī)的管理和控制。而 SDN 技術(shù)恰好可以完美的做到這一點(diǎn) 。

二 . OverLay 解決哪些痛點(diǎn)

Overlay由于其簡(jiǎn)單、一致的解決問(wèn)題方法,加上重新定義的網(wǎng)絡(luò)可以進(jìn)行軟件定義,已經(jīng)成為數(shù)據(jù)中心網(wǎng)絡(luò)最炙手可熱的技術(shù)方案。然而,它并不是一張完全由軟件定義的網(wǎng)絡(luò),Overlay網(wǎng)絡(luò)解決方案必定是一種軟硬結(jié)合的方案,無(wú)論是從接入層VTEP混合組網(wǎng)的組網(wǎng)要求、組播或SDN控制層協(xié)議的支持,還是VXLAN網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)的互通來(lái)看,都需要硬件積極的配合和參與,必須構(gòu)建在堅(jiān)實(shí)和先進(jìn)的物理網(wǎng)絡(luò)架構(gòu)基礎(chǔ)上。

考慮到服務(wù)器接入的可以是虛擬交換機(jī),也可以是物理交換機(jī),因此存在三種不同的構(gòu)建模式:

2.1 OverLay類(lèi)型

2.2 Overlay 網(wǎng)絡(luò)主要解決的問(wèn)題

三 . 為什么需要 Vxlan

在云計(jì)算IDC里,要求服務(wù)器做到虛擬化,原來(lái)這個(gè)服務(wù)器掛在TOR A上,我可以隨意把它遷移到TOR B上,而不需要改變IP地址,這個(gè)有點(diǎn)就是L2網(wǎng)路的特長(zhǎng),因?yàn)槲疫@個(gè)虛擬服務(wù)器和外界(網(wǎng)關(guān)之外)通信還靠L3,但是我網(wǎng)關(guān)內(nèi)部互訪(fǎng)是走L2的,這個(gè)在L3里是無(wú)法做到的。因?yàn)長(zhǎng)3里每個(gè)IP都是唯一的,地址也是固定位置的,除非你整網(wǎng)段物理搬遷。因此如何在L3網(wǎng)絡(luò)里傳輸L2數(shù)據(jù)呢,這就是overlay技術(shù) 。

因此VXLAN(Virtual eXtensible LAN可擴(kuò)展虛擬局域網(wǎng))誕生了,基于IP網(wǎng)絡(luò)之上,采用的是MAC in UDP技術(shù),本來(lái)OSI7層模型里就是一層疊一層的,這種和GRE/IPSEC等tunnel技術(shù)是不是很像,這種封裝技術(shù)對(duì)中間網(wǎng)絡(luò)沒(méi)有特殊要求,只要你能識(shí)別IP報(bào)文即可進(jìn)行傳送。

好了,解釋清楚了,那么現(xiàn)在總結(jié)為何需要Vxlan:

虛擬機(jī)規(guī)模受到網(wǎng)絡(luò)規(guī)格的限制,大L2網(wǎng)絡(luò)里,報(bào)文通過(guò)查詢(xún)MAC地址轉(zhuǎn)發(fā), MAC表容量限制了虛擬機(jī)的數(shù)量 。

網(wǎng)絡(luò)隔離的限制,普通的vlan和VPN配置無(wú)法滿(mǎn)足動(dòng)態(tài)網(wǎng)絡(luò)調(diào)整的需求,同時(shí)配置復(fù)雜

虛擬器搬遷受到限制,虛擬機(jī)啟動(dòng)后假如在業(yè)務(wù)不中斷基礎(chǔ)上將該虛擬機(jī)遷移到另外一臺(tái)物理機(jī)上去,需要保持虛擬機(jī)的IP地址和MAC地址等參數(shù)保持不變,這就要求業(yè)務(wù)網(wǎng)絡(luò)是一個(gè)二層的網(wǎng)絡(luò)。

3.1 報(bào)文的封裝與解封裝

VXLAN的核心在于承載于物理網(wǎng)絡(luò)上的隧道技術(shù),這就意味著要對(duì)報(bào)文進(jìn)行封裝和解封裝,因此需要硬件來(lái)加速處理。

在VXLAN網(wǎng)絡(luò)中,用于建立VXLAN隧道的端點(diǎn)設(shè)備稱(chēng)為VTEP(VXLAN Tunneling End Point,VXLAN隧道終結(jié)點(diǎn) ,起到網(wǎng)關(guān)的作用 ), 封裝和解封裝在VTEP節(jié)點(diǎn)上進(jìn)行 。

在云數(shù)據(jù)中心,部分業(yè)務(wù)是不適合進(jìn)行虛擬化的(如小機(jī)服務(wù)器,高性能數(shù)據(jù)庫(kù)服務(wù)器),這些服務(wù)器會(huì)直接與物理交換機(jī)互聯(lián), 而他們又必須與對(duì)應(yīng)租戶(hù)/業(yè)務(wù)的VXLAN網(wǎng)絡(luò)互通,此時(shí)就必須要求與其互聯(lián)的硬件交換機(jī)也能支持VXLAN協(xié)議,以接入VXLAN網(wǎng)絡(luò) 。

3.2 組播協(xié)議傳播

簡(jiǎn)單總結(jié),vxlan用組播協(xié)議傳播,每個(gè)VTEP都需要清楚源和目的MAC,新增MAC地址需要組播通知一實(shí)例下所有VTEP。另,本地VTEP 找不到目的MAC處于哪一個(gè)遠(yuǎn)程VTEP時(shí),也需要組播報(bào)文查找目的MAC主機(jī)所屬遠(yuǎn)端VTEP。租戶(hù)很多時(shí),組播條數(shù)指數(shù)增加,對(duì)物理網(wǎng)絡(luò)承載組播處理能力有較大要求。引入SDN Controller來(lái)實(shí)現(xiàn)VXLAN的管理和維護(hù),VTEP的MAC地址表映射關(guān)系不再通過(guò)組播向全網(wǎng)其他VTEP傳達(dá),而是統(tǒng)一上報(bào)給控制器,由控制器統(tǒng)一下發(fā)給需要接受此消息的其他VTEP,由具體的VTEP執(zhí)行轉(zhuǎn)發(fā)機(jī)制。

VXLAN網(wǎng)絡(luò)的MAC表與隧道終端的綁定關(guān)系要用組播協(xié)議傳播,而大規(guī)格組播協(xié)議離不開(kāi)物理網(wǎng)絡(luò)設(shè)備的支持。

按照VXLAN的標(biāo)準(zhǔn), 每一個(gè)VTEP都需要了解其接入的終端MAC地址,同時(shí)還需要知道整網(wǎng)(該VXLAN實(shí)例中)其他VTEP下所有的終端MAC地址。只有這樣,在本地的VTEP收到報(bào)文后需要轉(zhuǎn)發(fā)時(shí),才能根據(jù)目的MAC查詢(xún)到需要送到遠(yuǎn)端的目的VTEP那里 。

按照IETF中對(duì)VXLAN網(wǎng)絡(luò)的定義,負(fù)責(zé)在網(wǎng)絡(luò)中傳播MAC地址和VTEP對(duì)應(yīng)關(guān)系的機(jī)制,正是依托于物理網(wǎng)絡(luò)中的組播協(xié)議。VTEP將本地的MAC地址表利用組播協(xié)議在整個(gè)組播中傳播,從而使得整網(wǎng)中所有組播成員,也就是其他VTEP都知道本地的MAC地址表。當(dāng)VTEP下的終端接入情況有所更改,如新增了MAC地址或者減少了MAC地址,也需要利用組播協(xié)議通知同一個(gè)實(shí)例下的所有VTEP。另外,當(dāng)本地VTEP找不到目的MAC處于哪一個(gè)遠(yuǎn)端VTEP時(shí),也需要發(fā)送組播報(bào)文來(lái)查找目的MAC主機(jī)所屬的遠(yuǎn)端VTEP。

實(shí)際組網(wǎng)中,VXLAN利用了物理網(wǎng)絡(luò)的組播組,在建立好的組播組中加入VXLAN中所有VTEP成員,傳遞VTEP變更信息。在多用戶(hù)多業(yè)務(wù)情況下,組播組要求與VXLAN數(shù)量息息相關(guān)。由于VXLAN網(wǎng)絡(luò)規(guī)模的不斷拓展 (最大可達(dá)到16M個(gè)VXLAN網(wǎng)絡(luò)),所需要的組播條目數(shù)會(huì)不斷增加,這實(shí)際上對(duì)于物理網(wǎng)絡(luò)承載組播處理能力和規(guī)格提出了要求。

由于標(biāo)準(zhǔn)VXLAN架構(gòu)下使用組播協(xié)議,對(duì)物理網(wǎng)絡(luò)組播數(shù)規(guī)格要求較大,因此H3C VXLAN解決方案基于SDN架構(gòu), 通過(guò)引入全網(wǎng)的SDN Controller來(lái)實(shí)現(xiàn)VXLAN的管理和維護(hù),使得VTEP之間的信息可以通過(guò)Controller來(lái)進(jìn)行反射 。這樣, VTEP的MAC地址表映射關(guān)系不再通過(guò)組播向全網(wǎng)其他VTEP傳達(dá),而是統(tǒng)一上報(bào)給控制器,由控制器統(tǒng)一下發(fā)給需要接受此消息的其他VTEP, 由具體的VTEP執(zhí)行轉(zhuǎn)發(fā)機(jī)制。

在SDN架構(gòu)下,硬件形態(tài)的VTEP需要能夠支持集中控制器下發(fā)的業(yè)務(wù)控制信息,同時(shí)基于Openflow進(jìn)行流表轉(zhuǎn)發(fā)。而傳統(tǒng)硬件交換機(jī)不能支持上述特性,必須由新硬件設(shè)備來(lái)執(zhí)行和完成的。

3.3 VXLAN網(wǎng)絡(luò)互通

在傳統(tǒng)L2網(wǎng)絡(luò)中,報(bào)文跨VLAN轉(zhuǎn)發(fā),需要借助三層設(shè)備來(lái)完成不同VLAN之間的互通問(wèn)題。VXLAN網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)、以及VXLAN網(wǎng)絡(luò)的互通,必須有網(wǎng)絡(luò)設(shè)備的支持。

VXLAN網(wǎng)絡(luò)框架中定義了兩種網(wǎng)關(guān)單元。

VXLAN三層網(wǎng)關(guān)。用于終結(jié)VXLAN網(wǎng)絡(luò),將VXLAN報(bào)文轉(zhuǎn)換成傳統(tǒng)三層報(bào)文送至IP網(wǎng)絡(luò),適用于VXLAN網(wǎng)絡(luò)內(nèi)服務(wù)器與遠(yuǎn)端終端之間的三層互訪(fǎng) ;同時(shí)也用作不同VXLAN網(wǎng)絡(luò)互通 (可理解為不同VPC) 。當(dāng)服務(wù)器訪(fǎng)問(wèn)外部網(wǎng)絡(luò)時(shí),VXLAN三層網(wǎng)關(guān)剝離對(duì)應(yīng)VXLAN報(bào)文封裝,送入IP網(wǎng)絡(luò);當(dāng)外部終端訪(fǎng)問(wèn)VXLAN內(nèi)的服務(wù)器時(shí),VXLAN根據(jù)目的IP地址確定所屬VXLAN及所屬的VTEP,加上對(duì)應(yīng)的VXLAN報(bào)文頭封裝進(jìn)入VXLAN網(wǎng)絡(luò)。VXLAN之間的互訪(fǎng)流量與此類(lèi)似,VXLAN網(wǎng)關(guān)剝離VXLAN報(bào)文頭,并基于目的IP地址確定所屬VXLAN及所屬的VTEP,重新封裝后送入另外的VXLAN網(wǎng)絡(luò)。

VXLAN二層網(wǎng)關(guān)。用于終結(jié)VXLAN網(wǎng)絡(luò),將VXLAN報(bào)文轉(zhuǎn)換成對(duì)應(yīng)的傳統(tǒng)二層網(wǎng)絡(luò)送到傳統(tǒng)以太網(wǎng)絡(luò),適用于VXLAN網(wǎng)絡(luò)內(nèi)服務(wù)器與遠(yuǎn)端終端或遠(yuǎn)端服務(wù)器的二層互聯(lián)。如在不同網(wǎng)絡(luò)中做虛擬機(jī)遷移時(shí),當(dāng)業(yè)務(wù)需要傳統(tǒng)網(wǎng)絡(luò)中服務(wù)器與VXLAN網(wǎng)絡(luò)中服務(wù)器在同一個(gè)二層中,此時(shí)需要使用VXLAN二層網(wǎng)關(guān)打通VXLAN網(wǎng)絡(luò)和二層網(wǎng)絡(luò)。如圖7所示,VXLAN 10網(wǎng)絡(luò)中的服務(wù)器要和IP網(wǎng)絡(luò)中VLAN100的業(yè)務(wù)二層互通,此時(shí)就需要通過(guò)VXLAN的二層網(wǎng)關(guān)進(jìn)行互聯(lián)。VXLAN10的報(bào)文進(jìn)入IP網(wǎng)絡(luò)的流量,剝掉VXLAN的報(bào)文頭,根據(jù)VXLAN的標(biāo)簽查詢(xún)對(duì)應(yīng)的VLAN網(wǎng)絡(luò)(此處對(duì)應(yīng)的是VLAN100),并據(jù)此在二層報(bào)文中加入VLAN的802.1Q報(bào)文送入IP網(wǎng)絡(luò);相反VLAN100的業(yè)務(wù)流量進(jìn)入VXLAN也需要根據(jù)VLAN獲知對(duì)應(yīng)的VXLAN網(wǎng)絡(luò)編號(hào),根據(jù)目的MAC獲知遠(yuǎn)端VTEP的IP地址,基于以上信息進(jìn)行VXLAN封裝后送入對(duì)應(yīng)的VXLAN網(wǎng)絡(luò)。

可見(jiàn),無(wú)論是二層還是三層網(wǎng)關(guān),均涉及到查表轉(zhuǎn)發(fā)、VXLAN報(bào)文的解封裝和封裝操作。從轉(zhuǎn)發(fā)效率和執(zhí)行性能來(lái)看,都只能在物理網(wǎng)絡(luò)設(shè)備上實(shí)現(xiàn),并且傳統(tǒng)設(shè)備無(wú)法支持,必須通過(guò)新的硬件形式來(lái)實(shí)現(xiàn)。

四.兩層網(wǎng)絡(luò),三層網(wǎng)絡(luò)詳細(xì)區(qū)別

二層網(wǎng)絡(luò)僅僅通過(guò)MAC尋址即可實(shí)現(xiàn)通訊,但僅僅是同一個(gè)沖突域內(nèi);

三層網(wǎng)絡(luò)則需要通過(guò)IP路由實(shí)現(xiàn)跨網(wǎng)段的通訊,可以跨多個(gè)沖突域。

首先看L2鏈路層,這一層以幀(Frame)為單位組織物理信號(hào),每個(gè)幀都需要有一個(gè)源地址和目的地址,絕大多數(shù)情況下使用的都是網(wǎng)卡MAC地址。

而交換機(jī)則具有MAC地址學(xué)習(xí)功能,能夠向各個(gè)端口準(zhǔn)確投放數(shù)據(jù)幀,這樣就大大提高了數(shù)據(jù)傳輸效率。對(duì)于L2層,交換機(jī)只能轉(zhuǎn)發(fā)一個(gè)子網(wǎng)內(nèi)的數(shù)據(jù)幀 (子網(wǎng)是通過(guò)IP地址劃分的),如果要將一個(gè)數(shù)據(jù)幀跨網(wǎng)轉(zhuǎn)發(fā),則需要借助于L3層的路徑規(guī)劃功能 ,這個(gè)一會(huì)再說(shuō)。

現(xiàn)在假設(shè)有如下網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),ABCD四臺(tái)主機(jī)屬于10.0.0.0子網(wǎng),網(wǎng)關(guān)都指向路由器的10.0.0.1端口,EFGH屬于10.0.1.0子網(wǎng),網(wǎng)關(guān)指向路由器的10.0.1.1端口。

先看同一子網(wǎng)內(nèi)的通信的情況(A向C發(fā)送數(shù)據(jù),這種情況下都是通過(guò)IP地址指定的),假如所有的主機(jī)、交換機(jī)和路由器都剛剛加電,內(nèi)部沒(méi)有緩存任何MAC映射表和路由表。A在發(fā)送之前,發(fā)現(xiàn)C和A在同一個(gè)子網(wǎng)內(nèi),于是A試圖先在物理子網(wǎng)內(nèi)找一下C, 但是在同一物理子網(wǎng)內(nèi)是通過(guò)硬件MAC地址來(lái)尋址的,而A此時(shí)并不知道C的MAC地址,于是A通過(guò)ARP廣播來(lái)試圖獲取 ,發(fā)出的廣播包包括如下類(lèi)似內(nèi)容:(注:廣播時(shí)用的MAC地址是ff:ff:ff:ff:ff:ff)

下面再來(lái)看跨物理網(wǎng)絡(luò)通信的情況(A向E發(fā)送數(shù)據(jù)),同樣假設(shè)設(shè)備都剛剛加電,緩存為空。A發(fā)現(xiàn)E的IP也是同一網(wǎng)段的,于是又開(kāi)始廣播,但是這次BCD都沒(méi)有回應(yīng)。我們此時(shí)把視線(xiàn)轉(zhuǎn)到路由器1上,當(dāng)路由器1收到這個(gè)ARP廣播包后,為了避免廣播風(fēng)暴的產(chǎn)生,路由器1不會(huì)繼續(xù)廣播這個(gè)ARP包,但是路由器1會(huì)把自己的MAC告訴A,回發(fā)如下類(lèi)似格式的內(nèi)容:

A在等待超時(shí)后,發(fā)現(xiàn)當(dāng)前物理子網(wǎng)內(nèi)找不到E,但是A已經(jīng)知道了網(wǎng)關(guān)路由器的MAC地址,于是便會(huì)將發(fā)給E的數(shù)據(jù)包扔給網(wǎng)關(guān)(也就是路由器1的1口),路由器1收到這個(gè)包后,發(fā)現(xiàn)E的IP在自己內(nèi)部也沒(méi)有緩存,于是路由器1也開(kāi)始了尋找E的過(guò)程。相比交換機(jī)的子網(wǎng)內(nèi)“廣播找人”,路由器的選路范圍更大也更復(fù)雜,很多情況下是整個(gè)Internet,并且要夸多個(gè)運(yùn)營(yíng)商,所以在L3層面路由器的路徑計(jì)算協(xié)議較多 ,包括:RIP、OSPF、IS-IS、BGP、IGRP等協(xié)議。路由器之間計(jì)算路徑時(shí),任何一臺(tái)路由器都是無(wú)法窺探整個(gè)網(wǎng)絡(luò)的,因此每臺(tái)路由器都只是通過(guò)選路算法找到下一跳的最優(yōu)路徑,這些最優(yōu)路徑連接起來(lái)便形成了一條完整的路徑。換句話(huà)說(shuō),路由器的轉(zhuǎn)發(fā)路徑不是一個(gè)路由器選擇出來(lái)的,而是一群路由器共同選擇出來(lái)的下一跳地址序列。具體的路由選路無(wú)法一一講解,大家感興趣可以自己調(diào)查一下,這里假設(shè)路由器1直接找到了路由器2。

我們繼續(xù)往下探索,當(dāng)路由器2接到尋找主機(jī)E的廣播包后,發(fā)現(xiàn)E位于自己的網(wǎng)絡(luò)中(當(dāng)然也提前需要一個(gè)廣播學(xué)習(xí)的過(guò)程才能知道),便向前一跳路由器(即路由器1)反饋?zhàn)约弘x主機(jī)E最近,最終經(jīng)過(guò)這樣一個(gè)“A→網(wǎng)關(guān)路由器→路由器間選路→找到主機(jī)E所在子網(wǎng)”的過(guò)程A終于可以與E進(jìn)行通信了,由于A和E之間經(jīng)歷了多個(gè)物理子網(wǎng),因此需要多次的L2轉(zhuǎn)發(fā)才能實(shí)現(xiàn)數(shù)據(jù)包的到達(dá),這個(gè)過(guò)程中L3層IP包外包幀的MAC地址會(huì)不斷變換。A→B→A這個(gè)過(guò)程中,數(shù)據(jù)幀和IP包的地址經(jīng)歷過(guò)程如下(假設(shè)A使用的是本機(jī)的88端口,B使用的是本機(jī)的99端口):

在這個(gè)過(guò)程中,數(shù)據(jù)包在路由器1和2的1<-->4口之間傳遞時(shí),由于是在一個(gè)設(shè)備內(nèi)部,因此可以直接轉(zhuǎn)發(fā),而不用變換幀頭,從而提高轉(zhuǎn)發(fā)效率。如果A要與其它子網(wǎng)的FGH主機(jī)通信,過(guò)程基本是一樣的,只不過(guò)剛開(kāi)始不會(huì)先在當(dāng)前子網(wǎng)內(nèi)“廣播找人”,而是直接將數(shù)據(jù)包投遞給出口網(wǎng)關(guān)。

本文旨在向大家展示L2交換機(jī)和L3路由器在轉(zhuǎn)發(fā)網(wǎng)絡(luò)數(shù)據(jù)時(shí)的一個(gè)主要流程,希望能給大家?guī)?lái)幫助。

THEEND

最新評(píng)論(評(píng)論僅代表用戶(hù)觀點(diǎn))

更多
暫無(wú)評(píng)論