国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件定義網(wǎng)絡(luò)三層路由策略研究*

2020-08-14 06:31黃徐祎李傳東顧憲鋒
通信技術(shù) 2020年8期
關(guān)鍵詞:交換機(jī)數(shù)據(jù)包路由

黃徐祎,李傳東,顧憲鋒

(中國(guó)電子科技集團(tuán)公司第28研究所,江蘇 南京 210007)

0 引言

IP通信技術(shù)是傳統(tǒng)網(wǎng)絡(luò)的核心技術(shù),其采用分布式控制架構(gòu),涵蓋眾多復(fù)雜的控制協(xié)議,擴(kuò)展性差,運(yùn)行維護(hù)困難,業(yè)務(wù)創(chuàng)新緩慢。傳統(tǒng)網(wǎng)絡(luò)雖然帶來(lái)了當(dāng)今網(wǎng)絡(luò)世界的繁榮,卻也越來(lái)越難以滿足當(dāng)前快速發(fā)展的需求。

軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN[1-2])誕生于美國(guó)斯坦福大學(xué)的Clean Slate課題,是一種新型的網(wǎng)絡(luò)架構(gòu)。軟件定義網(wǎng)絡(luò)的關(guān)鍵特征包括集中控制、轉(zhuǎn)控分離和開(kāi)放的接口,可以對(duì)網(wǎng)絡(luò)像軟件一樣進(jìn)行靈活編程[3]。SDN架構(gòu)如圖1所示,包括應(yīng)用層、控制層和轉(zhuǎn)發(fā)層??刂破魈幱诳刂茖?,通過(guò)南向接口請(qǐng)求轉(zhuǎn)發(fā)層的網(wǎng)絡(luò)設(shè)備生成流表和轉(zhuǎn)發(fā)數(shù)據(jù)包,并通過(guò)開(kāi)放的北向接口為應(yīng)用層的應(yīng)用提供服務(wù),從而使各類應(yīng)用通過(guò)可編程的方式控制整個(gè)網(wǎng)絡(luò)。其中北向接口還缺少業(yè)界公認(rèn)的標(biāo)準(zhǔn),南向接口以O(shè)NF(Open Networking Foundation,開(kāi)放網(wǎng)絡(luò)基金會(huì))組織倡導(dǎo)的OpenFlow[4-6]協(xié)議為代表。OpenFlow交換機(jī)使用基于安全連接的OpenFlow協(xié)議與SDN控制器通信,“流”是通信過(guò)程中數(shù)據(jù)分組特征(如MAC地址、IP地址、端口號(hào)等)的抽象,SDN控制器使用OpenFlow協(xié)議下發(fā)流表至OpenFlow交換機(jī),交換機(jī)按照流表對(duì)數(shù)據(jù)包進(jìn)行匹配和轉(zhuǎn)發(fā)。

圖1 軟件定義網(wǎng)絡(luò)架構(gòu)

自SDN問(wèn)世以來(lái),學(xué)術(shù)界進(jìn)行了大量研究和實(shí)踐,眾多企業(yè)也將SDN技術(shù)引入到實(shí)際應(yīng)用場(chǎng)景中并取得了相當(dāng)?shù)某尚А1疚难芯苛嗽谲浖x網(wǎng)絡(luò)架構(gòu)上進(jìn)行三層路由交換的方法,得益于架構(gòu)優(yōu)勢(shì),相對(duì)于傳統(tǒng)三層網(wǎng)絡(luò)大大簡(jiǎn)化且易于實(shí)現(xiàn),具有更好的性能優(yōu)化空間和功能拓展能力。

1 路由機(jī)制探究

