魏亞清,王慧斌,田 瑋,田小燕
(1.邢臺(tái)學(xué)院數(shù)學(xué)與信息技術(shù)學(xué)院,河北邢臺(tái) 054001; 2.天津科技大學(xué)機(jī)械工程學(xué)院,天津 300222)
一種基于SDN的分布式ARP代理方法
魏亞清1,王慧斌1,田 瑋2,田小燕1
(1.邢臺(tái)學(xué)院數(shù)學(xué)與信息技術(shù)學(xué)院,河北邢臺(tái) 054001; 2.天津科技大學(xué)機(jī)械工程學(xué)院,天津 300222)
SDN(軟件定義網(wǎng)絡(luò))有效地簡(jiǎn)化了網(wǎng)絡(luò)的配置與管理,使網(wǎng)絡(luò)的革新更加快捷。利用控制器作為ARP(地址解析協(xié)議)代理,能顯著地減小數(shù)據(jù)層面的廣播流量,緩解因廣播帶來(lái)的帶寬資源浪費(fèi)。然而,控制器多采用被動(dòng)的方式下發(fā)流表,在處理大量的廣播包時(shí)會(huì)產(chǎn)生極大的擴(kuò)展性問(wèn)題。文章提出了一種基于SDN的分布式ARP代理方法,將多個(gè)局域網(wǎng)的網(wǎng)關(guān)作為ARP代理,各局域網(wǎng)內(nèi)部的ARP請(qǐng)求報(bào)文以單播的方式轉(zhuǎn)發(fā)到其網(wǎng)關(guān)做統(tǒng)一處理。實(shí)驗(yàn)結(jié)果表明,該方法不僅大大減少了網(wǎng)絡(luò)中的廣播流量和ARP請(qǐng)求響應(yīng)延時(shí),而且極大地緩解了SDN控制器的負(fù)載,提高了SDN的擴(kuò)展性。
軟件定義網(wǎng)絡(luò);廣播;地址解析協(xié)議代理
近年來(lái),SDN(軟件定義網(wǎng)絡(luò))已成為網(wǎng)絡(luò)領(lǐng)域的研究熱點(diǎn),得到了工業(yè)界的積極參與和推進(jìn),尤其是在云計(jì)算和數(shù)據(jù)中心環(huán)境中被廣泛地部署與應(yīng)用,如Google在世界各地的數(shù)據(jù)中心骨干網(wǎng)上已采用SDN技術(shù)來(lái)解決數(shù)據(jù)中心間的流量調(diào)度問(wèn)題[1]。
有效管理網(wǎng)絡(luò)中的廣播流量是SDN最典型的應(yīng)用之一。在文獻(xiàn)[2]中,作者提出在SDN與傳統(tǒng)網(wǎng)絡(luò)的混雜場(chǎng)景下,利用SDN集中管控的優(yōu)勢(shì),實(shí)時(shí)感知主機(jī)的地址變化與網(wǎng)絡(luò)故障,響應(yīng)網(wǎng)絡(luò)的ARP(地址解析協(xié)議)請(qǐng)求。然而現(xiàn)有基于SDN的集中式ARP代理方法存在若干問(wèn)題。采用SDN控制器作為ARP代理,極易使SDN控制器成為整個(gè)網(wǎng)絡(luò)的瓶頸,甚至導(dǎo)致全網(wǎng)崩潰,極大地限制了SDN的擴(kuò)展性[3]。同時(shí),采用SDN控制器作為廣播請(qǐng)求的代理并不一定能夠降低請(qǐng)求延時(shí),反而可能增大延時(shí)。
為了解決上述問(wèn)題,本文提出一種基于SDN的分布式ARP代理方法(簡(jiǎn)稱Gater)。該方法利用局域網(wǎng)的網(wǎng)關(guān)作為ARP代理,網(wǎng)關(guān)負(fù)責(zé)對(duì)其局域網(wǎng)內(nèi)部的廣播請(qǐng)求作出應(yīng)答。本文所提的代理架構(gòu),解決了過(guò)去基于集中式控制器代理的難擴(kuò)展、延時(shí)大的問(wèn)題。在ARP代理中,利用SDN框架,通過(guò)預(yù)先下發(fā)Open Flow[4]流表的方式將局域網(wǎng)中的廣播流量改為單播流量并轉(zhuǎn)發(fā)到網(wǎng)關(guān),從而實(shí)現(xiàn)局域網(wǎng)網(wǎng)關(guān)對(duì)ARP請(qǐng)求的統(tǒng)一應(yīng)答,并提出了如何在分布式的網(wǎng)關(guān)中維護(hù)和更新ARP表項(xiàng)。
1.1 架構(gòu)設(shè)計(jì)
本文利用網(wǎng)關(guān)作為ARP代理,每個(gè)網(wǎng)關(guān)維護(hù)與更新本局域網(wǎng)內(nèi)部的ARP映射表,同時(shí)利用SDN控制器預(yù)先下發(fā)流表控制局域網(wǎng)內(nèi)部的交換機(jī),使其將ARP請(qǐng)求報(bào)文通過(guò)單播的方式轉(zhuǎn)發(fā)到網(wǎng)關(guān),網(wǎng)關(guān)進(jìn)行統(tǒng)一的ARP應(yīng)答[5]。系統(tǒng)架構(gòu)圖如
圖1所示。
圖1 系統(tǒng)架構(gòu)圖
1.2 網(wǎng)關(guān)代理的ARP信息更新
網(wǎng)關(guān)的ARP學(xué)習(xí)與更新主要有以下3種方式:首先,網(wǎng)關(guān)是局域網(wǎng)與外界三層IP網(wǎng)絡(luò)的連接入口,匯聚了局域網(wǎng)內(nèi)部的出入流量。其次,對(duì)不同的局域網(wǎng)建立不同的ARP映射表,保存各自域內(nèi)的映射關(guān)系。當(dāng)映射表有更新時(shí),將更新的IP-MAC (IP上的媒體訪問(wèn)控制)映射以Packet_out的方式發(fā)送到網(wǎng)關(guān)中,作為網(wǎng)關(guān)自主學(xué)習(xí)ARP映射的補(bǔ)充。最后,網(wǎng)絡(luò)中可能存在一些服務(wù)器不主動(dòng)向外發(fā)送流量的情況,因而無(wú)法使網(wǎng)關(guān)或SDN控制器學(xué)習(xí)到其IP-MAC映射。
1.3 ARP報(bào)文的路由算法
本文采用Dijkstra算法[6]一次計(jì)算出所有主機(jī)的路徑,該算法只需計(jì)算一次即可,只有當(dāng)網(wǎng)絡(luò)發(fā)生變化時(shí)才需要進(jìn)行重新計(jì)算。ARP請(qǐng)求報(bào)文路由算法的輸入為局域網(wǎng)拓?fù)浜途W(wǎng)關(guān)節(jié)點(diǎn),輸出為局域網(wǎng)中各主機(jī)到網(wǎng)關(guān)的路由。具體算法如下:
圖2所示為ARP請(qǐng)求報(bào)文流表,圖中顯示路由算法計(jì)算出的該交換機(jī)到網(wǎng)關(guān)的出口為端口2,生成的流表如圖中表格所示。當(dāng)數(shù)據(jù)報(bào)文到達(dá)交換機(jī)時(shí),通過(guò)協(xié)議號(hào)和目的MAC可以首先識(shí)別報(bào)文是否為ARP請(qǐng)求,如果命中,則直接將其轉(zhuǎn)發(fā)到通向網(wǎng)關(guān)的接口,網(wǎng)關(guān)通過(guò)查表進(jìn)行響應(yīng)。ARP的響應(yīng)報(bào)文雖然協(xié)議號(hào)為ARP,但是目的MAC地址為主機(jī)地址,因此ARP回復(fù)包在返回主機(jī)時(shí)不會(huì)匹配預(yù)先設(shè)置的ARP表項(xiàng),而是通過(guò)正常的目的IP和MAC進(jìn)行轉(zhuǎn)發(fā),最終到達(dá)請(qǐng)求主機(jī)。
圖2 ARP請(qǐng)求報(bào)文流表
為了驗(yàn)證Gater算法的性能,本文基于Mininet[7]實(shí)驗(yàn)平臺(tái)進(jìn)行仿真實(shí)驗(yàn)。
2.1 實(shí)驗(yàn)環(huán)境部署
采用Mininet作為仿真實(shí)驗(yàn)平臺(tái),將開(kāi)源的基于Python的RYU作為SDN控制器,負(fù)責(zé)控制Mininet平臺(tái)中的Open Flow交換機(jī),RYU控制器獨(dú)立運(yùn)行在一臺(tái)物理服務(wù)器中,實(shí)驗(yàn)拓?fù)淙鐖D3所示。
圖3 實(shí)驗(yàn)拓?fù)?/p>
本文在Mininet平臺(tái)上分別采用了FSDM和Learning Switch[8]算法作為本實(shí)驗(yàn)的對(duì)比算法。實(shí)驗(yàn)的性能指標(biāo)包括數(shù)據(jù)層流量負(fù)載、請(qǐng)求延時(shí)、控制器負(fù)載(包括流量、內(nèi)存使用率)和網(wǎng)關(guān)負(fù)載(包括流量、內(nèi)存使用率)。
2.2 實(shí)驗(yàn)結(jié)果分析
(1)數(shù)據(jù)層ARP廣播流量實(shí)驗(yàn)
針對(duì)不同網(wǎng)絡(luò)規(guī)模(主機(jī)數(shù)量),對(duì)SDN數(shù)據(jù)層面的ARP廣播流量比例進(jìn)行了監(jiān)測(cè),數(shù)據(jù)層流量圖如圖4所示。從圖中可以看出,Learning Switch算法的ARP廣播流量隨網(wǎng)絡(luò)中主機(jī)數(shù)量的增多而快速增大,由3.1%增長(zhǎng)到11.6%,造成了巨大的帶寬浪費(fèi)。而Gater算法所產(chǎn)生的ARP廣播流量非常少,僅占網(wǎng)絡(luò)總流量的3%以下,且隨著主機(jī)數(shù)量的增多,網(wǎng)絡(luò)中的ARP廣播包流量比例增長(zhǎng)也非常少。
圖4 數(shù)據(jù)層流量圖
(2)ARP請(qǐng)求響應(yīng)延時(shí)實(shí)驗(yàn)
3種算法的平均ARP響應(yīng)的延時(shí)如圖5所示。Learning Switch算法采用廣播的方法來(lái)獲得響應(yīng),因此其ARP延時(shí)請(qǐng)求較大,達(dá)2 ms左右,但隨著網(wǎng)絡(luò)規(guī)模的增大,其延時(shí)基本不變。隨著網(wǎng)絡(luò)規(guī)模的增大,FSDM算法中SDN控制器負(fù)載大大增加,其存儲(chǔ)的ARP映射表規(guī)模增大從而導(dǎo)致查表速度降低,使得延時(shí)也隨之增大。而Gater算法由于采用局域網(wǎng)本地ARP代理方式,傳輸延時(shí)較小,且增長(zhǎng)非常緩慢。
圖5 3種算法平均ARP響應(yīng)的延時(shí)圖
(3)控制器負(fù)載實(shí)驗(yàn)
SDN控制器是SDN的核心,圖6和圖7所示分別為控制器的流量負(fù)載和內(nèi)存使用率。在本實(shí)驗(yàn)中只針對(duì)ARP引起的流量進(jìn)行分析。由圖6可以看出,隨著網(wǎng)絡(luò)規(guī)模的增大,Learning Switch和FSDM算法在控制器中的ARP流量明顯增長(zhǎng)。而Gater算法由于其ARP請(qǐng)求報(bào)文需要被轉(zhuǎn)發(fā)到網(wǎng)關(guān),并且控制器已經(jīng)預(yù)先下發(fā)了每臺(tái)交換機(jī)到達(dá)網(wǎng)關(guān)的流表項(xiàng),因此幾乎不用與控制器通信即可完成ARP響應(yīng)。
由圖7可知,Gater算法只在控制器中緩存最新的沒(méi)有被網(wǎng)關(guān)同步的ARP映射表,因此只占0.3%左右的內(nèi)存。而FSDM算法在控制器中緩存了整個(gè)網(wǎng)絡(luò)中所有主機(jī)的ARP映射表,因此,隨著網(wǎng)絡(luò)規(guī)模的增大,控制器中ARP緩存表所占的內(nèi)存空間也隨之增大,導(dǎo)致SDN的擴(kuò)展性問(wèn)題。
圖6 控制器流量負(fù)載圖
圖7 控制器內(nèi)存使用率圖
(4)Gater算法的負(fù)載實(shí)驗(yàn)
Gater算法的負(fù)載實(shí)驗(yàn)圖如圖8所示,從圖中可以看出,Gater的流量負(fù)載和內(nèi)存使用率均隨網(wǎng)絡(luò)規(guī)模的增大而增大,但負(fù)載和使用率均很小,驗(yàn)證了算法的有效性。
圖8 Gater算法的負(fù)載實(shí)驗(yàn)圖
文章提出了一種基于SDN的分布式ARP代理算法,該算法利用局域網(wǎng)網(wǎng)關(guān)作為ARP代理,通過(guò)SDN控制器預(yù)先計(jì)算的流表將廣播的ARP請(qǐng)求單播到網(wǎng)關(guān),各局域網(wǎng)網(wǎng)關(guān)分別處理其網(wǎng)絡(luò)內(nèi)部的ARP請(qǐng)求。該方法不僅明顯降低了網(wǎng)絡(luò)的ARP廣播流量,而且避免了采用SDN集中式控制器作為ARP代理的擴(kuò)展性和延時(shí)問(wèn)題。實(shí)驗(yàn)表明,本文所提算法在請(qǐng)求響應(yīng)延時(shí)、數(shù)據(jù)層廣播流量和控制器負(fù)載等指標(biāo)上均優(yōu)于現(xiàn)有方法。
[1]Jain S,Kumar A,Mandal S,et al.B4:Experience with a Globally-Deployed Software Defined WAN[J]. Acm Sigcomm Computer Communication Review,2013,43(4):3―14.
[2]馬俊青.面向軟件定義網(wǎng)絡(luò)的流量分析與識(shí)別技術(shù)研究[D].南京:南京郵電大學(xué),2015.
[3]Elmeleegy K,Cox A L.EtherProxy:Scaling Ethernet By Suppressing Broadcast Traffic[C]//INFOCOM 2009.Rio de Janeiro,Brazil:IEEE,2009:1584―1592.
[4]Al-Fares M,Loukissas A,Vahdat A.A scalable,commodity data center network architecture[J].Acm Sigcomm Computer Communication Review,2008,38 (4):63―74.
[5]周蘇靜.淺析SDN安全需求和安全實(shí)現(xiàn)[J].電信科學(xué),2013,29(09):113―116.
[6]左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術(shù)研究[J].軟件學(xué)報(bào),2013,(5):1078―1097.
[7]郭春梅,張如輝,畢學(xué)堯.SDN網(wǎng)絡(luò)技術(shù)及其安全性研究[J].信息網(wǎng)絡(luò)安全,2012,(8):112―114.
[8]Fujita,Yamahada.Learning switch in RYU[EB/ OL].(2015-07-10)[2016-05-14].https://github. com/osrg/ryu/blob/master/ryu/app/simple_switch. py.
A Distributed ARP Proxy Approach in Software Defined Network
WEI Ya-qing1,WANG Hui-bin1,TIAN Wei2,TIAN Xiao-yan1
(1.College of Mathematics and Information Technology,Xingtai University,Xingtai 054001,China; 2.College of Mechanical Engineering,Tianjin University of Science and Technology,Tianjin 300222,China)
The Software Defined Network(SDN)can provide simple and flexible network configuration and management.Recently,many proposals utilize the SDN controller as the Address Resolution Protocolproxy(ARP),which obviously reduces the volume of broadcast flow in data plane and avoids the waste of bandwidth.However,since the recent controller has to use pro-active way to setup flow entries,it will cause the scalability problem when dealing with large amount of broadcast packets. Therefore,we propose a novel approach named Gater,which is a SDN-based distributed ARP proxy.Our approach uses the gateways as the ARP proxies,and they will respond to the ARP request in the corresponding LAN.According to the experimental results,our approach not only reduces the broadcast flow data in the network and the ARP response delay,but also lightens the payload of controller to achieve higher scalability.
software defined network;broadcast;ARP proxy
TP393
A
1005-8788(2016)06-0020-03
10.13756/j.gtxyj.2016.06.005
2016-05-14
河北省教育廳高等學(xué)校科學(xué)研究項(xiàng)目(Z2014151)
魏亞清(1982―),男,河北邢臺(tái)人。講師,碩士研究生,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)應(yīng)用技術(shù)。