顧憲鋒
(中國電子科技集團(tuán)公司第28研究所,江蘇 南京 210007)
基于OpenFlow的虛擬網(wǎng)實現(xiàn)研究*
顧憲鋒
(中國電子科技集團(tuán)公司第28研究所,江蘇 南京 210007)
軟件定義網(wǎng)絡(luò)是一種數(shù)據(jù)和控制平面分離、軟件可編程的新型網(wǎng)絡(luò)架構(gòu)及技術(shù),控制平面使用以O(shè)penFlow為代表的協(xié)議對轉(zhuǎn)發(fā)平面進(jìn)行集中式控制。SDN架構(gòu)的這些特點(diǎn)能很好地滿足了云計算對虛擬網(wǎng)絡(luò)的集中化、標(biāo)準(zhǔn)化、自動化的配置管理要求。針對傳統(tǒng)虛擬網(wǎng)絡(luò)技術(shù)支持云計算平臺的不足,提出基于OpenFlow的SDN技術(shù)設(shè)計虛擬網(wǎng)絡(luò)的思路,論述了幾種虛擬網(wǎng)絡(luò)實現(xiàn)的原理與處理流程,并給出了模塊化的軟件設(shè)計及部分關(guān)鍵代碼功能描述。
軟件定義網(wǎng)絡(luò) OpenFlow 流表 虛擬網(wǎng)絡(luò)
虛擬網(wǎng)絡(luò)是通過對物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施進(jìn)行特殊的抽象,使得在底層物理網(wǎng)絡(luò)之上形成的多個邏輯上獨(dú)立的網(wǎng)絡(luò)。網(wǎng)絡(luò)虛擬化隱藏了底層網(wǎng)絡(luò)部署的復(fù)雜性,便于更靈活地管理網(wǎng)絡(luò)資源[1]。虛擬網(wǎng)的優(yōu)點(diǎn)包括:網(wǎng)絡(luò)數(shù)據(jù)被限制在本邏輯網(wǎng)內(nèi)傳輸,可以減少網(wǎng)絡(luò)上不必要的流量,實現(xiàn)敏感數(shù)據(jù)隔離,從而提高網(wǎng)絡(luò)的利用率和性能,增強(qiáng)網(wǎng)絡(luò)的安全性;能把不同地點(diǎn)、不同網(wǎng)絡(luò)、不同用戶組合在一起形成一個虛擬網(wǎng),具有組網(wǎng)靈活性。傳統(tǒng)的網(wǎng)絡(luò)虛擬化技術(shù)有虛擬局域網(wǎng)(VLAN ,Virtual Local Area Network)、虛擬私有網(wǎng)(VPN,Virtual Private Network)等[2]。
云計算技術(shù)基于資源虛擬化方式,將底層物理資源進(jìn)行池化共享,實現(xiàn)對用戶按需提供服務(wù),網(wǎng)絡(luò)虛擬化是其核心組成部分。然而,傳統(tǒng)網(wǎng)絡(luò)技術(shù)卻難以滿足云計算環(huán)境對網(wǎng)絡(luò)虛擬化、網(wǎng)絡(luò)資源靈活動態(tài)調(diào)度重組及管理簡單化的需求[3],主要表現(xiàn)在以下幾個方面:
(1)網(wǎng)絡(luò)規(guī)模
很多大型云計算中心的客戶遠(yuǎn)超4 096個,需要建立相應(yīng)數(shù)量的虛擬網(wǎng)絡(luò)隔離用戶,而采用VLAN技術(shù)則不能突破此數(shù)量限制。
(2)硬件依賴
傳統(tǒng)網(wǎng)絡(luò)設(shè)備廠商眾多,配置管理各不相同,容易形成廠商綁定,升級、替換困難。
(3)集中管理
由于交換機(jī)、路由器等網(wǎng)絡(luò)設(shè)備都運(yùn)行各自的控制轉(zhuǎn)發(fā)邏輯,不利于進(jìn)行集中統(tǒng)一管理,涉及到的分布式配置操作容易產(chǎn)生不一致性。
軟件定義網(wǎng)絡(luò)(SDN,Software Defined Networking)是一種新興的基于軟件的網(wǎng)絡(luò)架構(gòu)及技術(shù),其關(guān)鍵特征在于數(shù)據(jù)和控制平面的分離以及軟件可編程能力[4-6]。SDN采用集中式的控制平面和分布式的轉(zhuǎn)發(fā)平面,控制平面使用以openflow為代表的協(xié)議作為控制-轉(zhuǎn)發(fā)接口對轉(zhuǎn)發(fā)平面上的openflow交換機(jī)進(jìn)行集中式控制[4]。SDN的引入為網(wǎng)絡(luò)虛擬化提供了自動化的強(qiáng)有力的手段。
SDN的層次架構(gòu)如圖1所示。網(wǎng)絡(luò)設(shè)備通過接收控制器南向接口控制信令生成轉(zhuǎn)發(fā)表,并據(jù)此決定數(shù)據(jù)包的轉(zhuǎn)發(fā)處理。控制器通過開放北向接口為上層應(yīng)用提供服務(wù),體現(xiàn)了SDN網(wǎng)絡(luò)的可編程能力。當(dāng)前北向接口還缺少業(yè)界公認(rèn)的標(biāo)準(zhǔn),最為流行的是REST(Representational State Transfer,表述性狀態(tài)轉(zhuǎn)移)API。南向接口以O(shè)NF(Open Networking Foundation,開放網(wǎng)絡(luò)基金會)組織倡導(dǎo)的OpenFlow協(xié)議最為成熟,并獲得了業(yè)界的廣泛支持。
OpenFlow架構(gòu)原理是OpenFlow交換機(jī)使用基于安全連接的OpenFlow協(xié)議與控制器相通信,安全通道、流表和OpenFlow協(xié)議是其核心組成部分。“流”是通信過程中數(shù)據(jù)分組特征(如MAC地址、IP地址、端口號等)的抽象,控制器依據(jù)某次通信中“流”的第一個分組特征[4],利用OpenFlow協(xié)議對交換機(jī)配置流表,此次通信后續(xù)相同特征的數(shù)據(jù)分組則由交換機(jī)按照流表包含的一至四層網(wǎng)絡(luò)信息在各層次進(jìn)行匹配和轉(zhuǎn)發(fā)。OpenFlow v1.0的流表匹配域如圖2所示。OpenFlow協(xié)議由ONF組織負(fù)責(zé)維護(hù),迄今已更新到OpenFlow v1.4,主要改進(jìn)有單流表演變?yōu)榱魉€串聯(lián)的多流表,增加組表,多控制器支持等,流表匹配域增加至30多個(如ARP,ICMP,IPv6等匹配項)[7]。