傳統(tǒng)三層網(wǎng)絡(luò)采用分布式控制架構(gòu),通過(guò)路由協(xié)議交互來(lái)建立網(wǎng)絡(luò)拓?fù)浜陀?jì)算路由。為便于管理龐大的網(wǎng)絡(luò),網(wǎng)絡(luò)按區(qū)域劃分為自治系統(tǒng),域內(nèi)使用域內(nèi)路由協(xié)議(如OSPF),域間則使用BGP協(xié)議?;赟DN構(gòu)建三層網(wǎng)絡(luò)具有集中化控制[7]的優(yōu)勢(shì),SDN控制器擁有全局的網(wǎng)絡(luò)拓?fù)湟晥D,能以內(nèi)置的算法快速計(jì)算路徑并通過(guò)南向接口協(xié)議將流表下發(fā)至網(wǎng)絡(luò)設(shè)備,從而建立全網(wǎng)的路由。由于不需要部署各種路由協(xié)議,網(wǎng)絡(luò)得到了極大的簡(jiǎn)化。為達(dá)到全網(wǎng)拓?fù)湫畔⒌囊恢滦裕瑐鹘y(tǒng)分布式架構(gòu)網(wǎng)絡(luò)中的各節(jié)點(diǎn)之間同步路由信息要消耗大量帶寬且機(jī)制復(fù)雜,SDN集中控制方式只需中央控制器和各網(wǎng)絡(luò)交換設(shè)備同步信息,大大降低了帶寬消耗和計(jì)算復(fù)雜度。為滿足新的需求或提高性能,只需要對(duì)SDN控制器軟件進(jìn)行修改升級(jí),無(wú)需像傳統(tǒng)網(wǎng)絡(luò)那樣更新所有的路由交換設(shè)備,使基于SDN的三層網(wǎng)絡(luò)具備更好的靈活性和演進(jìn)能力。

要管控規(guī)模龐大的網(wǎng)絡(luò),邏輯上單一的控制器是無(wú)法滿足處理性能要求的。要保持集中控制的優(yōu)勢(shì)并分解巨大的處理壓力,可參照傳統(tǒng)網(wǎng)絡(luò)將整個(gè)網(wǎng)絡(luò)劃分成多個(gè)域,并為各域分配獨(dú)立的SDN控制器進(jìn)行管控,同時(shí)部署中央SDN控制器管理所有域SDN控制器。域控制器負(fù)責(zé)域內(nèi)路由的建立,中央控制器協(xié)同[8]域控制器建立域間的路由。

2 系統(tǒng)設(shè)計(jì)

網(wǎng)絡(luò)管控模式如圖2所示,系統(tǒng)使用兩類控制器:域控制器和中央控制器。域控制器負(fù)責(zé)建立域內(nèi)路由,保證域內(nèi)主機(jī)間的IP通信。中央控制器負(fù)責(zé)建立域間路由,使不同域內(nèi)的主機(jī)能相互通信。為實(shí)現(xiàn)清晰的分層管控,以及簡(jiǎn)化域控制器和中央控制器協(xié)作模式,域控制器將網(wǎng)絡(luò)域抽象成虛擬交換機(jī)受中央控制器管控,域間的互聯(lián)鏈路則被抽象為虛擬交換機(jī)[8]的互聯(lián)鏈路,中央控制器通過(guò)在虛擬交換機(jī)上安裝流表建立域邊界上的域間路由。

圖2 網(wǎng)絡(luò)管控模式

2.1 系統(tǒng)參數(shù)

當(dāng)域控制器虛擬成交換機(jī)連接中央控制器后,通過(guò)OpenFlow協(xié)議交互,中央控制器自動(dòng)獲得了虛擬交換機(jī)的id號(hào)、端口等信息,另外通過(guò)和所有虛擬交換機(jī)交互LLDP[9](Link Layer Discovery Protocol,鏈路層發(fā)現(xiàn)協(xié)議)獲取所有域的拓?fù)湫畔?。此外還需給中央控制器設(shè)置各虛擬交換機(jī)所屬三層網(wǎng)段地址,用于設(shè)置域間路由。以上中央控制器所需的參數(shù)信息如表1所示,其中自動(dòng)獲取的信息來(lái)自O(shè)penFlow協(xié)議或LLDP協(xié)議,人工設(shè)置的參數(shù)則通過(guò)編程接口配置。

同樣,域控制器通過(guò)OpenFlow協(xié)議自動(dòng)獲得物理交換機(jī)的id號(hào)、端口等信息,通過(guò)LLDP獲取本域的拓?fù)湫畔?。另外?dāng)主機(jī)請(qǐng)求IP通信時(shí),可通過(guò)OpenFlow協(xié)議的packet-in消息獲取主機(jī)的MAC地址、IP地址以及所連的交換機(jī)端口。當(dāng)域控制器作為控制器管控三層域時(shí),需設(shè)置各三層域的網(wǎng)段地址、網(wǎng)關(guān)地址和管理的交換機(jī)。同時(shí)域控制器作為虛擬交換機(jī)運(yùn)行,可自動(dòng)生成唯一的虛擬交換機(jī)id號(hào),并設(shè)置底層物理交換機(jī)端口和虛擬端口的映射。以上域控制器所需的參數(shù)信息如表2所示。

