
隨著互聯(lián)網(wǎng)、云計(jì)算、網(wǎng)絡(luò)存儲(chǔ)、物聯(lián)網(wǎng)為代表的新應(yīng)用、新運(yùn)營(yíng)模式的興起,不僅帶來(lái)流量的快速增長(zhǎng),更使得用戶(hù)在建設(shè)多業(yè)務(wù)IP網(wǎng)絡(luò)的同時(shí),面臨更加復(fù)雜的運(yùn)維挑戰(zhàn)以及對(duì)業(yè)務(wù)進(jìn)行快速導(dǎo)入與部署的要求。本期智匯華云,為大家?guī)?lái)分布式路由及浮動(dòng)IP簡(jiǎn)介,幫助更多用戶(hù)簡(jiǎn)化運(yùn)維、挖掘網(wǎng)絡(luò)潛能、釋放網(wǎng)絡(luò)價(jià)值。
虛擬路由器是SDN中的跨網(wǎng)絡(luò)通信的解決方案。分布式路由(DVR,distributed virtual router)是相對(duì)于集中式路由而言。集中式路由是將虛擬路由器部署在網(wǎng)絡(luò)節(jié)點(diǎn),分布式路由器是將虛擬路由器部署在計(jì)算節(jié)點(diǎn)。分布式路由提供了一種高可靠,低時(shí)延,無(wú)性能瓶頸的部署方式。
浮動(dòng)IP是SDN中overlay網(wǎng)絡(luò)和外部網(wǎng)絡(luò)互通的一種方式。通過(guò)給虛擬機(jī)端口綁定一個(gè)外網(wǎng)IP,實(shí)現(xiàn)內(nèi)外雙向互訪。浮動(dòng)IP可以與虛擬機(jī)端口可以綁定和解綁,實(shí)現(xiàn)資源重復(fù)利用。
分布式路由
分布式路由的好處
每一個(gè)節(jié)點(diǎn)都可以進(jìn)出流量,如果單一節(jié)點(diǎn)故障,不影響其它節(jié)點(diǎn)流量轉(zhuǎn)發(fā)。當(dāng)故障節(jié)點(diǎn)恢復(fù)時(shí),流量可以自動(dòng)恢復(fù)。自愈性較強(qiáng)。
易擴(kuò)展,新加入的節(jié)點(diǎn)流量也是從本節(jié)點(diǎn)即可進(jìn)出,不會(huì)增加整個(gè)集群的負(fù)擔(dān)。
SDN控制器
分布式路由的轉(zhuǎn)發(fā)面是在各自計(jì)算節(jié)點(diǎn)來(lái)實(shí)現(xiàn),但為了減輕計(jì)算節(jié)點(diǎn)的負(fù)擔(dān),需要SDN控制器進(jìn)行統(tǒng)一的路由計(jì)算,對(duì)路由進(jìn)行集中式管理,并將計(jì)算結(jié)果下發(fā)路由到各個(gè)計(jì)算節(jié)點(diǎn)。此外,SDN其它高級(jí)功能都通過(guò)SDN控制器將控制平面相關(guān)數(shù)據(jù)轉(zhuǎn)換成vRouter可理解的數(shù)據(jù)面模型,下發(fā)到所有的計(jì)算節(jié)點(diǎn)。
每個(gè)計(jì)算節(jié)點(diǎn)內(nèi)部都有相應(yīng)的vRouter模塊處理相關(guān)的路由信息,維護(hù)相關(guān)的二三層轉(zhuǎn)發(fā)表項(xiàng)。這樣就極大程度抑制了ARP廣播報(bào)文對(duì)網(wǎng)絡(luò)的影響。
vRouter轉(zhuǎn)發(fā)模塊
轉(zhuǎn)發(fā)模塊承擔(dān)了接收控制器發(fā)來(lái)的路由信息,并根據(jù)路由信息維護(hù)本節(jié)點(diǎn)的相關(guān)轉(zhuǎn)發(fā)表項(xiàng)。提供對(duì)數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā)功能,并可以提供安全組,防火墻等一些基本的安全相關(guān)功能。