圖1 SDN基本架構(gòu)
基于SDN架構(gòu)實現(xiàn)虛擬網(wǎng)絡(luò)很好地解決了傳統(tǒng)網(wǎng)絡(luò)技術(shù)所面臨的問題:其天然的集中化控制滿足了自動化、一致性的管理需求;控制和數(shù)據(jù)平面的分離及標(biāo)準(zhǔn)的OpenFlow南向接口解除了廠商鎖定;流表諸多的匹配項組合不僅極大地擴(kuò)展了網(wǎng)絡(luò)規(guī)模,而且可以對數(shù)據(jù)流進(jìn)行精確匹配和控制。
2.1 設(shè)計思想
SDN分離了控制平面和轉(zhuǎn)發(fā)平面:控制層的控制器是SDN的大腦,不僅向上層業(yè)務(wù)應(yīng)用提供網(wǎng)絡(luò)能力調(diào)用,同時負(fù)責(zé)策略制定和對OpenFlow交換機(jī)進(jìn)行流表下發(fā);轉(zhuǎn)發(fā)層的OpenFlow交換機(jī)只是依據(jù)流表匹配結(jié)果執(zhí)行相應(yīng)的轉(zhuǎn)發(fā)命令。因此虛擬網(wǎng)的劃分應(yīng)以流表匹配為原則,而虛擬網(wǎng)的管理和接口服務(wù)可基于開源SDN控制器軟件設(shè)計開發(fā)虛擬網(wǎng)功能實現(xiàn)。
虛擬網(wǎng)功能模塊主要分三部分設(shè)計:
1)虛擬網(wǎng)北向接口:提供對虛擬網(wǎng)配置參數(shù)和查詢信息的接口給上層應(yīng)用軟件調(diào)用,是虛擬網(wǎng)信息管理模塊和上層應(yīng)用的橋梁。
2)虛擬網(wǎng)信息管理:保存虛擬網(wǎng)配置信息,通過監(jiān)測網(wǎng)絡(luò)狀態(tài)及時通知轉(zhuǎn)發(fā)決策模塊作相應(yīng)處理。
3)虛擬網(wǎng)轉(zhuǎn)發(fā)決策:根據(jù)虛擬網(wǎng)配置信息制定轉(zhuǎn)發(fā)決策并下發(fā)流表至交換機(jī),并根據(jù)網(wǎng)絡(luò)狀態(tài)變化及時執(zhí)行流表變更操作。本模塊是實現(xiàn)虛擬網(wǎng)功能的核心。
虛擬網(wǎng)須按照一致的規(guī)則劃分,為確保各虛擬網(wǎng)特征的唯一性,虛擬網(wǎng)配置需至少包含以下要素:
1)網(wǎng)絡(luò)ID:在全網(wǎng)中作為虛擬網(wǎng)的唯一標(biāo)識,不可重復(fù)。
2)邏輯端口:把加入某個虛擬網(wǎng)絡(luò)依據(jù)的匹配條件抽象為邏輯端口,匹配條件不能沖突。