表1 中央控制器參數(shù)

表2 域控制器參數(shù)

Mininet[10]虛擬化網(wǎng)絡(luò)平臺(tái)可以模擬SDN的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),可對(duì)OpenFlow等協(xié)議進(jìn)行測(cè)試和驗(yàn)證,幾乎可以無(wú)縫遷移到真實(shí)的硬件環(huán)境中。為便于描述,設(shè)定系統(tǒng)連接關(guān)系用Mininet按圖3所示搭建。網(wǎng)絡(luò)分3個(gè)三層域,域2又分兩個(gè)子域。

圖3 連接關(guān)系

主機(jī)都連至所屬交換機(jī)端口1,此類型端口稱為交換機(jī)的訪問(wèn)端口,主機(jī)具體網(wǎng)絡(luò)信息如表3所示。

表3 主機(jī)信息

2.2 流表設(shè)計(jì)

從OpenFlow1.1開(kāi)始設(shè)計(jì)了多級(jí)流表[11]而不是之前就1張表,因?yàn)閷⑵ヅ溥^(guò)程分解成多個(gè)步驟,以流水線形式處理,從而降低了流表記錄數(shù)量,提高了資源利用率。另外設(shè)計(jì)多級(jí)流表也便于對(duì)流表進(jìn)行功能劃分和管理。OpenFlow交換機(jī)中的表從0開(kāi)始編號(hào),數(shù)據(jù)包進(jìn)入交換機(jī)后從流表0開(kāi)始依次匹配,依據(jù)指令進(jìn)行操作。

系統(tǒng)設(shè)計(jì)了三張表:表0為分類表,用于根據(jù)數(shù)據(jù)包類型進(jìn)行分類處理;表1為二層表,用于匹配在二層域轉(zhuǎn)發(fā)的數(shù)據(jù)包;表2為三層表,用于匹配三層轉(zhuǎn)發(fā)的數(shù)據(jù)包。流表對(duì)數(shù)據(jù)包的匹配流程如圖4所示。

圖4 多級(jí)流表匹配流程

2.3 域間路由

域控制器模擬的虛擬交換機(jī)和中央控制器連接的建立遵循OpenFlow協(xié)議握手過(guò)程,狀態(tài)機(jī)如圖5所示。

當(dāng)完成一系列協(xié)議交互處于ACTIVE狀態(tài)后,中央控制器通過(guò)packet-out消息要求所有虛擬交換機(jī)將封裝有設(shè)備標(biāo)識(shí)、接口標(biāo)識(shí)等信息的LLDP數(shù)據(jù)包從所有端口發(fā)送出去,相鄰虛擬交換機(jī)收到后將通過(guò)packet-in消息將數(shù)據(jù)包轉(zhuǎn)發(fā)至中央控制器,然后通過(guò)分析創(chuàng)建相鄰虛擬交換機(jī)之間的鏈接關(guān)系,從而建立域網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。

網(wǎng)絡(luò)拓?fù)浣ǔ珊?,中央控制器?jì)算域間的路徑,并結(jié)合域三層網(wǎng)絡(luò)地址進(jìn)行歸納,最后生成流表下發(fā)至虛擬交換機(jī)。流表指定了域間路由規(guī)則,包括匹配的網(wǎng)段地址和轉(zhuǎn)發(fā)數(shù)據(jù)包的端口。域控制器依據(jù)映射關(guān)系在對(duì)應(yīng)的物理交換機(jī)安裝流表,至此完成了域邊界上域間路由的建立。域控制器還必須在域內(nèi)其它物理交換機(jī)上安裝相應(yīng)流表以建立到本域出口的路由,例如在交換機(jī)2上的流表是若目的網(wǎng)段為10.2.0.0/16或10.3.0.0/16,則從端口3轉(zhuǎn)發(fā)。但是交換機(jī)1沒(méi)有相關(guān)流表,主機(jī)1無(wú)法和域2和域3的主機(jī)通信,因此域控制器需依據(jù)域內(nèi)拓?fù)溆?jì)算路徑并在交換機(jī)1上安裝流表,當(dāng)數(shù)據(jù)幀目的網(wǎng)段為10.2.0.0/16或10.3.0.0/16時(shí),則從端口2轉(zhuǎn)發(fā)。各交換機(jī)域間流表如表4所示。

