李勇,劉學(xué)軍
(1. 中國電子科技集團(tuán)公司第七研究所,廣東 廣州 510310;2. 中國人民解放軍96658部隊205分隊,北京 100094)
基于OpenFlow的SDN網(wǎng)絡(luò)中路由機制研究
李勇1,劉學(xué)軍2
(1. 中國電子科技集團(tuán)公司第七研究所,廣東 廣州 510310;2. 中國人民解放軍96658部隊205分隊,北京 100094)
首先介紹了SDN技術(shù)產(chǎn)生的原因、技術(shù)架構(gòu)及其關(guān)鍵部件,然后分析了SDN網(wǎng)絡(luò)和現(xiàn)有網(wǎng)絡(luò)在路由互通,以及SDN網(wǎng)絡(luò)內(nèi)部如何最大限度利用網(wǎng)絡(luò)傳輸資源等問題,提出了虛擬路由器的思想,并給出了詳細(xì)的解決方案和主要實現(xiàn)過程。
SDN OpenFlow 控制器 虛擬路由器
全球化的競爭使得各企業(yè)需要不斷的進(jìn)行技術(shù)創(chuàng)新以提高自身的競爭力,網(wǎng)絡(luò)技術(shù)在這種環(huán)境下在不斷地演進(jìn)和轉(zhuǎn)變。從應(yīng)用的角度看,這些顯著地變化給用戶和中小企業(yè)帶來了極大的便利;但從網(wǎng)絡(luò)的角度看,傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)已經(jīng)很難勝任這種變化,急需一種新的網(wǎng)絡(luò)架構(gòu),一些大學(xué)和機構(gòu)于是開展了基于軟件化的開放便捷網(wǎng)絡(luò)技術(shù)研究,SDN[1]技術(shù)應(yīng)運而生。
在SDN網(wǎng)絡(luò)內(nèi),控制器通過鏈路層發(fā)現(xiàn)協(xié)議[2]收集各節(jié)點的網(wǎng)絡(luò)資源(包括網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)資源,即節(jié)點連接關(guān)系、帶寬、跳數(shù)、時延、誤碼率等信息),形成網(wǎng)絡(luò)拓?fù)湟晥D和資源視圖[3]。系統(tǒng)可基于網(wǎng)絡(luò)拓?fù)洌肈ijkstra算法[4],找出系統(tǒng)中最短路徑生成路由,但此路徑只是最短花費路徑,從源到目的僅僅一條。但是隨著用戶業(yè)務(wù)的逐漸豐富,業(yè)務(wù)對網(wǎng)絡(luò)資源的占用也越來越多,如何充分地利用網(wǎng)絡(luò)資源,在SDN網(wǎng)絡(luò)內(nèi)部選擇一條高效、可靠、滿足業(yè)務(wù)屬性(包括帶寬、時延和丟包率等)需求的路徑,從而提高網(wǎng)絡(luò)吞吐量和用戶服務(wù)質(zhì)量非常重要。另外,在SDN網(wǎng)絡(luò)中交換機不再解析任何協(xié)議,只做流表匹配和轉(zhuǎn)發(fā),其控制方式采用集中式,所有協(xié)議解析都需上到控制器上,流表下發(fā)的也是統(tǒng)一從控制器下發(fā),而目前的控制器只負(fù)責(zé)協(xié)議的解析和封裝,并且SDN內(nèi)部網(wǎng)絡(luò)采用集中式管控,內(nèi)部不再存在接口IP地址、路由協(xié)議等,因此當(dāng)SDN網(wǎng)絡(luò)需要和現(xiàn)有的IP網(wǎng)絡(luò)路由設(shè)備在協(xié)議層面進(jìn)行互通時,存在因為無法和標(biāo)準(zhǔn)的路由協(xié)議、MPLS標(biāo)簽轉(zhuǎn)發(fā)協(xié)議互通等問題,難以和現(xiàn)有網(wǎng)絡(luò)融合起來一起使用,這對處于過渡期的SDN技術(shù)是一種挑戰(zhàn)。各國也展開了對SDN技術(shù)的研究,但目前研究主要集中在網(wǎng)絡(luò)架構(gòu)、協(xié)議安全和網(wǎng)絡(luò)控制上,對SDN的和現(xiàn)有網(wǎng)絡(luò)的路由互通和SDN網(wǎng)絡(luò)內(nèi)部高效利用網(wǎng)絡(luò)資源實現(xiàn)多路徑轉(zhuǎn)發(fā)等技術(shù)的研究較少。
本文主要針對在SDN網(wǎng)絡(luò)中業(yè)務(wù)如何最大限度利用網(wǎng)絡(luò)傳輸資源等進(jìn)行傳輸以及基于OpenFlow[5]的SDN交換機和現(xiàn)有標(biāo)準(zhǔn)路由交換設(shè)備在路由如何互通等2個問題,提出了解決方案和關(guān)鍵技術(shù)點解決辦法,試驗驗證本文提出的方案不但能實現(xiàn)和現(xiàn)有網(wǎng)絡(luò)在路由層面的無縫互通,還提高了網(wǎng)絡(luò)資源利用率。
基于OpenFlow的SDN網(wǎng)絡(luò)主要分為2個部分[6]:OpenFlow交換機和SDN控制器。
SDN控制器完成的是控制面的工作,主要是通過收集到的整個網(wǎng)絡(luò)的拓?fù)浜唾Y源形成拓?fù)湟晥D和資源視圖,然后實現(xiàn)對OpenFlow交換機的管控功能??刂破魇且粋€獨立運行的軟件,是整個網(wǎng)絡(luò)邏輯控制的核心。從控制方式上可分為集中式控制和分布式控制,當(dāng)網(wǎng)絡(luò)規(guī)模大的時候,一個控制器無法完成,需要多個分布式控制器協(xié)同工作,通常有更高一層邏輯控制來統(tǒng)籌這些控制器的協(xié)同工作。
OpenFlow交換機主要完成轉(zhuǎn)發(fā)面的工作,即根據(jù)流表進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā),匹配流表表項執(zhí)行相應(yīng)轉(zhuǎn)發(fā)規(guī)則,進(jìn)行對應(yīng)的操作,匹配方式可為單級或多級流表[7],匹配項涵蓋了鏈路層、網(wǎng)絡(luò)層和傳輸層大部分標(biāo)識。由于交換機采取流表的匹配和行為轉(zhuǎn)發(fā)模式,因此在交換機內(nèi)不解析任何網(wǎng)絡(luò)協(xié)議,需解析的協(xié)議由OpenFlow協(xié)議送到控制器解析,網(wǎng)絡(luò)中也不再區(qū)分路由器和交換機,而是統(tǒng)稱為OpenFlow交換機?;贠penFlow的SDN網(wǎng)絡(luò)架構(gòu)如圖1所示:
圖1 基于OpenFlow的SDN網(wǎng)絡(luò)架構(gòu)
3.1 解決思路
關(guān)于引言中提出的2個問題,第一個問題是SDN網(wǎng)絡(luò)內(nèi)部的問題,第二個問題是SDN網(wǎng)絡(luò)和現(xiàn)有網(wǎng)絡(luò)互通的問題[8](包括路由和業(yè)務(wù))。為了解決上述2個問題,需要從內(nèi)外兩方面進(jìn)行解決。對外,需要每一個控制器所控制之下的OpenFlow交換機都在控制器上進(jìn)行映射,控制器上包含SDN內(nèi)部底層網(wǎng)絡(luò)映像,整個內(nèi)部網(wǎng)絡(luò)對外呈現(xiàn)可以虛擬成一個路由器,即虛擬路由器,SDN網(wǎng)絡(luò)通過這個虛擬的路由器對外提供路由功能;對內(nèi),SDN控制器的北向接口需要提供基于網(wǎng)絡(luò)拓?fù)浠蛸Y源的多徑算法,在網(wǎng)絡(luò)拓?fù)浜唾Y源的基礎(chǔ)上,找出適合業(yè)務(wù)傳送特性的路徑。
3.2 虛擬路由器
通過映射的方式,每個基于OpenFlow的SDN交換網(wǎng)絡(luò)在控制器上映射成一個虛擬路由器,交換網(wǎng)絡(luò)對外的接口映射成路由器的外部接口,通過接口適配的方式,把這些接口適配成操作系統(tǒng)IP層的標(biāo)準(zhǔn)接口,這樣通用的網(wǎng)絡(luò)層協(xié)議都能在IP層之上很好地運行。在虛擬路由器和OpenFlow網(wǎng)絡(luò)間建立一個虛擬的通道,這樣虛擬路由器上的網(wǎng)絡(luò)層協(xié)議通過適配的虛擬接口發(fā)送的所有網(wǎng)絡(luò)層協(xié)議報文都能通過虛擬的通道發(fā)送到OpenFlow交換網(wǎng)絡(luò)對應(yīng)的接口上,實現(xiàn)SDN網(wǎng)絡(luò)路由功能。
SDN虛擬路由器實現(xiàn)方案示意圖如圖2所示:
圖2 SDN虛擬路由器實現(xiàn)方案示意圖
虛擬路由器軟件架構(gòu)可以分為SDN控制器模塊、OpenFlow流表管理模塊、路徑算法模塊、協(xié)議處理模塊和內(nèi)核模塊。虛擬路由器對外呈現(xiàn)的接口即為OpenFlow交換網(wǎng)絡(luò)對外呈現(xiàn)的接口,虛擬路由器運行的標(biāo)準(zhǔn)協(xié)議通過這些真實的接口對外呈現(xiàn)。虛擬路由器軟件架構(gòu)如圖3所示。
各模塊主要完成的功能如下:
(1)SDN控制器模塊:對上提供標(biāo)準(zhǔn)的北向接口,把應(yīng)用的流表配置指令和應(yīng)用的報文數(shù)據(jù)轉(zhuǎn)通過RYU控制器模塊(由日本NTT公司設(shè)計研發(fā)的一款開源SDN控制器)進(jìn)行OpenFlow協(xié)議封裝,對下提供標(biāo)準(zhǔn)的南向接口,包括流表下發(fā)給各OpenFlow交換機執(zhí)行,OpenFlow協(xié)議的封裝和解析,標(biāo)準(zhǔn)TCP/IP協(xié)議報文的處理等。
圖3 虛擬路由器軟件架構(gòu)
(2)OpenFlow流表管理模塊:根據(jù)協(xié)議模塊生成的轉(zhuǎn)發(fā)和處理規(guī)則,生成流表表項。
(3)路徑算法模塊:根據(jù)拓?fù)湫畔⒑途W(wǎng)絡(luò)資源信息進(jìn)行多徑計算,計算出適合業(yè)務(wù)傳送的路徑,包括最少花費路徑、最小跳數(shù)、最大帶寬、最小時延等路徑。
(4)內(nèi)核模塊:完成OpenFlow交換網(wǎng)絡(luò)對外的接口在虛擬路由器的IP接口映射,此模塊對上層協(xié)議屏蔽底層實現(xiàn)方式,呈現(xiàn)標(biāo)準(zhǔn)的IP層和接口。在內(nèi)核的網(wǎng)絡(luò)驅(qū)動中增加虛擬接口驅(qū)動,并利用NETLINK通信機制[9]實現(xiàn)內(nèi)核收發(fā)IP報文和SDN控制器間的通信。
(5)協(xié)議模塊:完成標(biāo)準(zhǔn)的路由引擎和協(xié)議引擎的功能,包括單播路由協(xié)議、組播路由協(xié)議、MPLS協(xié)議等網(wǎng)絡(luò)層協(xié)議。
通過虛擬路由器里的協(xié)議和外部網(wǎng)絡(luò)的網(wǎng)絡(luò)協(xié)議進(jìn)行交互,虛擬路由器的網(wǎng)絡(luò)層形成相應(yīng)的轉(zhuǎn)發(fā)路由表,通過流表管理轉(zhuǎn)換成流表下發(fā)到OpenFlow執(zhí)行,從而實現(xiàn)和外部交換機的無縫互通。
3.3 路徑算法
路由的本質(zhì)是在已知的網(wǎng)絡(luò)拓?fù)渖线M(jìn)行路徑的計算,而目前的控制器只是根據(jù)SDN控制器北向接口對外呈現(xiàn)的網(wǎng)絡(luò)內(nèi)部拓?fù)湫畔?,進(jìn)而根據(jù)Dijkstra計算最短路徑,這是遠(yuǎn)遠(yuǎn)不夠的。多徑算法就是在已知的網(wǎng)絡(luò)拓?fù)湟晥D和網(wǎng)絡(luò)資源視圖上,根據(jù)業(yè)務(wù)的需求作為條件進(jìn)行路徑的計算,然后把計算的路徑通過軟件編程的方式[10]下發(fā)到轉(zhuǎn)發(fā)芯片執(zhí)行??梢园崖窂接嬎惴譃槿缦聝深悾?/p>
(1)最短路徑計算:計算的路徑和標(biāo)準(zhǔn)的路由協(xié)議計算(Dijkstra)的路徑一致,主要用于信令類報文的尋路;
(2)多徑計算:根據(jù)業(yè)務(wù)的對帶寬、跳數(shù)、誤碼率、時延等情況的需求采用多約束路徑算法計算合適路徑,能夠根據(jù)網(wǎng)絡(luò)流量分布和業(yè)務(wù)流量需求,觸發(fā)建立滿足業(yè)務(wù)特征、具備QoS保障的端到端連接。
本方案對最短路徑算法不再贅述,僅給出多徑算法過程。多路徑算法能夠根據(jù)網(wǎng)絡(luò)流量分布和業(yè)務(wù)流量需求,觸發(fā)建立滿足業(yè)務(wù)特征、具備QoS保障的端到端連接。
描述SDN網(wǎng)絡(luò)拓?fù)浜唾Y源情況,構(gòu)建網(wǎng)絡(luò)拓?fù)浜唾Y源表V(N,S),其中V表示拓?fù)浜途W(wǎng)絡(luò)視圖,即View;N表示所有節(jié)點集合,即Node;S表示所有節(jié)點所帶的邊(節(jié)點和其鄰居連線稱為“邊”)的集合,即Side?;陔p向鏈表的方式記錄節(jié)點集合和邊的集合V(N,S)。
對于業(yè)務(wù),業(yè)務(wù)控制信令需要向網(wǎng)絡(luò)申請業(yè)務(wù)傳送資源,網(wǎng)絡(luò)可根據(jù)當(dāng)前的V(N,S)計算出滿足業(yè)務(wù)特性需求條件的路徑。假設(shè)在t時刻,收到業(yè)務(wù)傳輸資源申請,則根據(jù)V(N,S)設(shè)任意節(jié)點對(Ni,Nj),其中(i,j)∈E,如果節(jié)點對(Ni,Nj)間存在通信鏈路(K為第K條路徑),則它們之間若有通信連接則狀態(tài)為1,否則為0。為第K條路徑的第n條邊,P為總的路徑數(shù),設(shè)定(Ni,Nj)節(jié)點對之間的路徑函數(shù)Fij(t)是節(jié)點Ni與Nj之間所有路徑邊變量的相乘之和,則Fij(t)可以用來表示SDN網(wǎng)絡(luò)中任意節(jié)點對(Ni,Nj)之間在t時間的可用路徑,則推導(dǎo)Fij(t)如公式(1)所示:
基于公式(1)可用于計算節(jié)點對之間的多徑通路,也可通過比較不同路徑的代價進(jìn)行路由優(yōu)選。實現(xiàn)步驟如下:
1)遍歷所有節(jié)點N,列出每個節(jié)點的鄰居連接邊S;
2)根據(jù)公式(1)列出所有路徑Fij(t);
3)進(jìn)行約束條件限定,不滿足條件的邊設(shè)置為0,去除所有不滿足約束條件的邊(單節(jié)點的帶寬、時延、誤碼率)所在路徑;
◆起點不是Ni節(jié)點;
◆終端不是Nj節(jié)點;
◆相鄰的邊Sm和Sm+1首尾相連;
◆重復(fù)出現(xiàn)的環(huán)路節(jié)點。
5)在Fij(t)剩余的中,計算路徑上總的帶寬、跳數(shù)、時延、誤碼率等;
6)去除不符合業(yè)務(wù)特性需求的路徑;
7)把剩余的路徑記錄在路徑地址記錄表中;
8)從路徑地址記錄表中,根據(jù)優(yōu)選策略約束條件選擇一條最優(yōu)路徑。
基于多徑算法計算的路徑有別于傳統(tǒng)的路由算法只計算一條最短路徑,這個路徑的計算是基于鏈路初始帶寬、跳數(shù)等因素,但沒有考慮網(wǎng)絡(luò)中業(yè)務(wù)分布情況和資源利用情況,資源利用率較低,而多徑算法是基于當(dāng)前網(wǎng)絡(luò)資源和業(yè)務(wù)需求情況,找到一個平衡點,為每個業(yè)務(wù)單獨計算一個路徑,更高效地利用了網(wǎng)絡(luò)資源,使得業(yè)務(wù)不至于都擁塞在個別鏈路上。
圖4 試驗驗證環(huán)境拓?fù)鋱D
試驗驗證環(huán)境拓?fù)鋱D如圖4所示,測試環(huán)境包括:
(1)3臺PC電腦:2臺電腦作為終端(PC1和PC2),一臺電腦作為OpenFlow控制器(PC3),PC3系統(tǒng)采用RedHat6.4系統(tǒng),運行的軟件為虛擬路由器軟件,包括RYU控制器軟件、Quagga協(xié)議軟件、多徑算法軟件等;
(2)4臺OpenFlow交換機:蘇州盛科公司生成的OpenFlow交換機,型號V350;
(3)2臺路由器:思科路由器,型號C3560;
(4)鏈路:OpenFlow交換網(wǎng)絡(luò)內(nèi)部交換機之間鏈路采用100M網(wǎng)口互連,其它接口采用1 000M接口互連。
測試1:按照圖4連接好設(shè)備,并照圖4標(biāo)識設(shè)置各個接口IP地址,虛擬路由器啟動虛擬接口eth0和eth1,并在這2個接口上運行OSPF路由協(xié)議,同時路由器R1和R2也啟動OSPF路由協(xié)議。查看R1路由表情況,在PC1上Ping電腦PC2。
試驗結(jié)果如下(R1路由表情況如圖5所示):
圖5 R1路由表情況
PC1上Ping電腦PC2情況如圖6所示:
圖6 PC1上Ping電腦PC2情況
測試2:P C 1和P C 2分別運行業(yè)務(wù)測試軟件LanTraffic,PC1為發(fā)送模式,PC2為接收模式,在PC1上運行2種不同的業(yè)務(wù),每種業(yè)務(wù)流量為100M,同時PC2上還運行流量監(jiān)控軟件NetPerSec,實時監(jiān)控PC2接收的業(yè)務(wù)流量。首先采用傳統(tǒng)的路由模式,即基于標(biāo)準(zhǔn)的OSPF協(xié)議計算的最短路徑路由,觀察此時接收側(cè)NetPerSec流量情況;過一段時間后啟動多徑算法模塊,繼續(xù)觀察接收側(cè)NetPerSec流量情況。
試驗結(jié)果如圖7所示:
圖7 試驗2交換容量圖
從試驗1的測試結(jié)果可以看出,運行虛擬路由器軟件的控制器,類屬此控制器的交換網(wǎng)絡(luò)具有標(biāo)準(zhǔn)的路由器轉(zhuǎn)發(fā)和路由功能,在路由協(xié)議上也能和標(biāo)準(zhǔn)路由器互通。從試驗2的測試結(jié)果可以看出,在SDN網(wǎng)絡(luò)中啟動多徑算法計算路徑后,網(wǎng)絡(luò)容量和資源利用率會增加,可提高網(wǎng)絡(luò)轉(zhuǎn)發(fā)效率和網(wǎng)絡(luò)吞吐量。
SDN技術(shù)是未來網(wǎng)絡(luò)技術(shù)發(fā)展的重點,無論是在數(shù)據(jù)中心或校園網(wǎng),還是在未來戰(zhàn)術(shù)通信骨干網(wǎng)中都具有很好的應(yīng)用前景。本文針對基于OpenFlow的SDN交換機和現(xiàn)有標(biāo)準(zhǔn)路由交換設(shè)備在路由互通上存在的問題,以及如何在SDN網(wǎng)絡(luò)的基礎(chǔ)上最大限度利用網(wǎng)絡(luò)資源,提高整網(wǎng)的交換容量等進(jìn)行分析,提出了虛擬路由器的思想,并在關(guān)鍵技術(shù)點,虛擬路由器和路徑算法上給出了解決方案,最后通過試驗驗證,證明該方案可行。
[1] Mckeown N, Anderson T, Balakrishnan H, et al. OpenFlow: Enabling innovation in campus networks[J]. ACM SIGCOMM Computer Communication Review, 2008,38(2): 69-74.
[2] Casado M, Koponen T, Moon T, et al. Rethinking packet forwarding hardware[A]. Proceedings of the 7thACM SIGCOMM Workshop on Hot Topics in Networks(HotNets)[C]. Calgary: ACM Press, 2008.
[3] 左青云,陳鳴,趙廣松,等. 基于OpenFlow的SDN技術(shù)研究[J]. 軟件學(xué)報, 2013(5): 1078-1097.
[4] ZELDOVICH N, BOYD-WICKIZER S, KOHLER E, et al. Making information flow explicit in HiStar[J]. Communications of the ACM, 2011,54(11): 93-101.
[5] 王濤,嚴(yán)飛,王慶飛,等. 基于軟件定義網(wǎng)絡(luò)的非集中式信息流控制系統(tǒng)-S-DIFC[J]. 計算機應(yīng)用, 2015(1): 62-67.
[6] FABIASFNN, SALVATH J J, CERQUEIRA E C, et al. A proposal management of the legacy network environment using OpenFlow control plane[C]. Proceedings of Network Operations and Management Symposium, 2012: 1143-1150.
[7] 陶軍. 基于OpenFlow的SDN技術(shù)研究[J]. 電信技術(shù), 2014(2): 62-65.
[8] 張衛(wèi)峰. 深度解析SDN——利益、戰(zhàn)略、技術(shù)、實踐[M]. 北京: 電子工業(yè)出版社, 2014: 174-197.
[9] Tam A, Xi K, Chao H J. Use of devolved controllers in data center networks[C]. In: Proc of the IEEE INFOCOM 2011 Workshop on Cloud Computing. Shanghai: IEEE Press, 2011: 596-601.
[10] J Moy. RFC 2328 OSPF Version 2[S]. 1998. ★
李勇:工程師,學(xué)士畢業(yè)于哈爾濱工業(yè)大學(xué)通信工程專業(yè),現(xiàn)任職于中國電子科技集團(tuán)公司第七研究所,主要從事通信系統(tǒng)和網(wǎng)絡(luò)的研究和總體設(shè)計工作。
劉學(xué)軍:高級工程師,現(xiàn)任職于中國人民解放軍96658部隊205分隊,主要從事通信系統(tǒng)和網(wǎng)絡(luò)的研究和頂層設(shè)計工作。
郭威:工程師,學(xué)士學(xué)位,現(xiàn)任職于中國聯(lián)合網(wǎng)絡(luò)通信有限公司河南省分公司網(wǎng)絡(luò)管理中心,從事移動網(wǎng)分組核心網(wǎng)維護(hù)工作。
龔建勇:高級工程師,碩士學(xué)位,現(xiàn)任職于中國聯(lián)合網(wǎng)絡(luò)通信有限公司河南省分公司網(wǎng)絡(luò)管理中心,從事移動網(wǎng)分組核心網(wǎng)維護(hù)工作。
Research on SDN Routing Mechanism Based on OpenFlow
LI Yong1, LIU Xue-jun2
(1. China Electronics Technology Group Corporation No.7 Research Institute, Guangzhou 510310, China; 2. 96658 PLA Troops 205 unit, Beijing 100094, China)
The origination of software defined network (SDN) technique, its technical architecture and key elements were introduced fi rstly in this paper. Then, several problems including routing interworking between SDN and existing networks, the full utilization of network resources in SDN were analyzed. Finally, the idea of virtual router was presented; the detailed scheme and its implementation process were described.
SDN OpenFlow controller virtual router
10.3969/j.issn.1006-1010.2015.07.011
TP393 文獻(xiàn)標(biāo)示碼:A
1006-1010(2015)07-0051-06
李勇,劉學(xué)軍. 基于OpenFlow的SDN網(wǎng)絡(luò)中路由機制研究[J]. 移動通信, 2015,39(7): 51-56.
2015-03-05
責(zé)任編輯:劉文竹 liuwenzhu@mbcom.cn