圖2 OpenFlow流表項匹配域
Fig.2 Fields to match against flow entries
2.2 實現(xiàn)方案
基于OpenFlow劃分虛擬網(wǎng)絡(luò)因具體的轉(zhuǎn)發(fā)決策機(jī)制和數(shù)據(jù)封裝不同,實現(xiàn)方法也不盡相同,下面就幾種實現(xiàn)方案展開論述。
2.2.1 按MAC地址劃分網(wǎng)絡(luò)
2.2.1.1 基本流程
MAC地址是網(wǎng)卡的標(biāo)識符,每一塊網(wǎng)卡的MAC地址都是唯一的。這種方法允許用戶主機(jī)移動到網(wǎng)絡(luò)的其它物理網(wǎng)段,而自動保持原來的虛擬網(wǎng)成員資格。在網(wǎng)絡(luò)規(guī)模較小時,基于MAC地址匹配策略劃分網(wǎng)絡(luò)是一個簡單有效的方法。
建立網(wǎng)絡(luò)配置操作分兩步:創(chuàng)建虛擬網(wǎng),指定唯一的網(wǎng)絡(luò)ID;把計算機(jī)MAC地址加入某個虛擬網(wǎng)。
依據(jù)虛擬網(wǎng)的配置信息,轉(zhuǎn)發(fā)決策模塊的主要處理過程如下:
交換機(jī)收到的數(shù)據(jù)幀若在流表中無匹配項,會封裝packet_in消息把此數(shù)據(jù)幀上交控制器。轉(zhuǎn)發(fā)決策模塊監(jiān)視packet_in消息,把消息中的源MAC地址、目的MAC地址和虛擬網(wǎng)配置信息庫作比對。若此兩個MAC屬于同一個虛擬網(wǎng),則向交換機(jī)下發(fā)表項,建立端到端的通路;否則阻止相應(yīng)表項的下發(fā),隔離此兩個MAC對應(yīng)的計算機(jī)間的通信。
圖3顯示了兩個虛擬網(wǎng)的組織關(guān)系圖,主機(jī)1和2劃入虛擬網(wǎng)100,主機(jī)3和4劃入虛擬網(wǎng)101,表1是虛擬網(wǎng)絡(luò)的參數(shù)配置。
由主機(jī)1發(fā)起到主機(jī)2的通信處理流程如下:
1)由于主機(jī)2的MAC地址未知,主機(jī)1發(fā)出ARP請求包。
2)交換機(jī)把該包以packet-in消息方式發(fā)送給控制器。控制器因此學(xué)習(xí)到主機(jī)1連接到端口1,但不知主機(jī)2在哪里,于是在2、3、4端口洪泛該ARP包。
3)主機(jī)2收到請求后向主機(jī)1發(fā)送ARP應(yīng)答包,交換機(jī)把該包以packet-in消息方式發(fā)送給控制器,控制器因此學(xué)習(xí)到主機(jī)2連接到端口2。通過比較確定該包中的2個MAC地址都在虛擬網(wǎng)100中,則下發(fā)從主機(jī)2到主機(jī)1的流表項,并要求交換機(jī)把ARP應(yīng)答包發(fā)送出去,交換機(jī)根據(jù)流表項把該包從端口1發(fā)送至主機(jī)1。
4)主機(jī)1再次向主機(jī)2發(fā)出IP包,交換機(jī)把該包以packet-in消息方式發(fā)送給控制器,經(jīng)確認(rèn)后給交換機(jī)下發(fā)從主機(jī)1到主機(jī)2的流表項,并要求交換機(jī)把IP包發(fā)送出去,交換機(jī)根據(jù)流表項把該包從端口2發(fā)送至主機(jī)2。