圖5 域控制器握手流程

表4 交換機(jī)域間流信息

2.4 域內(nèi)路由

域內(nèi)路由包括子域內(nèi)部二層路由和子域間三層路由,域內(nèi)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)也需要域控制器利用LLDP探測(cè)。

2.4.1 二層通信

在傳統(tǒng)二層網(wǎng)絡(luò)中,主機(jī)間IP通信需通過(guò)ARP協(xié)議先獲取對(duì)方MAC地址:源主機(jī)發(fā)送的ARP請(qǐng)求包在網(wǎng)絡(luò)中廣播,目的主機(jī)收到ARP請(qǐng)求后返回ARP響應(yīng)包至源主機(jī),至此通信雙方都學(xué)習(xí)到了對(duì)方的MAC地址,之后主機(jī)間交換的IP包中被填入對(duì)方MAC地址和IP地址,由交換機(jī)在依據(jù)生成樹(shù)協(xié)議STP[1213](Spanning Tree Protocol)計(jì)算的路徑上傳輸。

軟件定義網(wǎng)絡(luò)二層交換須符合以上主機(jī)層面的通信過(guò)程,網(wǎng)絡(luò)層通信流程以主機(jī)3和5通信為例設(shè)計(jì)如下:

(1)主機(jī)3發(fā)出的ARP請(qǐng)求包由交換機(jī)3封裝入 packet-in消息發(fā)送給域控制器2處理;

(2)域控制器2將該ARP請(qǐng)求包在子域1內(nèi)廣播;

(3)主機(jī)5收到ARP請(qǐng)求后返回包含本機(jī)MAC地址的ARP響應(yīng)包,該包由交換機(jī)5封裝入packet-in消息發(fā)送給域控制器2處理;

(4)域控制器2依據(jù)拓?fù)湫畔⑾掳l(fā)流表至交換機(jī)3和5建立主機(jī)3和5雙向路徑,并把該ARP響應(yīng)包通過(guò)交換機(jī)1發(fā)送至主機(jī)3。

(5)后續(xù)主機(jī)3和5可以互發(fā)IP包進(jìn)行通信。

交換機(jī)3和5上和二層通信相關(guān)的流表如表5所示(表號(hào)0的條目從上往下的優(yōu)先級(jí)是從高到低)。

表5 交換機(jī)二層流信息

2.4.2 三層通信

當(dāng)域控制器和域內(nèi)交換機(jī)建立連接后,通過(guò)LLDP探測(cè)獲取本域網(wǎng)絡(luò)拓?fù)?。域控制器?jì)算子域間的路徑,并依據(jù)給各子域設(shè)定的網(wǎng)絡(luò)地址下發(fā)流表至交換機(jī)建立子域間的三層路由,如表6所示。

表6 交換機(jī)子域間三層流信息

對(duì)于三層通信,主機(jī)發(fā)現(xiàn)目的IP地址與自己不在同一網(wǎng)段內(nèi),須先通過(guò)ARP協(xié)議解析網(wǎng)關(guān)的MAC地址,然后將IP數(shù)據(jù)包發(fā)至網(wǎng)關(guān)進(jìn)行轉(zhuǎn)發(fā),因此域控制器需實(shí)現(xiàn)網(wǎng)關(guān)的功能。

以主機(jī)3和4跨三層域進(jìn)行通信為例,設(shè)計(jì)三層通信流程如下:

(1)主機(jī)3發(fā)出對(duì)網(wǎng)關(guān)地址10.2.1.1的ARP請(qǐng)求,由交換機(jī)3封裝入 packet-in消息發(fā)送至域控制器2處理;

(2)域控制器2構(gòu)造包含交換機(jī)3端口1(該端口與主機(jī)3直連)的MAC地址的ARP響應(yīng)包,發(fā)送至主機(jī)3;

