一種在軟件定義網(wǎng)絡(luò)中獲取網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件定義網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種在軟件定義網(wǎng)絡(luò)中獲取網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的方法。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)狀態(tài)指的就是網(wǎng)絡(luò)設(shè)備如何去處理網(wǎng)絡(luò)數(shù)據(jù)包(packet)的,包括轉(zhuǎn)發(fā)和路由,添加、刪除、修改數(shù)據(jù)包包頭的某些字段等等;而具體的處理方式是通過一系列規(guī)則(rule)實(shí)現(xiàn)的,比如二層的轉(zhuǎn)發(fā)規(guī)則(FIB)、IP轉(zhuǎn)發(fā)規(guī)則(包括修改端口、檢驗(yàn)值、TTL等)、VLAN標(biāo)簽操作和ACLs規(guī)則等等。因此,獲取網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)狀態(tài)就是獲取網(wǎng)絡(luò)設(shè)備上所有“真實(shí)”的規(guī)則,這里強(qiáng)調(diào)的“真實(shí)”在于網(wǎng)絡(luò)設(shè)備可能由于軟硬件故障或是固件故障的存在,導(dǎo)致沒能夠執(zhí)行名義上的規(guī)則,比如一條修改目的端口的規(guī)則在執(zhí)行的時(shí)候反而修改了源端口。
[0003]網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)狀態(tài)決定了網(wǎng)絡(luò)上數(shù)據(jù)包是如何被處理的以及如何被轉(zhuǎn)發(fā)或者是路由的,進(jìn)而決定了整個(gè)網(wǎng)絡(luò)的運(yùn)行狀態(tài)。對(duì)網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的監(jiān)控有助于網(wǎng)絡(luò)管理員及時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)故障、優(yōu)化網(wǎng)絡(luò)性能、提供更好的網(wǎng)絡(luò)服務(wù)。在傳統(tǒng)網(wǎng)絡(luò)中,可用于獲取網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的工具有限而低效,比如ping、traceroute和SNMP等等,前兩者只能夠粗略得到數(shù)據(jù)包的轉(zhuǎn)發(fā)規(guī)則,而如果路徑上的某些網(wǎng)絡(luò)設(shè)備拒絕響應(yīng)這些工具,那么連轉(zhuǎn)發(fā)規(guī)則都獲取不了 ;雖然SNMP給出的信息會(huì)較為全面,但是周期性的輪詢所有的網(wǎng)絡(luò)設(shè)備無疑是規(guī)則的及時(shí)準(zhǔn)確性和開銷之間的博弈。軟件定義網(wǎng)絡(luò)的出現(xiàn),使網(wǎng)絡(luò)管理員通過邏輯上集中式的控制器,能夠及時(shí)、準(zhǔn)確的獲取網(wǎng)絡(luò)上所有設(shè)備的所有規(guī)則,再通過分析這些規(guī)貝1J,建立合適的模型,一些類似于控制層面的軟件錯(cuò)誤就可以被檢查出來。然而通過控制器獲取的所有規(guī)則,也僅僅是名義上的規(guī)則,并不代表網(wǎng)絡(luò)設(shè)備的真實(shí)行為,所以網(wǎng)絡(luò)設(shè)備自身的軟硬件故障是沒有辦法從獲取的規(guī)則上檢測(cè)出來的。
[0004]經(jīng)過對(duì)現(xiàn)有技術(shù)的檢索發(fā)現(xiàn),獲取網(wǎng)絡(luò)設(shè)備的真實(shí)轉(zhuǎn)發(fā)狀態(tài)一般是通過觀察真實(shí)的數(shù)據(jù)包在網(wǎng)絡(luò)中是如何被處理來實(shí)現(xiàn)的。一類方法是著眼于被動(dòng)檢測(cè),利用OpenFlow協(xié)議修改每一條流表項(xiàng),使得途徑交換機(jī)的每一個(gè)數(shù)據(jù)包都產(chǎn)生一個(gè)“明信片”,這個(gè)“明信片”中包含了該數(shù)據(jù)包所經(jīng)的交換機(jī)ID、出端口號(hào)和流表的版本號(hào)等信息,這樣一些信息能夠刻畫出數(shù)據(jù)包在網(wǎng)絡(luò)傳輸中途徑每一跳的真實(shí)情況。雖然使用了壓縮算法以及在交換機(jī)和主機(jī)端提供相應(yīng)的數(shù)據(jù)壓縮支持,但是每一個(gè)數(shù)據(jù)包產(chǎn)生一個(gè)“明信片”的代價(jià)依然很高。同時(shí),局限于OpenFlowl.0協(xié)議,該方法必須修改“明信片”中的目的MAC地址來輸出相關(guān)信息,而如果數(shù)據(jù)包的目的MAC地址曾被修改過,該方法是無法發(fā)現(xiàn)的。第二類方法著眼于主動(dòng)式的發(fā)送探針包,去做SDN版本的traceroute,該方法不局限在IP層,能夠輸出數(shù)據(jù)包在網(wǎng)絡(luò)中的完整路徑。局限于OpenFlowl.0協(xié)議,該方法采用了染色算法去捕獲相應(yīng)的探針包,這在網(wǎng)絡(luò)設(shè)備支持多流表的情況下是完全不需要的。同時(shí),僅僅是路徑信息還不能夠表征整個(gè)網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)狀態(tài)。
【發(fā)明內(nèi)容】
[0005]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提供一種在軟件定義網(wǎng)絡(luò)中獲取網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的方法,通過獲取攜帶每條流表項(xiàng)在網(wǎng)絡(luò)設(shè)備中的標(biāo)識(shí),簡(jiǎn)單有效的獲取網(wǎng)絡(luò)設(shè)備的真實(shí)轉(zhuǎn)發(fā)狀態(tài),同時(shí),幾乎不需要額外的帶寬來承載攜帶信息的探針包。
[0006]本發(fā)明的目的是采用下述技術(shù)方案實(shí)現(xiàn)的:
[0007]—種在軟件定義網(wǎng)絡(luò)中獲取網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的方法,其改進(jìn)之處在于,包括:
[0008](1)配置攜帶指定VLAN標(biāo)簽的探針包;
[0009](2)通過多流表中的第一流表對(duì)正常數(shù)據(jù)包和所述探針包進(jìn)行區(qū)分處理;
[0010](3)對(duì)所述多流表中除所述第一流表外的流表的流表項(xiàng)添加附加指令。
[0011]優(yōu)選的,所述步驟(1)包括:配置所述探針包的VLAN標(biāo)簽的PCP字段為指定字段n,VID字段為指定字段m,其中,η和m為正整數(shù)。
[0012]優(yōu)選的,所述步驟⑵包括:
[0013](2-1)配置所述第一流表的第一流表項(xiàng)包括:匹配攜帶指定VLAN標(biāo)簽的探針包并傳送至下一個(gè)流表;
[0014](2-2)配置所述第一流表的第二流表項(xiàng)包括:將正常數(shù)據(jù)包進(jìn)行VLAN標(biāo)簽移除操作并傳送至下一個(gè)流表,其中,所述正常數(shù)據(jù)包為所述步驟(2-1)中沒有匹配成功的數(shù)據(jù)包。
[0015]優(yōu)選的,所述步驟(3)中,所述附加指令為:
[0016](3-1)將所述流表項(xiàng)在所述網(wǎng)絡(luò)設(shè)備中的標(biāo)識(shí)添加至所述VLAN標(biāo)簽中;
[0017](3-2)復(fù)制探針包或正常數(shù)據(jù)包的VLAN標(biāo)簽副本,其中,所述正常數(shù)據(jù)包的VLAN標(biāo)簽副本的PCP字段和VID字段均為0 ;
[0018](3-3)判斷所述VLAN標(biāo)簽副本的PCP字段和VID字段是否均為0,若是,則丟棄所述VLAN標(biāo)簽副本,若否,則將所述VLAN標(biāo)簽副本輸出至所述網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)端口 ;
[0019](3-4)刪除所述探針包或正常數(shù)據(jù)包的VLAN標(biāo)簽副本。
[0020]優(yōu)選的,在所述步驟(3)之后,包括:(4)配置所述網(wǎng)絡(luò)設(shè)備的一個(gè)數(shù)據(jù)端口的VLAN模式為Trunk,且僅允許VLAN標(biāo)簽的VID字段為1-4094的數(shù)據(jù)包通過。
[0021]與最接近的現(xiàn)有技術(shù)相比,本發(fā)明具有的有益效果:
[0022](1)本發(fā)明提供的一種在軟件定義網(wǎng)絡(luò)中獲取網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的方法,采用標(biāo)志位的識(shí)別去區(qū)分正常數(shù)據(jù)包和探針包,通過對(duì)每一條流表項(xiàng)添加額外的動(dòng)作,每一條被匹配到的流表項(xiàng)都能夠輸出一個(gè)探針包的副本,該副本包含了所匹配到的流表項(xiàng)的信息,所有探針包的副本的集合就是該網(wǎng)絡(luò)設(shè)備對(duì)數(shù)據(jù)包的真實(shí)處理行為,能夠完全等價(jià)于網(wǎng)絡(luò)設(shè)備的真實(shí)轉(zhuǎn)發(fā)狀態(tài),直接獲取網(wǎng)絡(luò)設(shè)備的真實(shí)行為,從而診斷出數(shù)據(jù)平面的網(wǎng)絡(luò)故障;
[0023](2)本發(fā)明提供的一種在軟件定義網(wǎng)絡(luò)中獲取網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的方法,采用主動(dòng)發(fā)送探針包的方式,避免了被動(dòng)監(jiān)控帶來的巨大的網(wǎng)絡(luò)帶寬開銷;
[0024](3)本發(fā)明提供的一種在軟件定義網(wǎng)絡(luò)中獲取網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的方法,通過仔細(xì)地流表和動(dòng)作設(shè)計(jì),能夠輸出數(shù)據(jù)包所匹配到的每一條流表項(xiàng),而不會(huì)對(duì)正常的數(shù)據(jù)包產(chǎn)生影響。
【附圖說明】
[0025]圖1是本發(fā)明提供的一種在軟件定義網(wǎng)絡(luò)中獲取網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)狀態(tài)的方法流程圖;
[0026]圖2是本發(fā)明實(shí)施例中探針包的VLAN標(biāo)簽配置示意圖;
[0027]圖3是本發(fā)明實(shí)施例中網(wǎng)絡(luò)設(shè)備第一流表的配置示意圖;
[0028]圖4是本發(fā)明實(shí)施例中多流表中除第一流表外的流表的每一條流表項(xiàng)的附加指令配置示意圖。
【具體實(shí)施方式】
[0029]下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步的詳細(xì)說明。
[0030]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明