圖3 流處理過程

表1 MAC虛擬網(wǎng)絡(luò)參數(shù)配置

表2 端口、MAC對應(yīng)表變化過程

表3 流表項變化過程
經(jīng)過以上處理之后交換機(jī)建立了主機(jī)1和主機(jī)2的雙向流表項,可以直接轉(zhuǎn)發(fā)主機(jī)1和主機(jī)2之間交互的IP包,不再需要控制器的干預(yù)。
由主機(jī)1發(fā)起到主機(jī)3的通信流程和以上類似,第1步和第2步都能執(zhí)行,在第3步由于不能通過同網(wǎng)認(rèn)證而終止。這樣交換機(jī)沒有主機(jī)1和主機(jī)3的雙向流表項,2個主機(jī)間的通信就無法進(jìn)行。
2.2.1.2 軟件設(shè)計
依據(jù)設(shè)計思想章節(jié)內(nèi)容,軟件基于ryu開源SDN控制器軟件使用python語言設(shè)計, 分為北向接口(vnet_rest)、網(wǎng)絡(luò)管理(vnet_manager)、轉(zhuǎn)發(fā)決策(vnet_switch)三大模塊實現(xiàn),模塊之間的信息關(guān)系如圖4所示。

圖4 模塊信息關(guān)系
1)vnet_rest模塊:實現(xiàn)北向接口功能,負(fù)責(zé)解析虛擬網(wǎng)絡(luò)配置與查詢請求并交由vnet_manager模塊處理。本模塊由三個類組成,NetworkController類和MatchController類分別處理網(wǎng)絡(luò)配置和mac匹配設(shè)置,Vnet_RestAPI類注冊北向接口和提供網(wǎng)絡(luò)服務(wù)。模塊被載入時,首先通過Vnet_RestAPI類完成網(wǎng)絡(luò)創(chuàng)建、刪除、獲取信息的北向接口注冊,并映射至NetworkController類相應(yīng)方法;然后進(jìn)行網(wǎng)絡(luò)匹配項的創(chuàng)建、刪除、獲取信息的北向接口注冊,并映射至MatchController類相應(yīng)方法。在完成以上初始化后就等待來自應(yīng)用的虛擬網(wǎng)配置請求:對于虛擬網(wǎng)的創(chuàng)建、刪除、查詢操作,分別由NetworkController類的net_create、net_delete、net_lists方法處理,前兩項操作需提供網(wǎng)絡(luò)id參數(shù);對于MAC匹配條件的創(chuàng)建、刪除、查詢操作,分別由MatchController類的m_create、m_delete、m_lists方法處理,前兩項操作需提供網(wǎng)絡(luò)id和MAC地址參數(shù),查詢操作只需提供網(wǎng)絡(luò)id。
2)vnet_manager模塊:根據(jù)vnet_rest模塊的輸入數(shù)據(jù)管理網(wǎng)絡(luò)信息;提供same_network接口供vnet_switch模塊判斷兩臺通信的主機(jī)是否在同一個虛擬網(wǎng)內(nèi);在虛擬網(wǎng)或匹配項被刪除時,構(gòu)造包含被刪除的網(wǎng)絡(luò)id和MAC地址信息的事件類對象,并發(fā)送至vnet_switch模塊作相應(yīng)處理。
3)vnet_switch模塊:在收到虛擬網(wǎng)或匹配項被刪除的事件通知后,通過change_handler方法查詢被刪除的網(wǎng)絡(luò)id和MAC地址的對應(yīng)信息,若有符合條件的結(jié)果則構(gòu)造MAC地址匹配規(guī)則,然后向?qū)?yīng)的交換機(jī)發(fā)送刪除流表的指令。
另外要監(jiān)視以下三種交換機(jī)事件并作相應(yīng)處理:
交換機(jī)連接事件:當(dāng)有新的交換機(jī)連接控制器時,清除該交換機(jī)的流表,防止錯誤轉(zhuǎn)發(fā)數(shù)據(jù)包;
交換機(jī)失效事件:當(dāng)交換機(jī)失效時,刪除數(shù)據(jù)表中該交換機(jī)對應(yīng)的設(shè)備id、端口、MAC地址等映射信息。
packet-in消息:由Vnet_Switch類的packet_in_handler方法解析并處理交換機(jī)上報的packet-in消息,流程如下:
1)首先獲取數(shù)據(jù)包的源MAC地址、目的MAC地址,交換機(jī)id和端口等信息,添加到數(shù)據(jù)表,并獲取目的MAC的出端口。
2)判斷源MAC地址、目的MAC地址是否屬于同一個虛擬網(wǎng)絡(luò)。
3)若源和目的屬于同一個虛擬網(wǎng)絡(luò)并且出端口非泛洪,則向交換機(jī)下發(fā)相應(yīng)流表。
4)最后,若源和目的屬于同一個虛擬網(wǎng)絡(luò),或者出端口是泛洪,則通過交換機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)包。
2.2.2 基于VLAN劃分
VLAN虛擬局域網(wǎng)是一種將局域網(wǎng)設(shè)備從邏輯上劃分成一個個網(wǎng)段,從而實現(xiàn)網(wǎng)絡(luò)隔離的數(shù)據(jù)交換技術(shù)。具有VLAN功能交換機(jī)的端口一般分兩種模式:訪問鏈路和匯聚鏈路[8]。訪問端口只能屬于1個VLAN,用于連接計算機(jī)網(wǎng)口,使用以太網(wǎng)幀結(jié)構(gòu)包進(jìn)行傳輸。匯聚端口允許多個 VLAN通過,用于交換機(jī)的互聯(lián),其使用802.1Q幀結(jié)構(gòu)包傳輸數(shù)據(jù)[9]。802.1Q幀在以太網(wǎng)幀中插入了關(guān)鍵的VLAN標(biāo)簽,用VLAN標(biāo)簽識別每個虛擬網(wǎng),可以實現(xiàn)各虛擬網(wǎng)間的地址空間復(fù)用[10]。
Openflow協(xié)議的流表匹配域包括端口、MAC地址、IP地址等多個匹配項,下面僅以按端口匹配的方式描述使用VLAN劃分虛擬網(wǎng)的方法。
網(wǎng)絡(luò)配置操作分兩步:創(chuàng)建虛擬網(wǎng),指定唯一的網(wǎng)絡(luò)ID,控制器在處理創(chuàng)建網(wǎng)絡(luò)的指令時要分配唯一的VLAN號與該網(wǎng)絡(luò)ID關(guān)聯(lián);把某交換機(jī)的指定端口加入該虛擬網(wǎng),匹配項是交換機(jī)ID和端口號的組合。
基于VLAN實現(xiàn)虛擬網(wǎng)主要涉以下處理:
依據(jù)輸入的虛擬網(wǎng)配置參數(shù)建立虛擬網(wǎng)信息庫,根據(jù)信息庫通過計算生成流表項下發(fā)給交換機(jī),實現(xiàn)以下功能:
1)在網(wǎng)絡(luò)末節(jié)點(diǎn)處進(jìn)行數(shù)據(jù)幀轉(zhuǎn)換,保證交換機(jī)到計算機(jī)間傳輸以太網(wǎng)幀,交換機(jī)之間傳輸802.1Q幀。
2)根據(jù)信息庫設(shè)置802.1Q幀中VLAN標(biāo)簽。
3)計算虛擬網(wǎng)節(jié)點(diǎn)間的路徑,生成相應(yīng)流表項下發(fā),建立節(jié)點(diǎn)間通路。
圖5顯示了兩個虛擬網(wǎng)的拓?fù)洌鳈C(jī)1、2和4劃入同一個虛擬網(wǎng),假定交換機(jī)1和2的設(shè)備ID分別是01:00:00:00:00:00:00:01和01:00:00:00:00:00:00:02,主機(jī)1至6的MAC地址為00:00:00:00:00:01~00:00:00:00:00:06。

