程序員也需了解的主流云計(jì)算網(wǎng)絡(luò)架構(gòu)
當(dāng)前越來越多的企業(yè)將自己的業(yè)務(wù)遷移至云端,云計(jì)算的發(fā)展勢(shì)頭不可阻擋,身邊好多朋友也紛紛購買云主機(jī)用來學(xué)習(xí)測(cè)試。有那么一波小伙伴們肯定好奇這么多的云主機(jī)是通過怎樣的網(wǎng)絡(luò)架構(gòu)來承載的呢,本篇文章就為大家?guī)硪灰唤視灾髁鞯脑朴?jì)算網(wǎng)絡(luò)架構(gòu)。
01 Overlay網(wǎng)絡(luò)架構(gòu)
(1)Overlay網(wǎng)絡(luò)產(chǎn)生背景
隨著企業(yè)業(yè)務(wù)的快速擴(kuò)展,IT作為基礎(chǔ)設(shè)施,其快速部署和高利用率成為主要需求。云計(jì)算可以為之提供可用的、便捷的、按需的資源提供,成為當(dāng)前企業(yè)IT建設(shè)的常規(guī)形態(tài),而在云計(jì)算中大量采用和部署的虛擬化幾乎成為一個(gè)基本的技術(shù)模式。部署虛擬機(jī)需要在網(wǎng)絡(luò)中無限制地遷移到目的物理位置,虛機(jī)增長的快速性以及虛機(jī)遷移成為一個(gè)常態(tài)性業(yè)務(wù)。傳統(tǒng)的網(wǎng)絡(luò)已經(jīng)不能很好滿足企業(yè)的這種需求,面臨著如下挑戰(zhàn):
a)虛擬機(jī)遷移范圍受到網(wǎng)絡(luò)架構(gòu)限制
為了保證虛擬機(jī)遷移過程中業(yè)務(wù)不中斷,則需要保證虛擬機(jī)的IP地址、MAC地址等參數(shù)保持不變,這就要求業(yè)務(wù)網(wǎng)絡(luò)是一個(gè)二層網(wǎng)絡(luò),且要求網(wǎng)絡(luò)本身具備多路徑的冗余備份和可靠性。傳統(tǒng)的STP、設(shè)備虛擬化等技術(shù)只適用于中小規(guī)模的網(wǎng)絡(luò)。
b)網(wǎng)絡(luò)隔離/分離能力限制
當(dāng)前主流的網(wǎng)絡(luò)隔離技術(shù)是VLAN,由于IEEE 802.1Q中定義的VLAN ID只有12比特,僅能表示4096個(gè)VLAN,無法滿足大二層網(wǎng)絡(luò)中標(biāo)識(shí)大量租戶或租戶群的需求。
c)虛擬機(jī)規(guī)模受網(wǎng)絡(luò)規(guī)格限制
在傳統(tǒng)二層網(wǎng)絡(luò)環(huán)境下,數(shù)據(jù)報(bào)文是通過查詢MAC地址表進(jìn)行二層轉(zhuǎn)發(fā),而網(wǎng)絡(luò)設(shè)備MAC地址表的容量限制了虛擬機(jī)的數(shù)量。
針對(duì)上述問題,為了滿足云計(jì)算虛擬化的網(wǎng)絡(luò)能力需求,逐步演化出了Overlay網(wǎng)絡(luò)技術(shù)。
(2)Overlay網(wǎng)絡(luò)技術(shù)介紹
Overlay在網(wǎng)絡(luò)技術(shù)領(lǐng)域,是一種網(wǎng)絡(luò)架構(gòu)上疊加的虛擬化技術(shù)模式,其大體框架是對(duì)基礎(chǔ)網(wǎng)絡(luò)不進(jìn)行大規(guī)模修改的條件下,實(shí)現(xiàn)應(yīng)用在網(wǎng)絡(luò)上的承載,并能與其它網(wǎng)絡(luò)業(yè)務(wù)分離,并且以基于IP的基礎(chǔ)網(wǎng)絡(luò)技術(shù)為主。其架構(gòu)如下圖所示:

Overlay在網(wǎng)絡(luò)技術(shù)解決了如下問題:
a)針對(duì)虛擬機(jī)遷移范圍受網(wǎng)絡(luò)架構(gòu)限制
Overlay將以太報(bào)文封裝在IP報(bào)文之上,通過路由在網(wǎng)絡(luò)中傳輸。通過路由網(wǎng)絡(luò),虛擬機(jī)遷移不受網(wǎng)絡(luò)架構(gòu)限制。而且路由網(wǎng)絡(luò)具備良好的擴(kuò)展能力、故障自愈能力、負(fù)載均衡能力。
b)針對(duì)網(wǎng)絡(luò)隔離能力限制
Overlay技術(shù)擴(kuò)展了隔離標(biāo)識(shí)的位數(shù)(24比特),極大擴(kuò)展了隔離數(shù)量。
c)針對(duì)虛擬機(jī)規(guī)模受網(wǎng)絡(luò)規(guī)格限制
虛擬機(jī)發(fā)出的數(shù)據(jù)包封裝在IP數(shù)據(jù)包中,對(duì)網(wǎng)絡(luò)只表現(xiàn)為封裝后的網(wǎng)絡(luò)參數(shù)。因此,極大降低了大二層網(wǎng)絡(luò)對(duì)MAC地址規(guī)格的需求。
(3)Overlay網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)
VXLAN技術(shù)已經(jīng)成為目前Overlay技術(shù)事實(shí)上的標(biāo)準(zhǔn),VXLAN(Virtual eXtensible LAN,可擴(kuò)展虛擬局域網(wǎng)絡(luò))是基于IP網(wǎng)絡(luò)、采用"MAC in UDP"封裝形式的二層虛擬專用網(wǎng)絡(luò)技術(shù)。以VXLAN技術(shù)為基礎(chǔ)的Overlay網(wǎng)絡(luò)架構(gòu)模型如下:

名詞介紹:
VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端點(diǎn))VXLAN網(wǎng)絡(luò)的邊緣設(shè)備,是VXLAN隧道的起點(diǎn)和終點(diǎn),進(jìn)行VXLAN報(bào)文的封裝、解封裝等處理。VTEP既可以部署在網(wǎng)絡(luò)設(shè)備上(網(wǎng)絡(luò)接入交換機(jī)),也可以部署在vSwitch上(服務(wù)器上的虛擬交換機(jī))。
VNI(VXLAN Network Identifier,VXLAN 網(wǎng)絡(luò)標(biāo)識(shí)符)VNI是一種類似于VLAN ID的網(wǎng)絡(luò)標(biāo)識(shí),用來標(biāo)識(shí)VXLAN二層網(wǎng)絡(luò)。一個(gè)VNI代表一個(gè)VXLAN段,不同VXLAN段的虛擬機(jī)不能直接二層相互通信。
VXLAN隧道兩個(gè)VTEP之間建立的邏輯隧道,用于傳輸VXLAN報(bào)文。業(yè)務(wù)報(bào)文在進(jìn)入VXLAN隧道式進(jìn)行VXLAN、UDP、IP頭封裝,然后通過三層轉(zhuǎn)發(fā)透明地將報(bào)文轉(zhuǎn)發(fā)給遠(yuǎn)端VTEP,遠(yuǎn)端VTEP對(duì)報(bào)文進(jìn)行解封裝處理。
(4)OverLay網(wǎng)絡(luò)組網(wǎng)模型
目前主流的Overlay網(wǎng)絡(luò)組網(wǎng)模型主要有如下兩種:
a) 網(wǎng)絡(luò)Overlay:在這種模型下,所有Overlay設(shè)備都是網(wǎng)絡(luò)設(shè)備,服務(wù)器無需支持Overlay,這種模型能夠支持虛擬化服務(wù)器和物理服務(wù)器接入
b)主機(jī)Overlay:所有Overlay設(shè)備都是虛擬設(shè)備,適用服務(wù)器全虛擬化的場(chǎng)景,物理網(wǎng)絡(luò)無需改動(dòng)
(5)網(wǎng)絡(luò)Overlay網(wǎng)絡(luò)模型介紹
網(wǎng)絡(luò)Overlay的隧道封裝在物理交換機(jī)完成。這種Overlay的優(yōu)勢(shì)在于物理網(wǎng)絡(luò)設(shè)備性能轉(zhuǎn)發(fā)性能比較高,可以支持非虛擬化的物理服務(wù)器之間的組網(wǎng)互通。

網(wǎng)絡(luò)Overlay組網(wǎng)方案有以下優(yōu)點(diǎn):
a)更高的VXLAN報(bào)文封裝解封性能
b)通過Leaf交換機(jī)實(shí)現(xiàn)端口ACL策略,可以實(shí)現(xiàn)線速轉(zhuǎn)發(fā)
c)不依賴虛擬化平臺(tái),客戶可以有更高的組網(wǎng)自由度
(6)主機(jī)Overlay網(wǎng)絡(luò)模型介紹
主機(jī)Overlay將虛擬設(shè)備作為Overlay網(wǎng)絡(luò)的邊緣設(shè)備和網(wǎng)關(guān)設(shè)備,Overlay功能純粹由服務(wù)器來實(shí)現(xiàn),主機(jī)Overlay的網(wǎng)關(guān)和服務(wù)節(jié)點(diǎn)都可以由服務(wù)器承擔(dān),成本較低。