(3)主機(jī)3收到ARP響應(yīng)后,構(gòu)造IP數(shù)據(jù)包,其中源和目的MAC地址分別為主機(jī)3和網(wǎng)關(guān)的MAC,源和目的IP地址分別為主機(jī)3和主機(jī)4;

(4)交換機(jī)3發(fā)現(xiàn)目的IP地址為主機(jī)4的包和子域間流表匹配,將該IP包經(jīng)端口3發(fā)送至交換機(jī)4;

(5)交換機(jī)4沒(méi)有匹配目的IP為主機(jī)4的流表,將緩存這個(gè)數(shù)據(jù)包,并封裝入 packet-in消息發(fā)送至域控制器2處理;

(6)域控制器2構(gòu)造對(duì)主機(jī)4的IP的ARP請(qǐng)求,在交換機(jī)4的所有訪問(wèn)端口(與主機(jī)直連)泛洪;

(7)主機(jī)4收到ARP請(qǐng)求后返回包含本機(jī)MAC地址的ARP響應(yīng)包,該包由交換機(jī)4封裝入packet-in消息發(fā)送給域控制器2處理;

(8)域控制器2下發(fā)流表至交換機(jī)4建立從子域邊界端口2到端口1上主機(jī)4的通路,并將之前緩存的來(lái)自主機(jī)3的IP包由交換機(jī)4轉(zhuǎn)發(fā)至主機(jī)4;

(9)主機(jī)4發(fā)送IP包給主機(jī)3的過(guò)程和以上過(guò)程類似;

(10)當(dāng)主機(jī)3收到主機(jī)4的IP包后,雙向路由完全建立,后續(xù)主機(jī)3和4可以互發(fā)IP包進(jìn)行通信。

以上流程如圖6所示。

最后形成的滿足主機(jī)3和4通信的流表如表7所示。

圖6 三層通信流程

表7 交換機(jī)子域流信息

2.5 域間通信

域間三層通信建立在域間路由和域內(nèi)路由機(jī)制上,其通信流程和域內(nèi)三層通信類似但有所不同,以主機(jī)3和2通信為例,其與主機(jī)3和4的通信流程不同點(diǎn)如下:

當(dāng)主機(jī)3發(fā)送IP包到主機(jī)2時(shí),交換機(jī)3匹配的是由中央控制器下發(fā)的域間流表,不是子域間流表;

交換機(jī)2收到目的主機(jī)2的包將由域控制器1處理,不是主機(jī)3所在域的域控制器2。

3 結(jié)語(yǔ)

利用SDN集中控制的特點(diǎn)提出了SDN三層網(wǎng)絡(luò)的路由策略,通過(guò)把網(wǎng)絡(luò)劃分為多個(gè)區(qū)域并抽象成虛擬交換機(jī)受中央控制器管控,這種分布式和集中式相結(jié)合的控制平面不僅分解了控制器的處理壓力,而且保留了集中控制的優(yōu)勢(shì)和全局的視圖,降低了管控復(fù)雜度,具有很好的擴(kuò)展能力。開(kāi)放的SDN使學(xué)術(shù)界和產(chǎn)業(yè)界充分加入到研究和創(chuàng)新行列中,促進(jìn)傳統(tǒng)網(wǎng)絡(luò)向新型網(wǎng)絡(luò)架構(gòu)快速演進(jìn)和發(fā)展。

猜你喜歡
交換機(jī)數(shù)據(jù)包路由
面向未來(lái)網(wǎng)絡(luò)的白盒交換機(jī)體系綜述
二維隱蔽時(shí)間信道構(gòu)建的研究*
民用飛機(jī)飛行模擬機(jī)數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
局域網(wǎng)交換機(jī)管理IP的規(guī)劃與配置方案的探討
數(shù)據(jù)通信網(wǎng)VRRP與MSTP聯(lián)動(dòng)引發(fā)的次優(yōu)路由問(wèn)題分析
路由選擇技術(shù)對(duì)比
更換匯聚交換機(jī)遇到的問(wèn)題
基于地鐵交換機(jī)電源設(shè)計(jì)思考
路由重分發(fā)時(shí)需要考慮的問(wèn)題
C#串口高效可靠的接收方案設(shè)計(jì)