圖5 網(wǎng)絡(luò)拓?fù)?/p>
表4為交換機(jī)1上和第1個虛擬網(wǎng)相關(guān)的流表。

表4 交換機(jī)1流表
2.2.3 隧道技術(shù)
在SDN網(wǎng)絡(luò)中,雖然交換機(jī)的流表機(jī)制已打破了傳統(tǒng)網(wǎng)絡(luò)中的層次化概念,但是網(wǎng)絡(luò)的末端一般還是通過以太網(wǎng)接入的計算機(jī)終端,其對數(shù)據(jù)包的處理機(jī)制還是分層的架構(gòu)。二層隧道的機(jī)制是把網(wǎng)絡(luò)二層信息封裝在三層分組內(nèi),從而創(chuàng)建跨物理三層IP網(wǎng)絡(luò)或SDN網(wǎng)絡(luò)的虛擬化二層網(wǎng)絡(luò),對于終端來說像是連接到同一個二層子網(wǎng)一樣[5]。由于不需要大量的二層域,利用在三層IP分組中封裝二層以太網(wǎng)幀傳輸?shù)臋C(jī)制可以基于現(xiàn)有IP網(wǎng)絡(luò)建立虛擬網(wǎng)絡(luò),有利于網(wǎng)絡(luò)規(guī)模的擴(kuò)展和跨區(qū)域組網(wǎng)。
隧道兩端終結(jié)于交換機(jī),隧道末端需完成對數(shù)據(jù)包的隧道格式的封裝和解包,如圖6所示。目前OpenFlow協(xié)議支持MPLS(Multi-Protocol Label Switching,多協(xié)議標(biāo)簽交換)[11]的隧道方式,雖然不直接支持GRE(Generic Routing Encapsulation,通用路由封裝協(xié)議),不過可以結(jié)合其它技術(shù)實現(xiàn)。Open vSwitch(OVS)是一款基于開源軟件實現(xiàn)的OpenFlow虛擬交換機(jī),其支持包括GRE在內(nèi)的多種隧道協(xié)議,可以通過OVSDB Mgmt(Open vSwitch Database Management Protocol,OVSDB管理協(xié)議)遠(yuǎn)程配置管理OVS(如隧道相關(guān)操作)。盛科公司的OpenFlow交換機(jī)軟件平臺就是基于OVS協(xié)議棧實現(xiàn),其支持的L2VPN包括L2 over MPLS和L2 over GRE等。

