張俊帥,楊 昊
(中國計(jì)量學(xué)院 信息工程學(xué)院,浙江 杭州 310018)
OpenFlow交換機(jī)流表轉(zhuǎn)發(fā)設(shè)計(jì)與實(shí)現(xiàn)
張俊帥,楊 昊
(中國計(jì)量學(xué)院 信息工程學(xué)院,浙江 杭州 310018)
在傳統(tǒng)網(wǎng)絡(luò)中,交換機(jī)和路由器的信息以不同的形式(MAC表、路由表等)進(jìn)行存儲,需要在整個(gè)網(wǎng)絡(luò)中通過非常復(fù)雜的交換和路由協(xié)議進(jìn)行計(jì)算才能得到.根據(jù)這些不同的表,可以對數(shù)據(jù)平面進(jìn)行指令操作.OpenFlow協(xié)議將協(xié)議規(guī)范化和集中化,通過控制器管理流表代替其他所有轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)表項(xiàng),相對傳統(tǒng)網(wǎng)絡(luò)而言,它具有表項(xiàng)單一、過程簡單且有著相當(dāng)大的優(yōu)勢,是未來網(wǎng)絡(luò)發(fā)展的必然趨勢.流表貫穿整個(gè)網(wǎng)絡(luò)并且是網(wǎng)絡(luò)能夠正常工作的核心,流量的轉(zhuǎn)發(fā)過程將影響到整個(gè)網(wǎng)絡(luò),并詳細(xì)介紹了流表的轉(zhuǎn)發(fā)過程,包括vxlan轉(zhuǎn)發(fā)、同OVS流量轉(zhuǎn)發(fā)以及跨OVS流量轉(zhuǎn)發(fā).
OpenFlow協(xié)議;流表;vxlan轉(zhuǎn)發(fā);同OVS流量轉(zhuǎn)發(fā);跨OVS流量轉(zhuǎn)發(fā)
軟件定義網(wǎng)絡(luò)(SDN)作為新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),其核心思想是將控制平面和數(shù)據(jù)平面分離,由一個(gè)控制平面統(tǒng)一指揮數(shù)據(jù)平面,共同完成網(wǎng)絡(luò)中的數(shù)據(jù)傳輸;網(wǎng)絡(luò)設(shè)備只需要負(fù)責(zé)數(shù)據(jù)包的轉(zhuǎn)發(fā),復(fù)雜的網(wǎng)絡(luò)控制功能交由控制器集中處理.在越來越復(fù)雜的網(wǎng)絡(luò)環(huán)境下,一臺普通的網(wǎng)絡(luò)設(shè)備將有300多個(gè)功能模塊、近萬個(gè)協(xié)議,軟硬件集成度高、設(shè)計(jì)復(fù)雜,“控制轉(zhuǎn)發(fā)分離”“轉(zhuǎn)發(fā)設(shè)備傻瓜化”將極大地簡化網(wǎng)絡(luò)的規(guī)劃設(shè)計(jì)和設(shè)備制造,而用戶也只需要對一個(gè)或少數(shù)幾個(gè)控制節(jié)點(diǎn)進(jìn)行管理即可完成對全網(wǎng)的運(yùn)行和維護(hù),運(yùn)維成本得以大大降低.而OpenFlow是這套體系正常運(yùn)做的基石.OpenFlow協(xié)議是一個(gè)基于一定標(biāo)準(zhǔn)的開放協(xié)議,建立了控制平面與數(shù)據(jù)平面交互的標(biāo)準(zhǔn)[1].控制平面和數(shù)據(jù)平面建立連接之后,數(shù)據(jù)平面上報(bào)端口狀態(tài),控制平面向數(shù)據(jù)平面添加或刪除流表項(xiàng)都需要通過OpenFlow來完成.可以說OpenFlow協(xié)議是SDN體系中流量轉(zhuǎn)發(fā)的核心部分[2].
圖1 OpenFlow組件Figure 1 OpenFlow module
OpenFlow交換機(jī)和控制器共同完成原本完全需要由交換機(jī)和路由器控制的報(bào)文轉(zhuǎn)發(fā)過程,從而達(dá)到數(shù)據(jù)轉(zhuǎn)發(fā)與路由控制分離的目的[3].數(shù)據(jù)轉(zhuǎn)發(fā)由控制器通過規(guī)定的接口操作來控制OpenFlow交換機(jī)中的流表.如圖1,OpenFlow最重要的組件是:OpenFlow控制器(Controller),OpenFlow交換機(jī)(OVS),OpenFlow協(xié)議[4].Controller是所有基于OpenFlow軟件定義網(wǎng)絡(luò)(SDN)的核心.Controller運(yùn)行于控制平面,并通過控制平面邏輯對網(wǎng)絡(luò)交換機(jī)中的流進(jìn)行指令操作.Controller運(yùn)行在服務(wù)器上,以此來保證所有OVS都可以訪問,管理員或者用戶可以通過用戶界面以及控制功能對整個(gè)網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)控制,從而大大的方便了操作[5].如果流表中沒有列出新的事件發(fā)生,OVS將向Controller發(fā)出請求.OVS與Controller進(jìn)行連接,對流表進(jìn)行分析和安裝,所有的OVS均由Controller統(tǒng)一管理和配置,貫穿整個(gè)網(wǎng)絡(luò)的只有單一的一種表項(xiàng)即流表.
流表是OpenFlow最重要的組成部分,相當(dāng)于常規(guī)的MAC表和路由表,每個(gè)流表由許多流表項(xiàng)組成,流表項(xiàng)則代表轉(zhuǎn)發(fā)規(guī)則,進(jìn)入交換機(jī)的數(shù)據(jù)包通過查詢流表項(xiàng)來取得對應(yīng)的操作[6].所謂流表,其實(shí)可以看作是OpenFlow對網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)轉(zhuǎn)發(fā)功能進(jìn)行的一種抽象.在傳統(tǒng)的網(wǎng)絡(luò)設(shè)備中,交換機(jī)和路由器的數(shù)據(jù)轉(zhuǎn)發(fā)需要依賴設(shè)備中保存的二層MAC地址轉(zhuǎn)發(fā)表或者三層IP地址路由表,而OpenFlow交換機(jī)中使用的流表也是如此,不過在它的表項(xiàng)中統(tǒng)一整合了網(wǎng)絡(luò)中所有層次的配置信息,從而在進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)時(shí)能夠使用更加豐富的規(guī)則.
流表項(xiàng)主要由匹配字段、表項(xiàng)優(yōu)先級、計(jì)數(shù)器、表項(xiàng)指令、超時(shí)時(shí)間和Cookie組成[7].其中,匹配字段和表項(xiàng)優(yōu)先級在流表中共同定義了一個(gè)唯一的流表項(xiàng).匹配字段的結(jié)構(gòu)包含很多匹配項(xiàng),涵蓋了鏈路層、網(wǎng)絡(luò)層和傳輸層的大部分標(biāo)識.優(yōu)先級表示流表存在沖突時(shí),流表項(xiàng)的執(zhí)行順序;指令表明了與該流表項(xiàng)匹配的數(shù)據(jù)包應(yīng)該執(zhí)行的下一步操作;計(jì)數(shù)器用來統(tǒng)計(jì)數(shù)據(jù)流的基本數(shù)據(jù)[8].而在OpenFlow網(wǎng)絡(luò)中將不再區(qū)分路由器和交換機(jī),都統(tǒng)稱為OpenFlow交換機(jī),這也是由于OpenFlow交換機(jī)采取流的匹配和轉(zhuǎn)發(fā)模式所致[9].
為了提高數(shù)據(jù)流的查詢效率,目前的流表查詢通過多級流表和流水線模式來獲得對應(yīng)操作.每臺OpenFlow交換機(jī)的OpenFlow流水線包含多級流表,每個(gè)流表包含多個(gè)流表項(xiàng).OpenFlow流水線處理定義了數(shù)據(jù)包如何與流表互動,一個(gè)OpenFlow交換機(jī)至少要有一條流表[10].流表工作流程如圖2.
圖2 OpenFlow交換機(jī)流水線示意圖Figure 2 Openflow switch assembly line chart
當(dāng)數(shù)據(jù)包進(jìn)入到OVS之后,數(shù)據(jù)包首先會查找一個(gè)與之相匹配的流表項(xiàng).當(dāng)找到匹配的流表項(xiàng)后,執(zhí)行流表項(xiàng)中指定的轉(zhuǎn)發(fā)動作.這些指令會明確地將數(shù)據(jù)包指向另一個(gè)流表,然后執(zhí)行相同的動作.流表項(xiàng)只能將數(shù)據(jù)包指向流表號大于自己所在的流表號的流表,也就是說流水線的處理只能向前進(jìn)行而不能倒退.若匹配流表項(xiàng)不將數(shù)據(jù)包指向其它流表,則流水線處理就此停止.當(dāng)流水線處理停止后,數(shù)據(jù)包根據(jù)它所聯(lián)合的動作集進(jìn)行處理和照常轉(zhuǎn)發(fā).當(dāng)有數(shù)據(jù)包不匹配流表中的流表項(xiàng)時(shí),這就是table-miss.table-miss的動作依據(jù)流表的配置,table-miss表項(xiàng)會指出如何處理不匹配的數(shù)據(jù)包:如丟棄、傳遞到其它的流表和packet-in上送控制器.
2.1 Controller與OVS建立連接
流表的轉(zhuǎn)發(fā)是建立在Controller與OVS連接的基礎(chǔ)上,由圖3知Controller與OVS的連接需要以下步驟:
圖3 Controller與OVS連接圖Figure 3 Controller and ovs connection
1)Controller與OVS之間通過TCP三次握手過程建立連接.
2)TCP建立連接之后,Controller和OVS互發(fā)hello報(bào)文,當(dāng)hello報(bào)文在Controller和OVS相互交換之后,Controller與OVS之間就建立了連接.
3)兩者建立連接之后,Controller會向OVS發(fā)送功能請求(Feature Request)報(bào)文來獲得OVS的性能、功能等一系列參數(shù),當(dāng)OVS收到請求之后,會向Controller發(fā)送功能響應(yīng)(Feature Apply)報(bào)文來描述OVS的詳細(xì)參數(shù).
4)Controller獲得OVS的性能信息之后,OpenFlow協(xié)議特定操作就可以開始進(jìn)行了.
5)Echo請求(Echo Request)和Echo響應(yīng)(Echo Apply)屬于OpenFlow中的對稱報(bào)文,作為Controller和OVS之間保持連接的消息(Keep-alive)來使用.
2.2 轉(zhuǎn)發(fā)過程設(shè)計(jì)
流量轉(zhuǎn)發(fā)包括兩種情況:同OVS下流量的轉(zhuǎn)發(fā)和跨OVS流量的轉(zhuǎn)發(fā).如圖4,19.1.1.1到18.1.1.1和19.1.1.3到18.1.1.2的流量轉(zhuǎn)發(fā)稱為同OVS下的流量轉(zhuǎn)發(fā);19.1.1.1到19.1.1.3的流量轉(zhuǎn)發(fā)稱為跨OVS下的流量轉(zhuǎn)發(fā).
圖4 流表轉(zhuǎn)發(fā)圖Figure 4 Flow table forwarding chart
對于上述兩種不同流量的轉(zhuǎn)發(fā)過程,分別有不同的方案.對于同OVS下流量的轉(zhuǎn)發(fā)相對簡單,下面以18.1.1.1到19.1.1.1進(jìn)行說明.
1)虛擬機(jī)(VM)發(fā)送ICMP報(bào)文,ICMP報(bào)文從VM(18.1.1.1)發(fā)送到達(dá)OVS之后,首先會查詢指導(dǎo)轉(zhuǎn)發(fā)的流表項(xiàng),對于首包,無法找到可以指導(dǎo)報(bào)文轉(zhuǎn)發(fā)的表項(xiàng),所以ICMP報(bào)文根據(jù)初始流表項(xiàng)匹配table-miss表項(xiàng)后packet-in上送Controller.OVS(172.16.0.18)將ICMP報(bào)文進(jìn)行OpenFlow封裝,主要包含目的IP(172.16.27.2)、源IP(172.16.0.18)和入端口(tap128=4).
2)Controller收到加OpenFlow封裝之后的報(bào)文后,會進(jìn)行解封裝動作,得到原始ICMP報(bào)文,通過計(jì)算網(wǎng)絡(luò)拓?fù)?根據(jù)ICMP報(bào)文中的目的IP查找出端口(tap137=6),然后將原始ICMP報(bào)文packet-out到OVS(172.16.0.18),同時(shí)下flow_mod表項(xiàng),其中packet-out報(bào)文中包含了ICMP報(bào)文的目的IP(19.1.1.1),flow_mod表項(xiàng)包含了ICMP報(bào)文的目的IP(19.1.1.1)和出端口(tap137=6).
3)VM(19.1.1.1)收到ICMP報(bào)文之后,VM會對此報(bào)文進(jìn)行響應(yīng),即ICMP報(bào)文會按照相同的過程由19.1.1.1發(fā)送到18.1.1.1,一次請求一次響應(yīng)之后,所有類似報(bào)文會在兩個(gè)flow_mod表項(xiàng)的指導(dǎo)下進(jìn)行不間斷轉(zhuǎn)發(fā),除非具有新特征的報(bào)文出現(xiàn),否則不會再次上送Controller,這樣就達(dá)到了上文提到的數(shù)據(jù)平面和控制平面相分離的目的.
對于跨OVS下流量的轉(zhuǎn)發(fā)相對復(fù)雜,本方案引入了Vxlan隧道的概念,如圖5所示,使報(bào)文經(jīng)過Vxlan隧道發(fā)送到其他OVS下的虛擬機(jī),來達(dá)到流量相通的目的.下面以18.1.1.1到19.1.1.3進(jìn)行說明.
1)VM發(fā)送ICMP報(bào)文,ICMP報(bào)文從VM(18.1.1.1)發(fā)送到達(dá)OVS之后,首先會查詢指導(dǎo)轉(zhuǎn)發(fā)的流表項(xiàng),對于首包,無法找到可以指導(dǎo)報(bào)文轉(zhuǎn)發(fā)的表項(xiàng),所以ICMP報(bào)文根據(jù)初始流表項(xiàng)匹配table-miss表項(xiàng)后packet-in上送Controller.OVS(172.16.0.18)將ICMP報(bào)文進(jìn)行OpenFlow封裝,主要包含目的IP(172.16.27.2)、源IP(172.16.0.18)和入端口(tap128=4).
2)Controller收到加OpenFlow封裝之后的報(bào)文后,會進(jìn)行解封裝動作,得到原始ICMP報(bào)文,通過計(jì)算網(wǎng)絡(luò)拓?fù)?根據(jù)ICMP報(bào)文中的目的
圖5 Vxlan隧道圖Figure 5 Vxlan tunnel chart
IP查找出端口,并且計(jì)算出ICMP報(bào)文所需封裝(vxlan封裝).
3)Controller將原始的ICMP報(bào)文packet-out到OVS(172.16.0.18),并且通過flow_mod下發(fā)指導(dǎo)該ICMP流量轉(zhuǎn)發(fā)的流表.流表中需要通過action來指導(dǎo)流量的轉(zhuǎn)發(fā)動作,主要進(jìn)行vxlan的封裝,包括外層MAC頭、IP頭和UDP頭.IP頭包括源IP(VTEP IP:18.18.18.18)和目的IP(VTEP IP:19.19.19.19),MAC頭包含源MAC(源IP對應(yīng)的MAC地址)和目的MAC(目的IP對應(yīng)的MAC地址),UDP頭主要是用來指導(dǎo)報(bào)文從哪條vxlan隧道進(jìn)行轉(zhuǎn)發(fā).
4)OVS(172.16.0.18)對完成vxlan封裝之后,該ICMP報(bào)文將由vxlan隧道口進(jìn)入隧道,在隧道中目的OVS(172.16.0.19)對該報(bào)文進(jìn)行解封轉(zhuǎn),進(jìn)而獲得ICMP報(bào)文的目的IP(19.19.19.19)和目的MAC,獲得這些信息之后,ICMP報(bào)文從另一端的vxlan隧道口發(fā)出到達(dá)目的OVS(172.16.0.19),此時(shí)的報(bào)文在隧道中經(jīng)過解封裝后為原始ICMP報(bào)文.
5)目的OVS(172.16.0.19)收到原始ICMP報(bào)文后并不知道該發(fā)送到哪個(gè)虛擬機(jī)下,所以仍然需要將該報(bào)文再次packet-in上送Controller,同樣的需要進(jìn)行OpenFlow封裝,包含目的IP(172.16.27.2)、源IP(172.16.0.19)和入端口(vxlan隧道口),上送到Controller后,Controller再次對該報(bào)文進(jìn)行解封裝計(jì)算網(wǎng)絡(luò)拓?fù)?并將該報(bào)文packet-out到目的OVS(172.16.0.19),包含報(bào)文的出端口(tap147=6),并且通過flow_mod下發(fā)指導(dǎo)該ICMP流量轉(zhuǎn)發(fā)的流表.這樣VM(18.1.1.1)到VM(19.1.1.3)的請求完成了,然后VM(19.1.1.3)會對該請求做出響應(yīng),按照同樣的轉(zhuǎn)發(fā)過程將ICMP報(bào)文由VM(19.1.1.3)發(fā)送到VM(18.1.1.1).在完成首包發(fā)送之后,所有的類似報(bào)文不需要上送Controller,將在四個(gè)flow_mod的指導(dǎo)下進(jìn)行不間斷的轉(zhuǎn)發(fā),進(jìn)而達(dá)到數(shù)據(jù)平面和控制平面分離的目的.
按照上述過程的設(shè)計(jì)方案,采用java編寫代碼來實(shí)現(xiàn),同時(shí)采用javascript、css3和html5編寫web頁面,借助web頁面可以清晰的展示不同流量的轉(zhuǎn)發(fā)情況.
OVS和Controller建立連接之后,Controller需要給OVS下發(fā)初始流表,否則進(jìn)入OVS的報(bào)文查找不到流表項(xiàng),將做丟棄處理.圖6和圖7是下發(fā)的初始流表項(xiàng),從圖中可以看到table-miss表項(xiàng)在下發(fā)初始流表的作用,即將報(bào)文上送到Controller.table-miss表項(xiàng)的意思是在找不到任何匹配項(xiàng)的時(shí)候,報(bào)文會命中這個(gè)表項(xiàng),進(jìn)而指導(dǎo)這些報(bào)文的轉(zhuǎn)發(fā)行為,因此table-miss表項(xiàng)設(shè)計(jì)成優(yōu)先級最低且無匹配項(xiàng).若沒有這個(gè)表項(xiàng),不匹配的報(bào)文默認(rèn)是被丟棄.
圖8是18.1.1.1 ping 19.1.1.1,可以看到有流量的轉(zhuǎn)發(fā),在圖9中,將轉(zhuǎn)發(fā)的流表獲取到web頁面上,可以清晰的看到18.1.1.1和19.1.1.1之間的流量在端口4和端口6之間互通.
從18.1.1.1發(fā)出的原始ICMP報(bào)文的目的MAC、源MAC、目的IP以及源IP,分別為00:16:3f:aa:aa:aa、00:50:56:95:32:1d、19.1.1.1和18.1.1.1.經(jīng)過OpenFlow封裝的ICMP報(bào)文的目的MAC,源MAC,目的IP,源IP,分別為00:50:56:af:6f:1a、00:16:3f:aa:aa:aa、19.1.1.1和18.1.1.1.
圖6 172.16.0.18初始化流表Figure 6 172.16.0.18 initialization flow table
圖7 172.16.0.18初始化流表Figure 7 172.16.0.18 initialization flow table
圖8 18.1.1.1 ping 19.1.1.1Figure 8 18.1.1.1 ping 19.1.1.1
圖9 同OVS流表轉(zhuǎn)發(fā)Figure 9 Sameovs flow tableforwarding
圖10是18.1.1.1 ping 19.1.1.3,可以看到有流量的轉(zhuǎn)發(fā),在圖11中,將轉(zhuǎn)發(fā)的流表獲取到web頁面上,可以清晰的看到18.1.1.1和19.1.1.3之間的流量互通.從18.1.1.1發(fā)出的報(bào)文從入端口(in_port:4)發(fā)出,經(jīng)過vxlan隧道后,從出端口(output:6)到達(dá)19.1.1.3;從19.1.1.3響應(yīng)的報(bào)文從入端口(in_port:6)發(fā)出,經(jīng)過隧道后,從出端口(output:4)到達(dá)18.1.1.1.
圖10 18.1.1.1 ping 19.1.1.3Figure 10 18.1.1.1 ping 19.1.1.3
圖11 跨OVS流表轉(zhuǎn)發(fā)Figure 11 Differentovs flow table forwarding
從18.1.1.1發(fā)出的原始ICMP報(bào)文目的MAC、源MAC、目的IP以及源IP,分別為00:16:3f:aa:aa:aa、00:50:56:95:32:1d、19.1.1.1和18.1.1.1.增加vxlan封裝的ICMP報(bào)文的目的MAC、源MAC、目的IP以及源IP,分別為00:0f:e2:00:00:18、00:50:56:6d:1b:a4、19.19.19.19和18.18.18.18.
流表作為軟件定義網(wǎng)絡(luò)(SDN)的核心,對于整個(gè)網(wǎng)絡(luò)極其重要.流量不通,網(wǎng)絡(luò)則不通,對于企業(yè)來說整個(gè)網(wǎng)絡(luò)就處于癱瘓狀態(tài),對于網(wǎng)絡(luò)的業(yè)務(wù)如服務(wù)鏈、防火墻等的存在已毫無意義,這將對企業(yè)造成不可估量的后果.一個(gè)合理的流表轉(zhuǎn)發(fā)方案將起著決定的作用,是整個(gè)網(wǎng)絡(luò)存在的基石,上文提出的設(shè)計(jì)方案涵蓋了各種形式的流量轉(zhuǎn)發(fā)過程,切實(shí)可行地保證了流量在不同情況下的成功轉(zhuǎn)發(fā),進(jìn)一步根據(jù)實(shí)現(xiàn)結(jié)果驗(yàn)證了本套方案是合理可行的,是可靠穩(wěn)定的.在此基礎(chǔ)上,整個(gè)網(wǎng)絡(luò)的存在才有意義.
[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-75.
[2] LIN Haizhuo, SUN Lujing, FAN Yuntao, et al. Apply embedded OpenFlow MPLS technology on wireless OpenFlow-OpenRoads[C]//Proc of the 2nd IEEE International Conference on Consumer Electronics, Communications and Networks. Piscataway: IEEE,2012:916-919.
[3] DELY P, KASSLER A, BAYER N. OpenFlow for wireless mesh networks[C]//Proc of the 20th International Conference on Computer, Communications and Networks. Maui: IEEE,2011:1-6.
[4] SALVADORI E, CORINR D, BROGLIO A, et al. Generalizing virtual network topologies in OpenFlow based networks[C]//Proc of GlobalTelecommunications Conference. Kathmandu: IEEE, 2011:1-6.
[5] MIN S, KIM S, LEE J, et al. Implementation of an OpenFlow network virtualization for multi-controller environment[C]//Proc of the 14th International Conference on Advanced Communication Technology. PyeongChang: IEEE,2012:589-592.
[6] 張順淼,鄒復(fù)民.軟件定義網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2013,30(8):2246-2251. ZHANG Shunmiao, ZOU Fumin. Survey on software defined network research[J].Application Research of Computers,2013,30(8):2246-2251.
[7] 周燁,楊旭,李勇,等.基于分類的軟件定義網(wǎng)絡(luò)流表更新一致性方案[J].電子與信息學(xué)報(bào),2013(7):1746-1752. ZHOU Ye, YANG Xu, LI Yong, et al. Classification based consistent flow update scheme in software defined network[J].Journal of Electronics & Information Technology,2013(7):1746-1752.
[8] 左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術(shù)研究[J].軟件學(xué)報(bào),2013,24(5):1078-1097. ZUO Qingyun, CHEN Ming, ZHAO Guangsong, et al. Research on OpenFlow-based SDN technologies[J].Journal of Software,2013,24(5):1078-1097.
[9] 周燁,李勇,蘇厲,等.基于虛擬化的網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)環(huán)境研究[J].電子學(xué)報(bào),2012,40(11):2152-2157. ZHOU Ye, LI Yong, SU Li, et al. Research of network innovation experimental environment based on networkvirtualization[J].Acta Electronica Sinica,2012,40(11):2152-2157.
[10] 王麗君,劉永強(qiáng),張健.基于OpenFlow的未來互聯(lián)網(wǎng)實(shí)驗(yàn)技術(shù)研究[J].電信網(wǎng)技術(shù),2011,6(6):11-14. WANG Lijun, LIU Yongqiang, ZHANG Jian. Research on future internet experimental technology Based on OpenFlow[J].The Manuscript Editing Center,2011,6(6):11-14.
Design and implementation of openflow switch flow table forwarding
ZHANG Junshuai, YANG Hao
(College of Information Engineering, China Jiliang University, Hangzhou 310018, China)
In the traditional network, since the information of switch and router is stored in different forms such as MAC tables and routing tables, the complex calculation of switching and routing protocols is needed in the network to get the tables. According to these different tables, we can operate the data plane with instructions. OpenFlow protocol standardizes and centralizes the protocol, and by using controllers controls the flow table, which takes the place of all other tables to finish forwarding. Compared with the traditional network, the virtual network has the advantages of being simple in structure and direct in process and is the future of network development. Flow table is the core of the network, and the process of flow table forwarding will affect the entire network. The process of forwarding that included vxlan, the same OVS forwarding and the different OVS forwarding was introduced.
OpenFlow protocol; flow table; vxlan forwarding; same OVS forwarding; different OVS forwarding
1004-1540(2015)03-0316-08
10.3969/j.issn.1004-1540.2015.03.013
2015-04-01 《中國計(jì)量學(xué)院學(xué)報(bào)》網(wǎng)址:zgjl.cbpt.cnki.net
張俊帥(1988- ),男,河北省張家口人,碩士研究生,主要研究方向?yàn)镾DN虛擬網(wǎng)絡(luò).E-mail:zhangjunshuai211@sina.com 通訊聯(lián)系人:楊 昊,男,副教授.E-mail:yanghao@cjlu.edu.cn
TP393.03
A