博客專欄

EEPW首頁 > 博客 > 基于三層流量卸載方案的子網(wǎng)路由

基于三層流量卸載方案的子網(wǎng)路由

發(fā)布人:天翼云開發(fā)者 時(shí)間:2024-05-31 來源:工程師 發(fā)布文章

本文分享自天翼云開發(fā)者社區(qū)《基于三層流量卸載方案的子網(wǎng)路由》,作者:l****n

顧名思義,子網(wǎng)路由是子網(wǎng)級(jí)別的。如果子網(wǎng)關(guān)聯(lián)了子網(wǎng)路由,那么會(huì)優(yōu)先查子網(wǎng)路由表中的路由。通過使用子網(wǎng)路由,用戶的虛擬私有網(wǎng)絡(luò)將具備一些高/級(jí)的功能,比如在VPC中部署集中式防火墻等。


本文介紹的子網(wǎng)路由功能是基于三層流量卸載方案、通過OpenFlow流表方式來實(shí)現(xiàn)的。在介紹子網(wǎng)路由之前,先了解一下東西向三層流量卸載方案。如圖1所示,vm1、vm2和vm3分別屬于三個(gè)不同網(wǎng)段的子網(wǎng),同屬于一個(gè)VPC,即三層可通。在卸載之前,同VPC三層流量均需要通過租戶網(wǎng)關(guān)TGW拉通,導(dǎo)致TGW的流量壓力較大,無法滿足大客戶對(duì)于同VPC三層互訪流量的需求。


image.png

圖1 基本組網(wǎng)圖


卸載前同主機(jī)跨網(wǎng)段和跨主機(jī)跨網(wǎng)段互訪流量路徑分別如下圖2和圖3所示??梢园l(fā)現(xiàn),不管是同主機(jī)還是跨主機(jī),只要是跨網(wǎng)段都需要繞行租戶網(wǎng)關(guān)。因此,可以考慮對(duì)三層?xùn)|西向流量進(jìn)行卸載,使它們下沉至OVS,以減輕租戶網(wǎng)關(guān)的壓力。


image.png

圖2 同主機(jī)跨網(wǎng)段互訪(卸載前)

image.png

圖3 跨主機(jī)跨網(wǎng)段互訪(卸載前)


卸載后的三層互訪流量路徑分別如圖4和5所示。東西向三層流量不再需要繞行租戶網(wǎng)關(guān),同主機(jī)內(nèi)的流量在OVS內(nèi)部完成轉(zhuǎn)發(fā),跨主機(jī)的流量直接送至目的虛機(jī)所在宿主機(jī),從而實(shí)現(xiàn)流量的最短路徑轉(zhuǎn)發(fā)。

image.png

圖4 同主機(jī)跨網(wǎng)段互訪(卸載后)

image.png

圖5 跨主機(jī)跨網(wǎng)段互訪(卸載后)


跨網(wǎng)段路由轉(zhuǎn)發(fā)處理過程大致如下:當(dāng)路由器收到一個(gè)IP數(shù)據(jù)包,路由器就會(huì)找出數(shù)據(jù)包的三層包頭中的目的IP地址,然后拿著目的IP地址到自己的路由表中進(jìn)行查詢,找到“最匹配”的路由條目后,將數(shù)據(jù)包根據(jù)路由條目所指示的出接口或者下一跳IP轉(zhuǎn)發(fā)出去,這就是IP路由。(當(dāng)然路由器還會(huì)做一些額外的工作:將數(shù)據(jù)包的三層包頭的TTL減一,修改數(shù)據(jù)包的二層源MAC地址為自己出接口的MAC,修改數(shù)據(jù)包的二層目的MAC地址為下一跳的MAC)。


接下來回歸主題,介紹一下子網(wǎng)路由。VPC內(nèi)子網(wǎng)和路由表的關(guān)聯(lián)關(guān)系如圖6所示,一個(gè)子網(wǎng)只能關(guān)聯(lián)一個(gè)路由表,一個(gè)路由表(只能屬于一個(gè)VPC)可以被多個(gè)子網(wǎng)關(guān)聯(lián)。VPC1內(nèi)的子網(wǎng)不允許關(guān)聯(lián)屬于VPC2的路由表。


image.png

圖6 VPC內(nèi)子網(wǎng)和路由表的關(guān)聯(lián)關(guān)系


路由表由一系列具體的路由規(guī)則(條目)組成,按照類型可分為默認(rèn)路由表和自定義路由表。默認(rèn)路由表中包含用于子網(wǎng)之間互通,訪問公網(wǎng)的路由規(guī)則,以及VPN,專線和云間高速等在創(chuàng)建業(yè)務(wù)之后同步過來的路由,這些路由屬于系統(tǒng)路由,用戶不可以刪除。在刪除自定義路由表時(shí),如果路由表存在關(guān)聯(lián)的子網(wǎng)則不允許刪除。在刪除子網(wǎng)時(shí),如果子網(wǎng)存在關(guān)聯(lián)的自定義路由表,則不允許刪除;如果子網(wǎng)存在關(guān)聯(lián)的默認(rèn)路由表,則可以刪除。


image.png

圖7 默認(rèn)路由表和自定義路由表


如圖7所示,在創(chuàng)建VPC時(shí),自動(dòng)創(chuàng)建默認(rèn)路由表,一個(gè)VPC對(duì)應(yīng)一張默認(rèn)路由表。VPC內(nèi)新創(chuàng)建的子網(wǎng),自動(dòng)關(guān)聯(lián)所屬VPC內(nèi)的默認(rèn)路由表。在用戶創(chuàng)建了自定義路由表之后,可以將子網(wǎng)換綁到該VPC內(nèi)已經(jīng)創(chuàng)建的自定義路由表,以管理和控制子網(wǎng)內(nèi)虛機(jī)的(出方向)流量轉(zhuǎn)發(fā)路徑。每條路由規(guī)則對(duì)應(yīng)OVS上一條路由流表,流表的動(dòng)作會(huì)將源MAC更改為網(wǎng)關(guān)MAC,目的MAC更改為下一跳的MAC。

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。




相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