楊帆,晏思宇,黃韜
?
OVS的編程擴展技術(shù)
楊帆,晏思宇,黃韜
(北京郵電大學(xué),北京 100876)
OVS(open vSwitch)作為一款開源的SDN軟件交換機,得到了廣泛關(guān)注。但在復(fù)雜多變的網(wǎng)絡(luò)環(huán)境下,易出現(xiàn)數(shù)據(jù)層失去控制器控制和流表項學(xué)習(xí)老化等故障問題,嚴(yán)重制約了SDN性能。針對以上問題,研究設(shè)計了OVS的編程擴展技術(shù)架構(gòu),包含鏈接狀態(tài)處理、故障感知、二三層自學(xué)習(xí)轉(zhuǎn)發(fā)等核心功能的擴展,使OVS實現(xiàn)自動快速恢復(fù)、流表表項及時更新,保障了SDN吞吐量,從而減小了控制器失聯(lián)對通信的影響,增強了SDN的穩(wěn)定性和可靠性。
OVS;SDN;OpenFlow;軟件交換機
Open vSwitch(OVS)[1]是開源的SDN數(shù)據(jù)平面軟件交換設(shè)備[2,3],是SDN的重要組成部分。隨著通用處理器性能的不斷提升,SDN軟件交換設(shè)備性能逐步增強[4,5],基于OVS構(gòu)建的SDN越來越受到業(yè)界的追捧和青睞。但由于SDN的集中式架構(gòu),OVS很容易受到諸如控制器宕機或切換、控制器應(yīng)用故障、控制層鏈路擁塞或斷開、人為控制層配置錯誤等故障問題影響[6-8],造成通信中斷,給SDN的安全性和可靠性帶來了極大的挑戰(zhàn)[9]。本文設(shè)計了一種OVS的編程擴展技術(shù)架構(gòu),建立完全兼容OpenFlow通道[10]的OVS自學(xué)習(xí)體制,可以提高SDN恢復(fù)時間,保障故障場景下二層、三層正常通信,提升SDN的穩(wěn)定性和可擴展性[11]。
2.1 總體架構(gòu)設(shè)計
OVS架構(gòu)可分為用戶層、內(nèi)核層、配置管理層3個主要部分[1,10]。其中,內(nèi)核層包含了流表和一個或多個數(shù)據(jù)通路模塊,主要負(fù)責(zé)對數(shù)據(jù)分組進行操作;用戶層中運行著OVS的守護進程和數(shù)據(jù)庫,它們是OVS的核心功能模塊;配置管理層主要用于和守護進程、數(shù)據(jù)庫之間進行交互操作以及OVS的安裝配置和部署。
目前OVS使用雙通道來實現(xiàn)故障場景下的轉(zhuǎn)發(fā)性能[1,10],即允許進入OVS的數(shù)據(jù)分組先進入OpenFlow通道,然后通過normal或flood保留端口再進入傳統(tǒng)通道,按照傳統(tǒng)協(xié)議完成二層轉(zhuǎn)發(fā)功能,以此來保障控制器失效后數(shù)據(jù)分組的轉(zhuǎn)發(fā)。為了改善normal模式目前無法支持三層路由功能、使用雙通道進入故障場景狀態(tài)時間較長、安全性能不足且使用傳統(tǒng)通道與SDN思想相違背等問題,設(shè)計實現(xiàn)OVS的編程擴展技術(shù)架構(gòu),具有以下特點。
(1)完全兼容OpenFlow
傳統(tǒng)OVS使用雙通道處理數(shù)據(jù)分組,兼容性較差,基于OVS編程擴展技術(shù)實現(xiàn)新的轉(zhuǎn)發(fā)體系,在OpenFlow基礎(chǔ)上進行設(shè)計,故障情況下,數(shù)據(jù)分組經(jīng)由OpenFlow通道處理,與OpenFlow完全兼容,保留OpenFlow與SDN技術(shù)靈活性、擴展性等優(yōu)點。
(2)支持三層路由功能
目前使用normal模式處理數(shù)據(jù)分組無法支持三層路由功能,僅能實現(xiàn)二層轉(zhuǎn)發(fā),基于OVS擴展技術(shù)的新的轉(zhuǎn)發(fā)體系設(shè)計使用RIP(routing information protocol,路由信息協(xié)議)以實現(xiàn)三層路由功能。
(3)減短故障恢復(fù)時間
在傳統(tǒng)OVS解決方案中,不能及時檢測到控制器連接失效,故障恢復(fù)時間較長,嚴(yán)重影響SDN控制器失效場景下底層網(wǎng)絡(luò)通信的性能。OVS編程擴展技術(shù)通過設(shè)計連接故障檢測機制,快速感知故障的發(fā)生,并且通過狀態(tài)匹配進行故障的平滑切換,縮短故障恢復(fù)時間。
(4)增強安全性管理
使用傳統(tǒng)OVS通道轉(zhuǎn)發(fā)的數(shù)據(jù)分組不受控制,無法對數(shù)據(jù)分組進行安全檢測和控制流向,存在安全性問題。研究設(shè)計的OVS編程擴展技術(shù)可通過連接狀態(tài)匹配,完成斷開狀態(tài)下對數(shù)據(jù)分組的控制策略,增強控制范圍和安全性。
(5)及時適應(yīng)網(wǎng)絡(luò)拓?fù)渥兓?/p>
OVS編程擴展技術(shù)設(shè)計新的轉(zhuǎn)發(fā)體系,其轉(zhuǎn)發(fā)機制完全受OVS中流表的控制,控制轉(zhuǎn)發(fā)的流表能夠及時學(xué)習(xí)以及老化,使OVS能迅速適應(yīng)網(wǎng)絡(luò)拓?fù)涞淖兓?,避免造成網(wǎng)絡(luò)拓?fù)渥兓瘜?dǎo)致數(shù)據(jù)分組錯誤轉(zhuǎn)發(fā)的情況。
圖1是設(shè)計的OVS編程擴展技術(shù)架構(gòu),通過開發(fā)OpenFlow消息處理模塊、狀態(tài)的跟蹤/分發(fā)/添加模塊、應(yīng)用感知服務(wù)模塊、vPort數(shù)據(jù)分組處理模塊、數(shù)據(jù)通道流表匹配模塊等實現(xiàn)故障檢測機制、二層自學(xué)習(xí)、三層路由轉(zhuǎn)發(fā)和OVS災(zāi)備流表的設(shè)計,其擴展功能主要包括狀態(tài)檢測擴展、轉(zhuǎn)發(fā)擴展和信息更新擴展。
2.2 狀態(tài)檢測擴展
通過狀態(tài)檢測擴展,OVS交換機可以實時動態(tài)地監(jiān)測控制器的可用性??刂破靼l(fā)生故障失效后,擴展后的OVS交換機可以依賴連接狀態(tài)檢測機制使得SDN平滑進入災(zāi)備模式,保持?jǐn)?shù)據(jù)平面通信,實現(xiàn)SDN的穩(wěn)定性和可靠性。狀態(tài)檢測機制通過探測消息來動態(tài)檢測控制器的活動狀態(tài),并且為了保證探測的及時性,會通過往返時延動態(tài)調(diào)整探針的發(fā)送間隔。對于SDN的可靠性保障,連接狀態(tài)主要分為連接正常和連接中斷兩種狀態(tài)。當(dāng)連接狀態(tài)正常時,OVS交換機由SDN控制器正常管控,完成網(wǎng)絡(luò)的路由和通信;當(dāng)連接狀態(tài)處于中繼狀態(tài)時,網(wǎng)關(guān)設(shè)備進入災(zāi)備模式。OVS編程擴展技術(shù)中的狀態(tài)檢測機通過拓展OpenFlow協(xié)議匹配字段,設(shè)計連接狀態(tài)檢測和匹配功能,當(dāng)數(shù)據(jù)分組到達(dá)OVS交換機時,會得到實時的控制器與交換設(shè)備間的連接狀態(tài),以此通過匹配流表狀態(tài)完成相應(yīng)動作。
2.3 轉(zhuǎn)發(fā)擴展
轉(zhuǎn)發(fā)擴展包含兩種情況:二層轉(zhuǎn)發(fā)擴展和三層轉(zhuǎn)發(fā)擴展。根據(jù)實際故障場景和組網(wǎng)的差異性,在SDN中會出現(xiàn):一種是基本的二層轉(zhuǎn)發(fā),數(shù)據(jù)分組不需要修改MAC地址直接進行匹配轉(zhuǎn)發(fā)即可;另一種是需要不同網(wǎng)段的路由轉(zhuǎn)發(fā),對數(shù)據(jù)分組頭進行地址修改。
二層轉(zhuǎn)發(fā)擴展:通過設(shè)計的狀態(tài)匹配自學(xué)習(xí)模塊即可實現(xiàn)。對于進入此故障域的數(shù)據(jù)分組,匹配自學(xué)習(xí)表項,然后跳轉(zhuǎn)到流表進行匹配轉(zhuǎn)發(fā),如果匹配失敗,則只需要通過簡單的泛洪機制轉(zhuǎn)發(fā)至網(wǎng)絡(luò)域內(nèi)所有設(shè)備即可。
三層轉(zhuǎn)發(fā)擴展:除結(jié)合二層轉(zhuǎn)發(fā)擴展外,需要在轉(zhuǎn)發(fā)前對原MAC地址和目的MAC地址進行修改。通過拓展OpenFlow的ARP機制來探測獲取目的地址,然后修改數(shù)據(jù)分組的目的地址進行轉(zhuǎn)發(fā)。此外,對于三層轉(zhuǎn)發(fā)擴展的自學(xué)習(xí)功能,學(xué)習(xí)到的新表項指令需要含有二層MAC地址修改動作。
2.4 信息更新擴展
信息更新擴展用于故障恢復(fù)后幫助控制器獲取最新的網(wǎng)絡(luò)信息,主要包括當(dāng)前拓?fù)湫畔⒑妥钚铝鞅硇畔?。控制器故障恢?fù)重新接入后,會通過向OVS交換機發(fā)送流表請求消息,重新讀取交換機和網(wǎng)關(guān)的最新流表信息,完成控制器在故障恢復(fù)后的信息更新工作。
故障恢復(fù)控制器重接入SDN后,網(wǎng)絡(luò)拓?fù)淇赡芤呀?jīng)發(fā)生變化,某些交換機中原有的表項信息可能已經(jīng)過期失效。因此,控制器重新接入網(wǎng)絡(luò)后,會通過獲取的最新拓?fù)湫畔⒑团f的拓?fù)湫畔?,進行拓?fù)涔?jié)點連接對比,然后對數(shù)據(jù)庫中獲取到的最新流表信息進行拓?fù)涞挠行詸z測,將錯誤的流表從數(shù)據(jù)庫中刪除,并下發(fā)指令從相應(yīng)交換機中刪除或更新。如圖2所示,控制器重新連接后,網(wǎng)絡(luò)拓?fù)湟呀?jīng)發(fā)生變化,控制器保存的原有交換機1的流表信息會出現(xiàn)錯誤,通過信息更新擴展,控制器下發(fā)指令進行信息更新與刪除。
OVS是在開源的Apache 2.0許可下的產(chǎn)品級質(zhì)量的多層虛擬交換機,支持標(biāo)準(zhǔn)的管理接口和協(xié)議,目前廣泛應(yīng)用于SDN中[12-14]。OVS的編程擴展技術(shù)基于OVS進行設(shè)計實現(xiàn),兼容OpenFlow通道,主要設(shè)計開發(fā)連接狀態(tài)檢測機制、自學(xué)習(xí)機制、災(zāi)備機制、三層路由轉(zhuǎn)發(fā)等功能模塊,實現(xiàn)保障故障場景下SDN的通信吞吐能力。
3.1 連接狀態(tài)檢測機制實現(xiàn)
連接狀態(tài)檢測機制通過擴展OpenFlow的無狀態(tài)字段,向流表匹配域中增加狀態(tài)匹配字段,主要通過控制器連接狀態(tài)檢測和狀態(tài)同步與封裝來完成。連接狀態(tài)檢測機制如圖3所示。
(1)控制器連接狀態(tài)檢測
根據(jù)狀態(tài)機和數(shù)據(jù)分組傳輸速率跟蹤機制完成狀態(tài)的實時監(jiān)測,控制器連接狀態(tài)碼設(shè)計為4種:中斷(disconnected)、連接(connected)、閑時(idle)、忙時(active)。對于連接與中斷狀態(tài),控制器連接狀態(tài)檢測機制主要基于有限狀態(tài)機實現(xiàn)。擴展的有限狀態(tài)機包括active、idle和disconnected等狀態(tài)。當(dāng)OVS與SDN控制器間建立起OpenFlow連接,即進入active狀態(tài),之后會根據(jù)是否接收到來自SDN控制器OpenFlow通道消息,進行active、idle狀態(tài)間的互相轉(zhuǎn)換。當(dāng)收到控制器斷開的消息時,則直接跳轉(zhuǎn)到disconnected狀態(tài)。
(2)狀態(tài)同步與封裝
首先,將SDN控制器與擴展的OVS設(shè)備間控制鏈路的連接狀態(tài)值通過通用進程通信接口高效傳遞給OVS的數(shù)據(jù)通路中。然后,當(dāng)數(shù)據(jù)分組進入擴展的OVS設(shè)備時,會將連接狀態(tài)值作為數(shù)據(jù)分組的一個元數(shù)據(jù),連同端口號等其他數(shù)據(jù)分組元數(shù)據(jù)字段共同構(gòu)造帶有連接狀態(tài)的匹配查找key,完成擴展的OVS設(shè)備流表的快速匹配。
3.2 自學(xué)習(xí)機制實現(xiàn)
自學(xué)習(xí)機制通過拓展OpenFlow的動作,保障故障場景下SDN數(shù)據(jù)層面的轉(zhuǎn)發(fā)能力和效率。
自學(xué)習(xí)功能嵌入OVS數(shù)據(jù)層面,數(shù)據(jù)分組有時候不需要發(fā)送給控制器處理而直接在數(shù)據(jù)層面處理。為了符合SDN思想和增加靈活性,控制器利用OpenFlow API對自學(xué)習(xí)等功能進行靈活調(diào)用,在數(shù)據(jù)層面實現(xiàn)部分服務(wù)。此外,自學(xué)習(xí)模塊產(chǎn)生的流表項和原有的OpenFlow流表規(guī)則相同,可以無差異地插入原有的OpenFlow流表,保持OpenFlow和 SDN的原有特性。
具體實現(xiàn)流程如圖4所示。首先,將執(zhí)行自學(xué)習(xí)行為的數(shù)據(jù)分組進行分組頭解析,提取數(shù)據(jù)分組源MAC地址和入端口字段;其次,根據(jù)這些信息構(gòu)造學(xué)習(xí)新OpenFlow流表項,新的流表項的目的地址匹配字段就是數(shù)據(jù)分組的源MAC地址,行為的轉(zhuǎn)發(fā)出口就是數(shù)據(jù)分組的入端口;最后,檢查流表中是否存在相似流表項,存在則對舊的流表項進行更新,不存在則插入新學(xué)習(xí)到的流表項。
3.3 災(zāi)備機制實現(xiàn)
災(zāi)備機制基于連接狀態(tài)檢測機制和自學(xué)自機制來實現(xiàn),設(shè)計的災(zāi)備方案流程如下。
(1)控制器運行災(zāi)備App向擴展OVS下發(fā)啟動災(zāi)備機制。災(zāi)備機制主要由3張流表項組成,具體見表1~表3。
表1 狀態(tài)流表項
表2 連接流表項
表3 災(zāi)備流表項
其中,表1~表3分別為狀態(tài)流表項、連接流表項和災(zāi)備流表項。狀態(tài)流用于實現(xiàn)SDN控制器與OVS在不同連接狀態(tài)下的不同執(zhí)行策略;連接流用于實現(xiàn)OVS與SDN控制器在正常連接狀態(tài)下數(shù)據(jù)分組的轉(zhuǎn)發(fā)動作。災(zāi)備流用于實現(xiàn)出現(xiàn)故障場景時的自學(xué)習(xí)流表項的執(zhí)行。匹配域連接狀態(tài)為1時表示控制器連接正常,為2則斷開。
(2)當(dāng)數(shù)據(jù)分組進入OpenFlow通道后,首先進入表1進行匹配,然后根據(jù)OVS與SDN控制器當(dāng)前的連接狀態(tài),對數(shù)據(jù)分組進行相應(yīng)的匹配處理。
(3)當(dāng)OVS與控制器連接正常時,數(shù)據(jù)分組匹配表1的第二條流表項,即跳轉(zhuǎn)到表2。表2是連接狀態(tài)下控制器下發(fā)給OVS的流表項,實現(xiàn)在連接狀態(tài)下的數(shù)據(jù)分組轉(zhuǎn)發(fā)策略。
(4)當(dāng)OVS與控制器連接斷開時,數(shù)據(jù)分組匹配表1的第一條流表項。需執(zhí)行兩個動作:第一個動作是執(zhí)行自學(xué)習(xí)策略,把學(xué)習(xí)到的表項插入表3中;隨后執(zhí)行第二個動作,即跳轉(zhuǎn)到表3。
(5)在表3中完成故障場景下的災(zāi)備模式,匹配二層或三層的自學(xué)習(xí)流表項,完成OVS與SDN控制器斷開后的正常通信。
3.4 三層路由轉(zhuǎn)發(fā)
區(qū)別于傳統(tǒng)OVS僅支持二層網(wǎng)絡(luò),直接使用MAC地址進行通信,擴展的OVS交換機引入支持三層網(wǎng)絡(luò),可以實現(xiàn)不同IP網(wǎng)段之間的通信,具備全局路由表能力,指導(dǎo)不同IP網(wǎng)段之間主機的通信。為了使擴展的OVS交換機獲得全局的路由表,結(jié)合傳統(tǒng)網(wǎng)絡(luò)三層路由轉(zhuǎn)發(fā)的體系結(jié)構(gòu),基于已擴展的處理模塊添加使用RIP內(nèi)部網(wǎng)關(guān)協(xié)議進行路由表的構(gòu)建。
(1)自主進行RIP數(shù)據(jù)分組的發(fā)送和終止發(fā)送
防止因網(wǎng)絡(luò)情況不好導(dǎo)致誤判控制器連接失敗的情況,設(shè)置當(dāng)連續(xù)檢測到10次connect_state=2時,表示與控制器連接已中斷,開始進入自主發(fā)送RIP數(shù)據(jù)分組狀態(tài)。當(dāng)檢測機制檢測到與控制器鏈路中斷時,OVS將立即進入自主發(fā)送RIP數(shù)據(jù)分組狀態(tài),開始進行RIP數(shù)據(jù)分組的封裝和定時發(fā)送。通過相鄰OVS間RIP數(shù)據(jù)分組的交換,OVS將逐漸建立全局的路由表,以實現(xiàn)不同網(wǎng)段間的數(shù)據(jù)轉(zhuǎn)發(fā)。
(2)解析RIP數(shù)據(jù)分組并由此生成路由表
將RIP數(shù)據(jù)分組的解析擴展OpenFlow的動作,在擁有災(zāi)備流表的情況下,擴展的OVS能進行RIP數(shù)據(jù)分組的解析動作,以逐漸建立全局路由情況,并根據(jù)全局路由情況下發(fā)相應(yīng)流表,實現(xiàn)一次路由多次轉(zhuǎn)發(fā)的能力(即下發(fā)流表后,數(shù)據(jù)分組只需匹配流表即可正確轉(zhuǎn)發(fā),無需進行路由查詢)。在數(shù)據(jù)層面可以直接調(diào)度三層自學(xué)習(xí)功能,保障數(shù)據(jù)平面轉(zhuǎn)發(fā)能力和效率。
(3)支持IP地址到MAC地址的轉(zhuǎn)換功能
即傳統(tǒng)網(wǎng)絡(luò)中的ARP功能,以保障能正確通過IP地址查詢出主機對應(yīng)MAC地址進行轉(zhuǎn)發(fā)。由于目前OVS無法支持主動發(fā)送ARP請求以及緩存ARP,為了實現(xiàn)三層的路由轉(zhuǎn)發(fā),將ARP學(xué)習(xí)擴展為OpenFlow的動作,與二層自學(xué)習(xí)類似,在OVS收到ARP數(shù)據(jù)分組時,進行相應(yīng)MAC地址與IP地址對應(yīng)關(guān)系的學(xué)習(xí),并將結(jié)果直接下發(fā)至流表中。
3.5 災(zāi)備流表設(shè)計
為了使交換機在與控制器失去連接的情況下仍然能夠使用OpenFlow通道進行數(shù)據(jù)分組的處理,數(shù)據(jù)分組的處理流程應(yīng)該完全受到流表的控制,所以為三層路由轉(zhuǎn)發(fā)設(shè)計了一系列災(zāi)備流表。當(dāng)交換機失去控制后,數(shù)據(jù)分組到來后將會自動匹配災(zāi)備流表,在一系列災(zāi)備流表的引導(dǎo)下進行正常的路由轉(zhuǎn)發(fā)。
基于災(zāi)備流表,擴展的OVS將數(shù)據(jù)分組分為ARP數(shù)據(jù)分組、RIP數(shù)據(jù)分組以及IP數(shù)據(jù)分組3種,并針對3種數(shù)據(jù)分組的不同情況進行細(xì)分,依次進行相應(yīng)的處理。采用多級流表的設(shè)計,每級流表擁有不同的功能,各級流表配合實現(xiàn)對數(shù)據(jù)分組的處理。使OVS能在與控制器失聯(lián)的情況下,能根據(jù)災(zāi)備流表處理所有可能收到的數(shù)據(jù)分組,保障網(wǎng)絡(luò)的通信能力。
為了加強對比性,同時引入二層、三層轉(zhuǎn)發(fā)實驗。為了清晰方便地描述,對于設(shè)計擴展的OVS設(shè)備方案分別在二層和三層實驗中命名為AL2和AL3,此外,將對比的傳統(tǒng)OVS設(shè)備的實驗分別命名為 BL2和BL3。轉(zhuǎn)發(fā)實驗在相同的時間段內(nèi)隨機地觸發(fā)SDN控制鏈路故障,測試多次UDP會話流在不同吞吐量下的切換時延,圖5為二層、三層轉(zhuǎn)發(fā)實驗切換時延概率分布。
由圖5結(jié)果可知,本文方案的切換時延整體小于OVS自身機制的切換時延。以90%位數(shù)為準(zhǔn),本文方案的切換時延依然保持在RTT的200 ms級別。由于三層AL3轉(zhuǎn)發(fā)需要一定的路由收斂時間,因此切換時延相對二層AL2較長,但依然處于200 ms級別左右。整體來說,擴展后的OVS設(shè)備故障切換時延相比OVS自身的機制有了很大的性能提升。
在二層、三層轉(zhuǎn)發(fā)實驗中觀測故障發(fā)生時不同OVS設(shè)備下的最大吞吐量變化,實驗分別在運行5 s、12 s進行故障場景觸發(fā),并在4 s后故障場景恢復(fù),控制器重新連接網(wǎng)絡(luò)。圖6為二層、三層轉(zhuǎn)發(fā)實驗故障場景吞吐量對比。
從圖6中可以看到,OVS設(shè)備自身策略在吞吐量上不穩(wěn)定,且故障恢復(fù)時間長,主要因為OVS設(shè)備自身方案需要定期維持表項,其性能受控制鏈路影響較大,吞吐量出現(xiàn)波動。而擴展后的OVS設(shè)備通過檢測、災(zāi)備等多種保障機制保障通信正常,使得吞吐量相對穩(wěn)定,故障恢復(fù)時間較短。此外從圖6中可以看出,當(dāng)控制器重新連接后,擴展后的OVS設(shè)備能較快收斂并且保障通信正常,快速恢復(fù)吞吐量穩(wěn)定狀態(tài),反映信息更新機制起到了故障恢復(fù)后的積極效果。全面保障了SDN通信的可靠性和穩(wěn)定性。
SDN應(yīng)用場景中,網(wǎng)絡(luò)控制器故障、拓?fù)渫蛔兊裙收?,容易使OVS設(shè)備出現(xiàn)失去SDN控制器控制、流表老化無法更新導(dǎo)致網(wǎng)絡(luò)通信中斷等問題。針對以上問題,本文設(shè)計了OVS的編程擴展技術(shù)架構(gòu),使傳統(tǒng)OVS設(shè)備具備連接狀態(tài)檢測、表項自學(xué)習(xí)、災(zāi)備路由轉(zhuǎn)發(fā)等能力,可實現(xiàn)SDN故障場景下不同網(wǎng)段的數(shù)據(jù)分組正確匹配轉(zhuǎn)發(fā)和數(shù)據(jù)層面的自動化組網(wǎng),提高了無控制器場景下的數(shù)據(jù)分組的控制,增強了數(shù)據(jù)分組轉(zhuǎn)發(fā)效率,降低了網(wǎng)絡(luò)恢復(fù)時間,保障了二、三層通信,提升了SDN安全性和可控性,并完全兼容OpenFlow通道,可拓展與應(yīng)用于廣泛的SDN場景。
[1] Open vSwitch[EB/OL]. (2015-11-05)[2017-01-13]. http://baike. baidu. com/link?url=eE6wD_8BWkT3MHsd3LP31KT2lLi88ZVEkwmw2AmER85vvZHYErKXNlBVG1f3I8p5J5aQthlzJBQEdANWJ-wNITS_20G_pF-h1uTNsPqtGZm.
[2] ONF. OpenFlow-enabled mobile and wireless networks[EB/OL]. (2013-11-05) [2017-01-13]. http://wenku.baidu.com/link?url= KSCjGlIn79WW4sm9Abm906LqhjpXdVKKtOrDIBZ-9kqSVwTakdGQi-ONZRBYQt93ZvlaYcn1xYohLexmgMtkLy-rHEI by3cIjScV_iAVre_.
[3] YAP K K, KOBAYASHI M, SHERWOOD R, et al. OpenRoads: empowering research in mobile networks[J]. ACM Sigcomm Computer Communication Review, 2010, 40(1): 125-126.
[4] KU I, LU Y, GERLA M, et al. Towards software-defined VANET: architecture and services[C]//2014 13th Annual Mediterranean Ad Hoc Networking Workshop (MED-HOC-NET), June 2-4, 2014, Ayia Napa, Cyprus. New Jersey: IEEE Press, 2014: 103-110.
[5] BASKETT P, SHANG Y, ZENG W, et al. SDNAN: software-defined networking in Ad Hoc networks of smartphones[C]//2013 IEEE Consumer Communications and Networking Conference (CCNC), January 11-14, 2013, Las Vegas, NV, USA. New Jersey: IEEE Press, 2013: 861-862.
[6] KIM H, FEAMSTER N. Improving network management with software defined networking[J]. IEEE Communications Magazine, 2013, 51(2): 114-119.
[7] CHANDRASEKARAN B, BENSON T. Tolerating SDN application failures with LegoSDN[C]//The 13th ACM Workshop on Hot Topics in Networks, August 22, 2014, Chicago, Illinois, USA. New York: ACM Press, 2014: 22.
[8] MULEC G, VASIU R, FRIGURA-ILIASA F. Distributed flow controller for mobile Ad Hoc networks[C]//2013 IEEE 8th International Symposium on Applied Computational Intelligence and Informatics (SACI), May 23-25, 2013, Timisoara, Romania. New Jersey: IEEE Press, 2013: 143-146.
[9] MEKKY H, HAO F, MUKHERJEE S, et al. Application-aware data plane processing in SDN[C]//The Third Workshop on Hot Topics in Software Defined Networking, August 22, 2014, Chicago, Illinois, USA. New York: ACM Press, 2014: 13-18.
[10] PFAFF B, PETTIT J, KOPONEN T, et al. The design and implementation of open vSwitch[C]//12th USENIX Symposium on Networked Systems Design and Implementation (NSDI 15), May 4-6, 2015, Oakland, CA, USA. [S.l.:s.n.], 2015:117-130.
[11] 韋樂平. SDN的戰(zhàn)略性思考[J]. 電信科學(xué), 2015, 31(1): 7-12.
WEI L P. Strategic thinking on SDN[J]. Telecommunications Science, 2015, 31(1): 7-12.
[12] 趙輝, 丁鳴, 程青松, 等. SDN與NFV技術(shù)在云數(shù)據(jù)中心的規(guī)模應(yīng)用[J]. 電信科學(xué), 2016, 32(1): 144-151.
ZHAO H, DING M, CHENG Q S, et al. Application of SDN and NFV technology in the cloud data center[J]. Telecommunications Science, 2016, 32(1): 144-151.
[13] 劉漢江, 歐亮, 陳文華, 等. 基于SDN的跨數(shù)據(jù)中心承載技術(shù)[J]. 電信科學(xué), 2016, 32(3): 28-34.
LIU H J, OU L, CHEN W H, et al. Bearing technology across the data center based on SDN[J]. Telecommunications Science, 2016, 32(3): 28-34.
[14] 唐宏, 朱華虹, 曹維華, 等. 基于SDN的大型IP網(wǎng)絡(luò)BGP路由優(yōu)化方案[J]. 電信科學(xué), 2016, 32(3): 14-19.
TANG H, ZHU H H, CAO W H, et al. Route optimization method for BGP based on SDN in large-scale IP network[J]. Telecommunications Science, 2016, 32(3): 14-19.
Programming extention technology of open vSwitch
YANG Fan, YAN Siyu, HUANG Tao
Beijing University of Posts and Telecommunications, Beijing 100876, China
As an open source SDN software switch, open vSwitch (OVS) has been widespread concerned. But in complex and changeable network environment, data layer loses control of controller and flow table entry learning aging appears easily and the performance of SDN is seriously hampered. To solve the problems, the programming extension technology architecture of OVS was designed, including link state processing, fault perception, two three-tier self-learning forwarding and other expansion of core functions, so that OVS could recover automatic and rapidly, flow table entries could update in time, throughput of SDN was guaranteed, thereby the influence of controller loss control for communication was reduced, SDN stability and reliability was enhanced.
open vSwitch, software defined networking, OpenFlow, sofware switch
TP393.4
A
10.11959/j.issn.1000?0801.2017094
2016?01?13;
2017?03?29
楊帆(1981?),男,北京郵電大學(xué)講師,主要研究方向為軟件定義網(wǎng)絡(luò)、高性能路由交換技術(shù)。
晏思宇(1991?),男,北京郵電大學(xué)碩士生,主要研究方向為軟件定義網(wǎng)絡(luò)、高性能路由交換技術(shù)。
黃韜(1980?),男,北京郵電大學(xué)教授,主要研究方向為未來網(wǎng)絡(luò)體系架構(gòu)、軟件定義網(wǎng)絡(luò)、信息中心網(wǎng)絡(luò)、網(wǎng)絡(luò)試驗平臺。