報(bào)文轉(zhuǎn)發(fā)流程
跨節(jié)點(diǎn):Black網(wǎng)絡(luò)中的虛機(jī),在進(jìn)行跨網(wǎng)絡(luò)訪問(wèn)Red網(wǎng)絡(luò)虛機(jī)時(shí),流量直接從本節(jié)點(diǎn)發(fā)出,經(jīng)過(guò)物理的IP網(wǎng)絡(luò)到達(dá)另一端的物理節(jié)點(diǎn),并上送到虛機(jī)。
同節(jié)點(diǎn):Black網(wǎng)絡(luò)中的虛機(jī),在訪問(wèn)同節(jié)點(diǎn)Red網(wǎng)絡(luò)的虛機(jī)時(shí),流量不會(huì)從本節(jié)點(diǎn)發(fā)出,而是直接在本節(jié)點(diǎn)內(nèi)部轉(zhuǎn)發(fā)到目的虛機(jī)。

浮動(dòng)IP
應(yīng)用場(chǎng)景
SDN解決方案中,將網(wǎng)絡(luò)分為了Overlay和Underlay網(wǎng)絡(luò)。Overlay的網(wǎng)絡(luò)采用封裝的方式用以同Underlay的網(wǎng)絡(luò)區(qū)分。Underlay網(wǎng)絡(luò)只負(fù)責(zé)提供IP Backbone的基本功能。
外部用戶(hù)如果想要訪問(wèn)Overlay的虛機(jī),需要通過(guò)給虛擬機(jī)端口關(guān)聯(lián)浮動(dòng)IP的方式才能進(jìn)行對(duì)內(nèi)部的訪問(wèn)。
另外,在使用負(fù)載均衡器服務(wù)的時(shí)候,由于業(yè)務(wù)大多是對(duì)外提供,也需要將LB的VIP綁定到一個(gè)Floating IP上,才能讓外部用戶(hù)訪問(wèn)到內(nèi)部的服務(wù)。

實(shí)現(xiàn)方式
在OpenStack的實(shí)現(xiàn)中,F(xiàn)loating IP需要將外網(wǎng)和私網(wǎng)關(guān)聯(lián)到同一個(gè)路由器中才能實(shí)現(xiàn)。即需要先創(chuàng)建外網(wǎng),內(nèi)網(wǎng),并創(chuàng)建路由器,然后將內(nèi)網(wǎng)關(guān)聯(lián)到路由器中,然后在將外網(wǎng)作為網(wǎng)關(guān)加入路由器。此時(shí)從外網(wǎng)分配出來(lái)的浮動(dòng)IP關(guān)聯(lián)到虛機(jī)后才能真正從外部訪問(wèn)虛擬機(jī)。
而SDN的實(shí)現(xiàn)并不需要這樣。只要?jiǎng)?chuàng)建外部網(wǎng)絡(luò)后,分配出浮動(dòng)IP并關(guān)聯(lián)到虛擬機(jī)端口即可。
此方式更為靈活,節(jié)省用戶(hù)IP占用。

由于采用Overlay網(wǎng)絡(luò),用戶(hù)的數(shù)據(jù)報(bào)文采用的是封裝模式,所以需要一個(gè)SDN gateway來(lái)對(duì)數(shù)據(jù)報(bào)文進(jìn)行解封裝,這樣才能跟外部網(wǎng)絡(luò)進(jìn)行直接通信。我們采用軟件gateway的方式來(lái)解耦對(duì)硬件的依賴(lài)。每一個(gè)計(jì)算節(jié)點(diǎn)都可以作為一個(gè)Gateway節(jié)點(diǎn)。

網(wǎng)絡(luò)流量從虛機(jī)流出后,直接在本地進(jìn)行轉(zhuǎn)發(fā),經(jīng)過(guò)SNAT轉(zhuǎn)換為浮動(dòng)IP,然后在經(jīng)由軟件gateway節(jié)點(diǎn)進(jìn)行解封裝后發(fā)出。
外部流量在訪問(wèn)浮動(dòng)IP時(shí),也會(huì)先經(jīng)過(guò)軟件gateway節(jié)點(diǎn),將流量進(jìn)行封裝,在經(jīng)過(guò)DNAT后發(fā)往虛機(jī)。