圖6 隧道連接
GRE虛擬網(wǎng)絡(luò)配置操作分三步:
1)創(chuàng)建虛擬網(wǎng),指定唯一的網(wǎng)絡(luò)ID。
2)建立GRE隧道和網(wǎng)絡(luò)ID關(guān)聯(lián),主要參數(shù)包括本地IP地址,對端IP地址以及指定的唯一的隧道號等。當(dāng)隧道建立后將在交換機(jī)上創(chuàng)建1個邏輯端口,可以和物理端口等同作為流表的匹配項或輸入輸出端口。
3)把流匹配條件組合加入該虛擬網(wǎng)。
2.3 網(wǎng)絡(luò)切片方案
FlowVisor是一種代理控制器,工作在SDN網(wǎng)絡(luò)控制層和轉(zhuǎn)發(fā)層之間。其一方面為OpenFlow交換機(jī)提供透明代理,另一方面又扮演多控制器的角色[12],具備控制器(相對于下層交換機(jī))和交換機(jī)(相對于上層控制器)雙重身份。其核心思想是把網(wǎng)絡(luò)流空間劃分成多個分片,每個分片由一個SDN控制器管理,多個分片間共享網(wǎng)絡(luò)資源[6]。
2.4 虛擬網(wǎng)技術(shù)比較
基于OpenFlow的虛擬網(wǎng)絡(luò)技術(shù)相對于傳統(tǒng)的VLAN、VPN等技術(shù)除了SDN本身的架構(gòu)優(yōu)勢,其開放的南北向接口有益于應(yīng)用和網(wǎng)絡(luò)的無縫集成,能使實現(xiàn)方法不斷優(yōu)化,促進(jìn)網(wǎng)絡(luò)虛擬化的不斷發(fā)展,而不再受傳統(tǒng)網(wǎng)絡(luò)廠商的限制。
SDN開放的架構(gòu)使得虛擬網(wǎng)絡(luò)實現(xiàn)方式多樣化,不局限于某種模式。FlowVisor獨(dú)辟蹊徑,以代理控制器的模式運(yùn)行,在數(shù)據(jù)控制平面的連接中進(jìn)行虛擬化[6],對網(wǎng)絡(luò)流空間進(jìn)行分片構(gòu)建虛擬網(wǎng)。
以上根據(jù)傳統(tǒng)虛擬網(wǎng)絡(luò)技術(shù)對云計算平臺支持的不足,引入SDN網(wǎng)絡(luò)架構(gòu)并提出基于OpenFlow的虛擬網(wǎng)絡(luò)實現(xiàn)方法。OpenFlow南向接口屏蔽了物理轉(zhuǎn)發(fā)設(shè)備的差異,實現(xiàn)了底層網(wǎng)絡(luò)透明化,賦予網(wǎng)絡(luò)原生的虛擬化能力。基于OpenFlow實現(xiàn)完善可靠的虛擬網(wǎng)絡(luò)需要考慮和解決許多技術(shù)問題,如流匹配沖突檢測等。開放的SDN能使更多的參與者加入到研發(fā)和創(chuàng)新中,促進(jìn)網(wǎng)絡(luò)虛擬化技術(shù)的大力發(fā)展。
[1] 周萬,王峰,常惠鋒. SDN的基本特征和典型應(yīng)用方案[J].電信技術(shù),2014(06):35-41. ZHOU Wan,WANG Feng,CHANG Hui-feng. Basic Character of SDN and Typical Application Scheme[J]. Telecommunications Technology,2014,6:35-41.
[2] 陳琳,吳強(qiáng).基于SDN技術(shù)構(gòu)建數(shù)據(jù)中心虛擬網(wǎng)絡(luò)[J]. 互聯(lián)網(wǎng)天地,2013(01):40-44. CHEN Lin,WU Qiang. Construction of Virtual Network in Datacenter based on SDN Technology[J].China Internet, 2013,1:40-44.
[3] 張斌,羅東森. 云計算數(shù)據(jù)中心SDN部署研究[J]. 通信技術(shù),2014,47(12):1424-1428. ZHANG Bin,LUO Dong-sen. SDN Deployment in Cloud-Computing Data Center [J].Communications Technology, 2014, 47(12):1424-1428.
[4] 雷葆華,王峰,王茜等.SDN核心技術(shù)剖析和實戰(zhàn)指南[M]. 北京:電子工業(yè)出版社,2013. LEI Bao-hua,WANG Feng,WANG Qian,et al. Deciphering SDN:Core Techniques and Practical Guide[M]. Beijing:Publishing House of Electronics Industry,2013.
[5] Thomas D.Nadeau,Ken Gray.軟件定義網(wǎng)絡(luò):SDN與openflow解析[M].畢軍,單業(yè),張紹宇,姚廣譯. 北京:人民郵電出版社,2014. Thomas D.Nadeau,Ken Gray. SDN: Software Defined Networks[M]. Beijing:Posts and Telecom Press,2014.
[6] 黃韜,劉江,魏亮等. 軟件定義網(wǎng)絡(luò)核心原理與應(yīng)用實踐[M]. 北京:人民郵電出版社,2014. HUANG Tao,LIU Jiang,WEI Liang,ZHANG Jiao,et al. SDN Core Principles and Application Practice[M]. Beijing:Posts and Telecom Press,2014.
[7] Open Networking Foundation[EB/OL]. http://www.opennetworking.org.
[8] 范賢學(xué),金興華. 數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計[J].指揮信息系統(tǒng)與技術(shù),2014,5(03):64-69. FAN Xian-xue,JIN Xing-hua. Communication Network Structure Design for Data Center[J]. Command Information System and Technology, 2014,5(03):64-69.
[9] 三輪賢一. 圖解網(wǎng)絡(luò)硬件[M]. 盛榮譯. 北京:人民郵電出版社,2014. Kenichi Miwa. Graphical Network Hardware[M]. Beijing:Posts and Telecom Press,2014.
[10] 魏亮,王健,劉江等. 基于SDN的虛擬化平臺設(shè)計[J].電信技術(shù),2014(06):47-52. WEI Liang,WANG Jian,LIU Jiang,et al. Design of SDN-based Virtual Platform[J]. Telecommunications Technology,2014(06):47-52.
[11] 龍艷軍. MPLS VPN技術(shù)及其虛擬網(wǎng)絡(luò)實驗研究[J]. 計算機(jī)與數(shù)字工程,2013,41(01):85-87. LONG Yan-jun. Research on MPLS VPN Technology and Virtual Network Experiment[J]. Computer and Digital Engineering,2013,41(1):85-87.
[12] Siamak Azodolmolky.軟件定義網(wǎng)絡(luò):基于OpenFlow的SDN技術(shù)揭秘[M].徐磊譯. 北京:機(jī)械工業(yè)出版社,2014. Siamak Azodolmolky. Software Defined Networking with OpenFlow[M]. Beijing:China Machine Press,2014.
GU Xian-Feng(1976-),male, B.Sci., engineer, majoring in network routing technology.
Implementation of Open Flow-based Virtual Network
GU Xian-feng
(No.28 Institute, CETC, Nanjing Jiangsu 210007, China)
SDN (Software Defined Networking) is a software programmable network framework and technology featuring decoupled data and control planes, and some procotols represented by OpenFlow are usd by the control plane to realize central control of the forwarding plane. With these characteristics,SDN framework could fairly meets the demands by cloud-computing for centralized,standardized and automutized configuration and management of virtual network.Aiming at the deficient support for cloud computing platform by traditional virtual network technology, this paper proposes a design of virtual network based on OpenFlow-based SDN technology, describes the principles and and processing flows of several virtual network solutions, and finally discusses the modular software design and functions of some key codes.
SDN ; OpenFlow ;flow table;virtual network
date:2014-10-20;Revised date:2015-02-10
TP393
A
1002-0802(2015)03-0335-07

顧憲鋒(1976—),男,學(xué)士,工程師,主要研究方向為網(wǎng)絡(luò)路由技術(shù)。
10.3969/j.issn.1002-0802.2015.03.017
2014-10-20;
2015-02-10