主機(jī)Overlay組網(wǎng)方案總體來說有以下優(yōu)點(diǎn):
a)適用于服務(wù)器虛擬化的場(chǎng)景,成本較低
b)vSwitch作為東西向IP網(wǎng)關(guān)時(shí),支持分布式網(wǎng)關(guān)功能,使虛機(jī)遷移后不需要重新配置網(wǎng)關(guān)等網(wǎng)絡(luò)參數(shù),部署簡單、靈活
為了使得VXLAN Overlay網(wǎng)絡(luò)更加簡化運(yùn)行管理,便于云的服務(wù)提供,各公司使用集中控制的模型,將分散在多個(gè)物理服務(wù)器上的vSwitch構(gòu)成一個(gè)大型的、虛擬化的分布式Overlay vSwitch,只要在分布式vSwitch范圍內(nèi),虛擬機(jī)在不同物理服務(wù)器上的遷移,便被視為在一個(gè)虛擬的設(shè)備上遷移,如此大大降低了云中資源的調(diào)度難度和復(fù)雜度。

02 RoH網(wǎng)絡(luò)架構(gòu)
(1)RoH網(wǎng)絡(luò)架構(gòu)介紹
為了構(gòu)建更具彈性的數(shù)據(jù)中心,許多公司利用Linux生態(tài)系統(tǒng)直接將路由協(xié)議運(yùn)行到其服務(wù)器上。這種網(wǎng)絡(luò)架構(gòu)通常稱為主機(jī)路由協(xié)議RoH(Routing On the Host)。

(2)RoH網(wǎng)絡(luò)架構(gòu)優(yōu)勢(shì)
簡化故障排除復(fù)雜度
在現(xiàn)代網(wǎng)絡(luò)中,對(duì)數(shù)據(jù)中心的二層網(wǎng)絡(luò)問題進(jìn)行故障排除一直是一項(xiàng)持續(xù)的挑戰(zhàn),因此,通過在主機(jī)上進(jìn)行路由,將第3層的覆蓋范圍進(jìn)一步擴(kuò)展到主機(jī)上,可以緩解下述許多問題:
a)Traceroute無效問題的解決,因?yàn)閠raceroute追蹤數(shù)據(jù)包訪問路徑時(shí)只會(huì)顯示三層節(jié)點(diǎn)設(shè)備,缺少二層節(jié)點(diǎn)設(shè)備的顯示,從而無法定位到路徑中經(jīng)過的二層網(wǎng)絡(luò)設(shè)備
b)二層組網(wǎng)環(huán)境下定位鏈路負(fù)載是否正常繁瑣,二層鏈路的負(fù)載是通過對(duì)源目IP及源目端口進(jìn)行Hash來實(shí)現(xiàn)鏈路負(fù)載,需要通過多個(gè)數(shù)據(jù)流才能檢測(cè)鏈路負(fù)載是否正常,而三層網(wǎng)絡(luò)環(huán)境下通過查看路由表就能直觀的判斷出鏈路負(fù)載是否正常
支持設(shè)備品牌的異構(gòu)
當(dāng)前數(shù)據(jù)中心網(wǎng)絡(luò)中,為了解決二層網(wǎng)絡(luò)鏈路的利用率經(jīng)常將一組同廠商的leaf交換機(jī)做堆疊,當(dāng)其中一臺(tái)出現(xiàn)故障只能換相同廠商的設(shè)備,而RoH的網(wǎng)絡(luò)架構(gòu)下通過路由協(xié)議實(shí)現(xiàn)了網(wǎng)絡(luò)的ECMP,不需對(duì)leaf交換機(jī)配置堆疊,當(dāng)設(shè)備出現(xiàn)故障不再需要使用相同廠商的設(shè)備來替換,理論上支持任意廠商的三層交換機(jī)替換,從而實(shí)現(xiàn)品牌異構(gòu)組網(wǎng)。

(3)RoH網(wǎng)絡(luò)組件介紹
目前RoH網(wǎng)絡(luò)架構(gòu)中服務(wù)器部署動(dòng)態(tài)路由常用的組件為Linux Brid,K8S容器網(wǎng)絡(luò)插件Calico就使用了Brid組件。Calico 中的 Bird是一個(gè)BGP client,它會(huì)主動(dòng)讀取felix在host上設(shè)置的路由信息,然后通過BGP協(xié)議宣告出去。

Calico在每個(gè)運(yùn)行Felix服務(wù)的節(jié)點(diǎn)上都部署一個(gè)BGP客戶端。 BGP客戶端的作用是讀取Felix程序?qū)懙絻?nèi)核中并在數(shù)據(jù)中心內(nèi)分發(fā)的路由信息 BGP客戶端負(fù)責(zé)執(zhí)行以下任務(wù):路由信息分發(fā),當(dāng)Felix將路由插入Linux內(nèi)核FIB時(shí),BGP客戶端將接收它們并將它們分發(fā)到集群中的其他工作節(jié)點(diǎn)。
03 網(wǎng)絡(luò)架構(gòu)比對(duì)總結(jié)

至此云計(jì)算主流的網(wǎng)絡(luò)架構(gòu)介紹完了,最后如果喜歡不要忘了點(diǎn)贊、關(guān)注與轉(zhuǎn)發(fā)哦!