專利名稱:一種互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)方法,及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)方法,及設(shè)備。
背景技術(shù):
路由轉(zhuǎn)發(fā)一般包括兩種形式,一種是逐包轉(zhuǎn)發(fā)(即包轉(zhuǎn)發(fā)),逐包轉(zhuǎn)發(fā)的實(shí)現(xiàn)方式是每個(gè)數(shù)據(jù)報(bào)文都按照數(shù)據(jù)報(bào)文內(nèi)容進(jìn)行匹配,刪除數(shù)據(jù)報(bào)文的互聯(lián)網(wǎng)協(xié)議(InternetProtocol, IP)頭之前的封裝,依據(jù)數(shù)據(jù)報(bào)文的流轉(zhuǎn)發(fā)關(guān)鍵字查路由轉(zhuǎn)發(fā)表得到數(shù)據(jù)報(bào)文的出接ロ地址以及報(bào)文封裝類型,獲取出口信息;然后根據(jù)上述出口信息轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文。 另ー種是流轉(zhuǎn)發(fā),流轉(zhuǎn)發(fā)的實(shí)現(xiàn)方式是精確匹配的流轉(zhuǎn)發(fā),也就是我們常說(shuō)的一次路由多次轉(zhuǎn)發(fā)。流轉(zhuǎn)發(fā)是收到數(shù)據(jù)流的第一個(gè)數(shù)據(jù)報(bào)文后,將該數(shù)據(jù)報(bào)文的出接ロ地址以及協(xié)議類型記錄下來(lái),之后如再收到該數(shù)據(jù)流的數(shù)據(jù)報(bào)文時(shí),直接按照之前記錄的轉(zhuǎn)發(fā)行為處理。數(shù)據(jù)流是指具有相同流特征的數(shù)據(jù)報(bào)文的集合。通常,IP流轉(zhuǎn)發(fā)包括(I)、接收數(shù)據(jù)報(bào)文,提取流轉(zhuǎn)發(fā)關(guān)鍵字;提取流轉(zhuǎn)發(fā)關(guān)鍵字具體是根據(jù)處理流程的需要在數(shù)據(jù)報(bào)文IP頭提取相關(guān)的流轉(zhuǎn)發(fā)關(guān)鍵字,如提取數(shù)據(jù)報(bào)文源互聯(lián)網(wǎng)協(xié)議IP地址,數(shù)據(jù)報(bào)文目的IP地址,IP下ー層協(xié)議類型等。(2)、查找流轉(zhuǎn)發(fā)表,若查找失敗,進(jìn)入(3),查找成功進(jìn)入(7);在初始狀態(tài)時(shí)流轉(zhuǎn)發(fā)表為空,步驟(2)查找流轉(zhuǎn)發(fā)表會(huì)失敗。(3)、入口處理;入口處理具體為解析并刪除IP頭之前的的鏈路層報(bào)文封裝。(4)、查找路由;具體是依據(jù)流轉(zhuǎn)發(fā)關(guān)鍵字查找路由轉(zhuǎn)發(fā)表。(5)、出口處理;具體為添加數(shù)據(jù)報(bào)文鏈路層封裝。出)、添加流轉(zhuǎn)發(fā)表,進(jìn)入(8);添加流轉(zhuǎn)發(fā)表具體為將(4)中查找到的信息加入到流轉(zhuǎn)發(fā)表。(7)、執(zhí)行流轉(zhuǎn)發(fā),進(jìn)入⑶;(8)、發(fā)送數(shù)據(jù)報(bào)文。然而對(duì)于IP數(shù)據(jù)報(bào)文由通用路由封裝(Generic Routing Extension, GRE)隧道封裝的數(shù)據(jù)報(bào)文,具有內(nèi)外兩層IP頭,外層IP頭相同的數(shù)據(jù)報(bào)文可能由于內(nèi)層IP數(shù)據(jù)差異,而做不同的轉(zhuǎn)發(fā)行為。現(xiàn)有IP流轉(zhuǎn)發(fā)是基于最外層IP頭來(lái)建立流轉(zhuǎn)發(fā)表,無(wú)法區(qū)分GRE內(nèi)層數(shù)據(jù)報(bào)文的差異。如果使用現(xiàn)有方法,具有相同GRE隧道封裝的多條不同的數(shù)據(jù)流僅會(huì)建立一條IP流轉(zhuǎn)發(fā)表項(xiàng),而導(dǎo)致一部分IP流轉(zhuǎn)發(fā)錯(cuò)誤。發(fā)明人在實(shí)現(xiàn)本發(fā)明實(shí)施例的過(guò)程中發(fā)現(xiàn)由通用路由封裝(Generic RoutingExtension, GRE)隧道封裝的IP數(shù)據(jù)報(bào)文,根據(jù)現(xiàn)有IP流轉(zhuǎn)發(fā)技術(shù)進(jìn)行轉(zhuǎn)發(fā)的過(guò)程中經(jīng)常出現(xiàn)轉(zhuǎn)發(fā)錯(cuò)誤的狀況
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)方法,及設(shè)備,用于解決GRE隧道封裝的IP數(shù)據(jù)報(bào)文進(jìn)行流轉(zhuǎn)發(fā)吋,出現(xiàn)轉(zhuǎn)發(fā)錯(cuò)誤,導(dǎo)致流轉(zhuǎn)發(fā)成功率低的問(wèn)題。ー種報(bào)文轉(zhuǎn)發(fā)方法,包括接收數(shù)據(jù)報(bào)文;獲取所述數(shù)據(jù)報(bào)文的第一流轉(zhuǎn)發(fā)關(guān)鍵字,所述第一流轉(zhuǎn)發(fā)關(guān)鍵字包含所述數(shù)據(jù)報(bào)文外層封裝的源互聯(lián)網(wǎng)協(xié)議IP地址和目的IP地址,以及協(xié)議類型;根據(jù)所述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢流轉(zhuǎn)發(fā)表,所述流轉(zhuǎn)發(fā)表中包含關(guān)鍵字和出ロ信息的對(duì)應(yīng)關(guān)系;當(dāng)所述流轉(zhuǎn)發(fā)表中的第一流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第一流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文;當(dāng)所述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相 同時(shí),若所述數(shù)據(jù)報(bào)文是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,獲取所述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字,所述第二流轉(zhuǎn)發(fā)關(guān)鍵字包含所述數(shù)據(jù)報(bào)文內(nèi)層封裝的源IP地址和目的IP地址,根據(jù)所述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢所述流轉(zhuǎn)發(fā)表;當(dāng)所述流轉(zhuǎn)發(fā)表中的第二流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同吋,根據(jù)所述第二流轉(zhuǎn)發(fā)記錄的出口信息轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。ー種互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)設(shè)備,包括報(bào)文接收單元,用于接收數(shù)據(jù)報(bào)文;第一特征提取単元,用于獲取所述數(shù)據(jù)報(bào)文的第一流轉(zhuǎn)發(fā)關(guān)鍵字,所述第一流轉(zhuǎn)發(fā)關(guān)鍵字包含所述數(shù)據(jù)報(bào)文外層封裝的源互聯(lián)網(wǎng)協(xié)議IP地址和目的IP地址,以及協(xié)議類型;流表查找單元,用于根據(jù)所述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢流轉(zhuǎn)發(fā)表,所述流轉(zhuǎn)發(fā)表中包含關(guān)鍵字和出口信息的對(duì)應(yīng)關(guān)系;根據(jù)所述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢所述流轉(zhuǎn)發(fā)表;流轉(zhuǎn)發(fā)控制単元,用于當(dāng)所述流轉(zhuǎn)發(fā)表中的第一流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第一流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文;第二特征提取単元,用于當(dāng)所述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若所述數(shù)據(jù)報(bào)文是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,獲取所述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字,所述第二流轉(zhuǎn)發(fā)關(guān)鍵字包含所述數(shù)據(jù)報(bào)文內(nèi)層封裝的源IP地址和目的IP地址;所述流表查找單元,還用于根據(jù)所述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢所述流轉(zhuǎn)發(fā)表;所述流轉(zhuǎn)發(fā)控制単元,還用于當(dāng)所述流轉(zhuǎn)發(fā)表中的第二流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第二流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)通過(guò)GRE隧道封裝的IP數(shù)據(jù)報(bào)文的內(nèi)層IP頭來(lái)區(qū)分ー個(gè)GRE隧道中的不同IP數(shù)據(jù)流,井根據(jù)內(nèi)層IP頭獲取的流轉(zhuǎn)發(fā)關(guān)鍵字來(lái)建立和查找流轉(zhuǎn)發(fā)表,實(shí)現(xiàn)了 GRE隧道封裝的IP數(shù)據(jù)報(bào)文的流轉(zhuǎn)發(fā),可以解決GRE隧道封裝的IP數(shù)據(jù)報(bào)文進(jìn)行流轉(zhuǎn)發(fā)吋,出現(xiàn)轉(zhuǎn)發(fā)錯(cuò)誤,導(dǎo)致流轉(zhuǎn)發(fā)成功率低的問(wèn)題。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實(shí)施例方法流程示意圖;圖2為本發(fā)明實(shí)施例流轉(zhuǎn)發(fā)實(shí)例示意圖;圖3為本發(fā)明實(shí)施例另一方法流程示意圖;圖4為本發(fā)明實(shí)施例另一方法流程示意圖;
圖5A為本發(fā)明實(shí)施例GRE隧道封裝的IP數(shù)據(jù)報(bào)文封裝格式示意圖;圖5B為本發(fā)明實(shí)施例另ー GRE隧道封裝的IP數(shù)據(jù)報(bào)文封裝格式示意圖;圖6為本發(fā)明實(shí)施例互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)設(shè)備結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例另ー互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)設(shè)備結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供了一種互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)方法,如圖I所示,包括101 :接收數(shù)據(jù)報(bào)文;獲取上述數(shù)據(jù)報(bào)文的第一流轉(zhuǎn)發(fā)關(guān)鍵字,上述第一流轉(zhuǎn)發(fā)關(guān)鍵字包含上述數(shù)據(jù)報(bào)文外層封裝的源互聯(lián)網(wǎng)協(xié)議IP地址和目的IP地址,以及協(xié)議類型;102 :根據(jù)上述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢流轉(zhuǎn)發(fā)表,上述流轉(zhuǎn)發(fā)表中包含關(guān)鍵字和出ロ信息的對(duì)應(yīng)關(guān)系;103 :當(dāng)上述流轉(zhuǎn)發(fā)表中的第一流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第一流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文;上述出ロ信息包含報(bào)文出接ロ地址以及報(bào)文封裝頭類型??蛇x的,出ロ信息還可以包括端口號(hào)、子網(wǎng)掩碼字段等。104 :當(dāng)上述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若上述數(shù)據(jù)報(bào)文是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,獲取上述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字,上述第二流轉(zhuǎn)發(fā)關(guān)鍵字包含上述數(shù)據(jù)報(bào)文內(nèi)層封裝的源IP地址和目的IP地址,根據(jù)上述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢上述流轉(zhuǎn)發(fā)表;可選地,上述獲取上述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字包括對(duì)上述數(shù)據(jù)報(bào)文進(jìn)行通用路由封裝解封裝得到上述數(shù)據(jù)報(bào)文的內(nèi)層IP頭,依據(jù)上述內(nèi)層IP頭提取上述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字。在后續(xù)實(shí)施例中將就GRE隧道封裝的報(bào)文轉(zhuǎn)發(fā)及解封裝作更詳細(xì)說(shuō)明。進(jìn)ー步地,為了增強(qiáng)對(duì)數(shù)據(jù)報(bào)文的識(shí)別以及與流轉(zhuǎn)發(fā)表的匹配度,流轉(zhuǎn)發(fā)關(guān)鍵字包含的信息還可以進(jìn)ー步擴(kuò)充,包括源端口號(hào),目的端口號(hào),隧道索引以及虛擬專用網(wǎng)索引中的至少ー項(xiàng)。需要說(shuō)明的是流轉(zhuǎn)發(fā)關(guān)鍵字可擴(kuò)充的信息還可以有很多,并不僅限于以上七種,只要可以用于唯一確定IP流的流轉(zhuǎn)發(fā)關(guān)鍵字都是可以的,本發(fā)明實(shí)施例對(duì)此不予限定。105 :當(dāng)上述流轉(zhuǎn)發(fā)表中的第二流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第二流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文。舉例說(shuō)明如圖2所示,假設(shè)有兩條數(shù)據(jù)流,目的IP地址分別為192. 168. I. I和192. 168. 2. 1,通過(guò)網(wǎng)絡(luò)邊界設(shè)備I (Provider Edge 1,PEl)進(jìn)行GRE隧道封裝并轉(zhuǎn)發(fā),兩條數(shù)據(jù)流經(jīng)過(guò)GRE封裝后的源IP為I. I. I. 1,目的IP為2. 2. 2. 2,穿越網(wǎng)絡(luò)到達(dá)PE2。如果在PE2上進(jìn)行流轉(zhuǎn)發(fā),按照現(xiàn)有技術(shù)方案執(zhí)行過(guò)程為PE2會(huì)根據(jù)GRE隧道封裝的外層IP提取流轉(zhuǎn)發(fā)關(guān)鍵字,源IP為I. I. I. 1,目的IP為2. 2. 2. 2,并建立流轉(zhuǎn)發(fā)表,假設(shè)目的為192. 168. I. I的數(shù)據(jù)流先建立流轉(zhuǎn)發(fā)表,流轉(zhuǎn)發(fā)表中記錄的轉(zhuǎn)發(fā)行為——出接ロ為FE 0/0。這樣當(dāng)目的為192. 168. 2. I的數(shù)據(jù)流到達(dá)PE2時(shí),由于GRE外層IP頭是一祥,提取的流轉(zhuǎn)發(fā)關(guān)鍵字相同,這樣目的地為192. 168. 2. I的數(shù)據(jù)流也會(huì)命中之前建立的流轉(zhuǎn)發(fā)表,導(dǎo)致數(shù)據(jù)報(bào)文錯(cuò)誤的向FE0/0轉(zhuǎn)發(fā),而非期望的接ロ FE0/1。而使用本發(fā)明實(shí)施例方法,則在當(dāng)目的為192. 168. 2. I的數(shù)據(jù)流到達(dá)PE2時(shí),使用內(nèi)層的IP頭提取流轉(zhuǎn)發(fā)關(guān)鍵字,不會(huì)命中之前建立的流轉(zhuǎn)發(fā)表,會(huì)新建立另外一條流轉(zhuǎn)發(fā)表的表項(xiàng),從而能夠?qū)⒃摂?shù)據(jù)流正確地發(fā) 送至192. 168. 2. 1,提升轉(zhuǎn)發(fā)成功率。因此采用以上方法,通過(guò)GRE隧道封裝數(shù)據(jù)報(bào)文的內(nèi)層IP頭來(lái)區(qū)分ー個(gè)GRE隧道的不同IP流,并使用內(nèi)層IP頭獲取的流轉(zhuǎn)發(fā)關(guān)鍵字來(lái)查找流轉(zhuǎn)發(fā)表,實(shí)現(xiàn)了 GRE隧道封裝數(shù)據(jù)報(bào)文的流轉(zhuǎn)發(fā),可以解決GRE隧道封裝的數(shù)據(jù)報(bào)文進(jìn)行IP流轉(zhuǎn)發(fā)吋,出現(xiàn)轉(zhuǎn)發(fā)錯(cuò)誤,導(dǎo)致流轉(zhuǎn)發(fā)成功率低的問(wèn)題??蛇x地,上述流轉(zhuǎn)發(fā)關(guān)鍵字是為了唯一區(qū)分?jǐn)?shù)據(jù)報(bào)文所屬的IP流,流轉(zhuǎn)發(fā)關(guān)鍵字可以是多個(gè)屬性組合成的,例如原IP地址+目的IP地址,也可以是對(duì)多個(gè)屬性進(jìn)行哈希(HASH),例如HASH(源IP地址+目的IP地址),得到的一個(gè)值。如圖3所示,本發(fā)明實(shí)施例提供了另ー種互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)的方法,包括301 :接收數(shù)據(jù)報(bào)文;獲取上述數(shù)據(jù)報(bào)文的第一流轉(zhuǎn)發(fā)關(guān)鍵字,上述第一流轉(zhuǎn)發(fā)關(guān)鍵字包含上述數(shù)據(jù)報(bào)文外層封裝的源互聯(lián)網(wǎng)協(xié)議IP地址和目的IP地址,以及協(xié)議類型;302 :根據(jù)上述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢流轉(zhuǎn)發(fā)表,上述流轉(zhuǎn)發(fā)表中包含關(guān)鍵字和出 ロ信息的對(duì)應(yīng)關(guān)系;303 :當(dāng)上述流轉(zhuǎn)發(fā)表中的第一流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第一流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文;上述出ロ信息包含報(bào)文出接ロ地址以及報(bào)文封裝頭類型??蛇x的,出ロ信息還可以包括端口號(hào)、子網(wǎng)掩碼字段等。304 :當(dāng)上述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若上述數(shù)據(jù)報(bào)文是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,獲取上述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字,上述第二流轉(zhuǎn)發(fā)關(guān)鍵字包含上述數(shù)據(jù)報(bào)文內(nèi)層封裝的源IP地址和目的IP地址,根據(jù)上述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢上述流轉(zhuǎn)發(fā)表;305 :當(dāng)上述流轉(zhuǎn)發(fā)表中的第二流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第二流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文??蛇x地,上述獲取上述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字包括對(duì)上述數(shù)據(jù)報(bào)文進(jìn)行通用路由封裝解封裝得到上述數(shù)據(jù)報(bào)文的內(nèi)層IP頭,依據(jù)上述內(nèi)層IP頭提取上述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字。在后續(xù)實(shí)施例中將就GRE隧道封裝的報(bào)文轉(zhuǎn)發(fā)及解封裝作更詳細(xì)說(shuō)明。
進(jìn)ー步地,為了增強(qiáng)對(duì)數(shù)據(jù)報(bào)文的識(shí)別以及與流轉(zhuǎn)發(fā)表的匹配度,流轉(zhuǎn)發(fā)關(guān)鍵字包含的信息還可以進(jìn)ー步擴(kuò)充,包括源端口號(hào),目的端口號(hào),隧道索引以及虛擬專用網(wǎng)索引中的至少ー項(xiàng)。需要說(shuō)明的是流轉(zhuǎn)發(fā)關(guān)鍵字可擴(kuò)充的信息還可以有很多,并不僅限于以上七種,只要可以用于唯一確定IP流的流轉(zhuǎn)發(fā)關(guān)鍵字都是可以的,本發(fā)明實(shí)施例對(duì)此不予限定。306 :當(dāng)上述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與上述第二流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),根據(jù)上述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,上述路由轉(zhuǎn)發(fā)表中包含關(guān)鍵字和轉(zhuǎn)發(fā)信息的對(duì)應(yīng)關(guān)系;當(dāng)上述路由轉(zhuǎn)發(fā)表中的第二路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第二路由轉(zhuǎn)發(fā)記錄轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文;并根據(jù)上述第二路由轉(zhuǎn)發(fā)記錄獲取第二出口信息,并將上述第二流轉(zhuǎn)發(fā)關(guān)鍵字和上述第二出口信息更新到上述流轉(zhuǎn)發(fā)表中,以使后續(xù)具有相同流轉(zhuǎn)發(fā)關(guān)鍵字的報(bào)文根據(jù)上述流轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。需要說(shuō)明的是,上述根據(jù)上述第二路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文,與上述根據(jù)上述第二路由轉(zhuǎn)發(fā)記錄獲取第二出口信息,并將上述第二流轉(zhuǎn)發(fā)關(guān)鍵字和上述第二出口信 息更新到上述流轉(zhuǎn)發(fā)表,也可以同時(shí)進(jìn)行;或者,先根據(jù)上述第二路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文,再根據(jù)上述第二路由轉(zhuǎn)發(fā)記錄獲取第二出口信息,并將上述第二流轉(zhuǎn)發(fā)關(guān)鍵字和上述第二出ロ信息更新到上述流轉(zhuǎn)發(fā)表。對(duì)此,本發(fā)明不做限定。306 :當(dāng)上述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若上述數(shù)據(jù)報(bào)文不是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,根據(jù)上述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,上述路由轉(zhuǎn)發(fā)表包含關(guān)鍵字和轉(zhuǎn)發(fā)信息的對(duì)應(yīng)關(guān)系;當(dāng)上述路由轉(zhuǎn)發(fā)表中的第一路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第一路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文;并根據(jù)上述第一路由轉(zhuǎn)發(fā)記錄獲取第一出口信息,并將上述第一流轉(zhuǎn)發(fā)關(guān)鍵字和上述第一出ロ信息更新到上述流轉(zhuǎn)發(fā)表中,以使后續(xù)具有相同流轉(zhuǎn)發(fā)關(guān)鍵字的報(bào)文根據(jù)上述流轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。需要說(shuō)明的是,上述根據(jù)上述第一路由轉(zhuǎn)發(fā)記錄轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文,與上述根據(jù)上述第一路由轉(zhuǎn)發(fā)記錄獲取第一出口信息,并將上述第一流轉(zhuǎn)發(fā)關(guān)鍵字和上述第一出口信息更新到上述流轉(zhuǎn)發(fā)表,也可以同時(shí)進(jìn)行;或者,先根據(jù)上述第一路由轉(zhuǎn)發(fā)記錄轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文,再根據(jù)上述第一路由轉(zhuǎn)發(fā)記錄獲取第一出口信息,并將上述第一流轉(zhuǎn)發(fā)關(guān)鍵字和上述第一出ロ信息更新到上述流轉(zhuǎn)發(fā)表。對(duì)此,本發(fā)明不做限定。本發(fā)明實(shí)施例可以在不大量増加流轉(zhuǎn)發(fā)表的流轉(zhuǎn)發(fā)關(guān)鍵字的情況下,實(shí)現(xiàn)對(duì)GRE隧道中不同IP流的識(shí)別,從而在IP流轉(zhuǎn)發(fā)中區(qū)別不同IP流的轉(zhuǎn)發(fā)行為。實(shí)現(xiàn)了 GRE隧道封裝數(shù)據(jù)報(bào)文的流轉(zhuǎn)發(fā),可以解決GRE隧道封裝的數(shù)據(jù)報(bào)文進(jìn)行IP流轉(zhuǎn)發(fā)吋,出現(xiàn)轉(zhuǎn)發(fā)錯(cuò)誤,導(dǎo)致流轉(zhuǎn)發(fā)成功率低的問(wèn)題。舉例來(lái)說(shuō),如圖4所示,以GRE隧道封裝及GRE隧道封裝以外的其他封裝方式的報(bào)文轉(zhuǎn)發(fā)進(jìn)行詳細(xì)說(shuō)明。如圖4所示包括401 :接收數(shù)據(jù)報(bào)文。上述數(shù)據(jù)報(bào)文可以是如圖5A左側(cè)的封裝格式,從外至內(nèi)包含外層IP頭、GRE、內(nèi)層IP頭以及數(shù)據(jù)載荷,也可以是如圖5B最右側(cè)的封裝格式,從外至內(nèi)包含內(nèi)層IP頭以及IP數(shù)據(jù)。402 :從上述數(shù)據(jù)報(bào)文的最外層IP頭提取上述數(shù)據(jù)報(bào)文的第一流轉(zhuǎn)發(fā)關(guān)鍵字。第一流轉(zhuǎn)發(fā)關(guān)鍵字包括源IP地址和目的IP地址,以及協(xié)議類型。403 :使用上述第一流轉(zhuǎn)發(fā)關(guān)鍵字查找流轉(zhuǎn)發(fā)表。若查找成功,即流轉(zhuǎn)發(fā)表內(nèi)具有與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同的表項(xiàng),進(jìn)入407,若查找失敗,即流轉(zhuǎn)發(fā)表內(nèi)沒(méi)有與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同的表項(xiàng),進(jìn)入404。由于流轉(zhuǎn)發(fā)表存儲(chǔ)了關(guān)鍵字與出口信息的對(duì)應(yīng)關(guān)系,所以在查找成功后可以得到與第一流轉(zhuǎn)發(fā)關(guān)鍵字對(duì)應(yīng)的出ロ信息。上述出ロ信息包含報(bào)文出接ロ地址以及報(bào)文封裝頭類型??蛇x的,出ロ信息還可以包括端口號(hào)、子網(wǎng)掩碼字段等。404 :判斷上述數(shù)據(jù)報(bào)文是否為GRE隧道封裝的數(shù)據(jù)報(bào)文。若是,進(jìn)入405,若否,進(jìn)入408。 405 :根據(jù)上述數(shù)據(jù)報(bào)文的內(nèi)層IP頭提取第二流轉(zhuǎn)發(fā)關(guān)鍵字。在本步驟中解析GRE時(shí),可以去掉外層IP頭和GRE,如圖5B中間所示的協(xié)議頭和IP數(shù)據(jù),剩下如圖5B最右邊所示的內(nèi)層IP頭和IP數(shù)據(jù),然后從內(nèi)層IP頭提取第二流轉(zhuǎn)發(fā)關(guān)鍵字。406 :依據(jù)第二流轉(zhuǎn)發(fā)關(guān)鍵字查找流轉(zhuǎn)發(fā)表。若查找成功,進(jìn)入407,若查找失敗,進(jìn)入408。由于流轉(zhuǎn)發(fā)表存儲(chǔ)了關(guān)鍵字與出口信息的對(duì)應(yīng)關(guān)系,所以在查找成功后可以得到與第二流轉(zhuǎn)發(fā)關(guān)鍵字對(duì)應(yīng)的出ロ信息。407:進(jìn)行流轉(zhuǎn)發(fā),具體為依據(jù)流轉(zhuǎn)發(fā)關(guān)鍵字對(duì)應(yīng)的出口信息轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文。需要說(shuō)明的是,若從403進(jìn)入本步驟,在本步驟中的流轉(zhuǎn)發(fā)關(guān)鍵字是第一流轉(zhuǎn)發(fā)關(guān)鍵字;若從406進(jìn)入本步驟,在本步驟中的流轉(zhuǎn)發(fā)關(guān)鍵字是第二流轉(zhuǎn)發(fā)關(guān)鍵字。408 :進(jìn)行包轉(zhuǎn)發(fā),具體為根據(jù)流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,井根據(jù)查詢到路由轉(zhuǎn)發(fā)記錄轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文。上述路由轉(zhuǎn)發(fā)表中包含關(guān)鍵字和轉(zhuǎn)發(fā)信息的對(duì)應(yīng)關(guān)系。需要說(shuō)明的是,若從404進(jìn)入本步驟,本步驟中的流轉(zhuǎn)發(fā)關(guān)鍵字是第一流轉(zhuǎn)發(fā)關(guān)鍵字。相應(yīng)地,包轉(zhuǎn)發(fā)具體為根據(jù)上述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,井根據(jù)查找到的路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文。若從406進(jìn)入本步驟,本步驟中的流轉(zhuǎn)發(fā)關(guān)鍵字是第二流轉(zhuǎn)發(fā)關(guān)鍵字。相應(yīng)地,包轉(zhuǎn)發(fā)具體為根據(jù)上述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,井根據(jù)查找到的路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文。409 :更新流轉(zhuǎn)發(fā)表。具體來(lái)說(shuō),若從404進(jìn)入408,本步驟中的流轉(zhuǎn)發(fā)關(guān)鍵字是第一流轉(zhuǎn)發(fā)關(guān)鍵字。相應(yīng)地,更新流轉(zhuǎn)發(fā)表具體為根據(jù)408中查找到的路由轉(zhuǎn)發(fā)記錄獲取第一出ロ信息,并將上述第一流轉(zhuǎn)發(fā)關(guān)鍵字和上述第一出ロ信息更新到上述流轉(zhuǎn)發(fā)表中。若從406進(jìn)入408,本步驟中的流轉(zhuǎn)發(fā)關(guān)鍵字是第二流轉(zhuǎn)發(fā)關(guān)鍵字。相應(yīng)地,更新流轉(zhuǎn)發(fā)表具體為
根據(jù)408中查找到的路由轉(zhuǎn)發(fā)記錄獲取第二出ロ信息,并將上述第二流轉(zhuǎn)發(fā)關(guān)鍵字和上述第二出ロ信息更新到上述流轉(zhuǎn)發(fā)表中。以上實(shí)施例通過(guò)GRE隧道封裝的IP數(shù)據(jù)報(bào)文的內(nèi)層IP頭來(lái)區(qū)分ー個(gè)GRE隧道中的不同IP數(shù)據(jù)流,井根據(jù)內(nèi)層IP頭獲取的流轉(zhuǎn)發(fā)關(guān)鍵字來(lái)建立和查找流轉(zhuǎn)發(fā)表,實(shí)現(xiàn)了 GRE隧道封裝的IP數(shù)據(jù)報(bào)文的流轉(zhuǎn)發(fā),可以解決GRE隧道封裝的IP數(shù)據(jù)報(bào)文進(jìn)行流轉(zhuǎn)發(fā)吋,出現(xiàn)轉(zhuǎn)發(fā)錯(cuò)誤,導(dǎo)致流轉(zhuǎn)發(fā)成功率低的問(wèn)題,提升轉(zhuǎn)發(fā)成功率。依據(jù)圖3所示的流程,流轉(zhuǎn)發(fā)表建立過(guò)程如下實(shí)現(xiàn)本發(fā)明的流轉(zhuǎn)發(fā)方法,建立流轉(zhuǎn)發(fā)表的流轉(zhuǎn)發(fā)關(guān)鍵字字段可以包含三個(gè)源IP地址,目的IP地址以及協(xié)議類型。在流轉(zhuǎn)發(fā)表未建立時(shí),通過(guò)一次包轉(zhuǎn)發(fā)流程來(lái)收集流轉(zhuǎn)發(fā)表特征字段。當(dāng)網(wǎng)絡(luò)設(shè)備分別作為GRE隧道終結(jié)設(shè)備和隧道透?jìng)髟O(shè)備時(shí),包轉(zhuǎn)發(fā)執(zhí)行如下基礎(chǔ)轉(zhuǎn)發(fā)行為對(duì)于GRE隧道封裝設(shè)備,如圖2中的PE1,會(huì)將IP數(shù)據(jù)報(bào)文加上GRE頭;對(duì)于GRE隧道透?jìng)髟O(shè)備,如圖2中PEI與PE2之間網(wǎng)絡(luò)中的路由器,會(huì)將GRE封裝的數(shù)據(jù)報(bào)文當(dāng)成普通IP數(shù)據(jù)報(bào)文,不識(shí)別是否為GRE數(shù)據(jù)報(bào)文,如圖5A所示,查找路由后協(xié)議以及 IP數(shù)據(jù)無(wú)變化。對(duì)于GRE隧道終結(jié)設(shè)備,如圖2中的PE2,并請(qǐng)參閱圖5B,PE2能夠識(shí)別是否GRE數(shù)據(jù)報(bào)文,PE2執(zhí)行查找路由前需要解析GRE,PE2解析GRE時(shí)會(huì)將GRE數(shù)據(jù)報(bào)文中的GRE頭刪除,即會(huì)去掉外層IP頭和GRE,得到如圖5B右側(cè)僅包含內(nèi)層IP頭和IP數(shù)據(jù),然后從內(nèi)層的IP頭中提取關(guān)鍵字,從而完成對(duì)解析GRE。本發(fā)明實(shí)施例還提供了ー種互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)設(shè)備,如圖6所示,用于實(shí)現(xiàn)本發(fā)明圖I所示的互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)方法。上述設(shè)備包括報(bào)文接收單元501、第一特征提取単元502、流表查找單元503、流轉(zhuǎn)發(fā)控制單元504以及第二特征提取單元505。其中上述報(bào)文接收單元501,用于接收數(shù)據(jù)報(bào)文;上述第一特征提取単元502,用于獲取上述數(shù)據(jù)報(bào)文的第一流轉(zhuǎn)發(fā)關(guān)鍵字,上述第一流轉(zhuǎn)發(fā)關(guān)鍵字包含上述數(shù)據(jù)報(bào)文外層封裝的源互聯(lián)網(wǎng)協(xié)議IP地址和目的IP地址,以及協(xié)議類型;上述流表查找單元503,用于根據(jù)上述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢流轉(zhuǎn)發(fā)表,上述流轉(zhuǎn)發(fā)表中包含關(guān)鍵字和出口信息的對(duì)應(yīng)關(guān)系;上述流轉(zhuǎn)發(fā)控制単元504,用于當(dāng)上述流轉(zhuǎn)發(fā)表中的第一流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第一流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文;上述第二特征提取単元505,用于當(dāng)上述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若上述數(shù)據(jù)報(bào)文是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,獲取上述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字,上述第二流轉(zhuǎn)發(fā)關(guān)鍵字包含上述數(shù)據(jù)報(bào)文內(nèi)層封裝的源IP地址和目的IP地址;上述流表查找單元503,還用于根據(jù)上述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢上述流轉(zhuǎn)發(fā)表;上述流轉(zhuǎn)發(fā)控制単元504,還用于當(dāng)上述流轉(zhuǎn)發(fā)表中的第二流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第二流轉(zhuǎn)發(fā)記錄的出口信息轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文。更具體地,上述第二特征提取単元505,具體用于當(dāng)上述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若上述數(shù)據(jù)報(bào)文是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,對(duì)上述數(shù)據(jù)報(bào)文進(jìn)行通用路由封裝GRE解封裝,得到上述數(shù)據(jù)報(bào)文的內(nèi)層IP頭,依據(jù)上述內(nèi)層IP頭提取上述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字。采用本發(fā)明實(shí)施例的方案,通過(guò)GRE隧道封裝數(shù)據(jù)報(bào)文的內(nèi)層IP頭來(lái)區(qū)分ー個(gè)GRE隧道的不同IP流,并使用內(nèi)層IP頭獲取的流轉(zhuǎn)發(fā)關(guān)鍵字來(lái)查找流轉(zhuǎn)發(fā)表,實(shí)現(xiàn)了 GRE隧道封裝數(shù)據(jù)報(bào)文的流轉(zhuǎn)發(fā),可以解決GRE隧道封裝的數(shù)據(jù)報(bào)文進(jìn)行IP流轉(zhuǎn)發(fā)成功率低的問(wèn)題,提升轉(zhuǎn)發(fā)成功率。進(jìn)ー步地,如圖7所示,上述設(shè)備還包括路由表查找單元601、流表更新單元602、路由轉(zhuǎn)發(fā)控制単元603以及獲取単元604,用于實(shí)現(xiàn)本發(fā)明圖3和圖4所示的互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)方法。上述路由表查找單元601,用于當(dāng)上述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與 上述第二流轉(zhuǎn)發(fā)關(guān)鍵字均不相同吋;根據(jù)上述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,上述路由轉(zhuǎn)發(fā)表中包含關(guān)鍵字和轉(zhuǎn)發(fā)信息的對(duì)應(yīng)關(guān)系;上述獲取單元604,用于當(dāng)上述路由轉(zhuǎn)發(fā)表中的第二路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第二路由轉(zhuǎn)發(fā)記錄獲取第二出口信息;上述出口信息包含報(bào)文出接ロ地址以及報(bào)文封裝頭類型;上述路由轉(zhuǎn)發(fā)控制単元603,用于當(dāng)上述路由轉(zhuǎn)發(fā)表中的第二路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第二路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文;上述流表更新単元602,用于將上述第二流轉(zhuǎn)發(fā)關(guān)鍵字和上述第二出口信息更新到上述流轉(zhuǎn)發(fā)表中,以使后續(xù)具有相同流轉(zhuǎn)發(fā)關(guān)鍵字的報(bào)文根據(jù)上述流轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。進(jìn)ー步地,上述路由表查找單元601,還用于當(dāng)上述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若上述數(shù)據(jù)報(bào)文不是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,根據(jù)上述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,上述路由轉(zhuǎn)發(fā)表包含關(guān)鍵字和轉(zhuǎn)發(fā)信息的對(duì)應(yīng)關(guān)系;上述獲取單元604,還用于當(dāng)上述路由轉(zhuǎn)發(fā)表中的第一路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第一路由轉(zhuǎn)發(fā)記錄獲取第一出ロ信息;上述路由轉(zhuǎn)發(fā)控制単元603,還用于當(dāng)上述路由轉(zhuǎn)發(fā)表中的第一路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與上述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)上述第一路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)上述數(shù)據(jù)報(bào)文;上述流表更新単元602,還用于將上述第一流轉(zhuǎn)發(fā)關(guān)鍵字和上述第一出口信息更新到上述流轉(zhuǎn)發(fā)表中,以使后續(xù)具有相同流轉(zhuǎn)發(fā)關(guān)鍵字的報(bào)文根據(jù)上述流轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。本發(fā)明實(shí)施例,通過(guò)GRE隧道封裝的IP數(shù)據(jù)報(bào)文的內(nèi)層IP頭來(lái)區(qū)分ー個(gè)GRE隧道中的不同IP數(shù)據(jù)流,井根據(jù)內(nèi)層IP頭獲取的流轉(zhuǎn)發(fā)關(guān)鍵字來(lái)建立和查找流轉(zhuǎn)發(fā)表,實(shí)現(xiàn)了 GRE隧道封裝的IP數(shù)據(jù)報(bào)文的流轉(zhuǎn)發(fā),可以解決GRE隧道封裝的IP數(shù)據(jù)報(bào)文進(jìn)行流轉(zhuǎn)發(fā)時(shí),出現(xiàn)轉(zhuǎn)發(fā)錯(cuò)誤,導(dǎo)致流轉(zhuǎn)發(fā)成功率低的問(wèn)題,提升轉(zhuǎn)發(fā)成功率。值得注意的是,上述互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)設(shè)備,實(shí)施例中,所包括的各個(gè)單元只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能単元的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。另外,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述各方法實(shí)施例中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,相應(yīng)的程序可以存儲(chǔ)于ー種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。以上僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明實(shí)施例揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利 要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.ー種報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,包括 接收數(shù)據(jù)報(bào)文; 獲取所述數(shù)據(jù)報(bào)文的第一流轉(zhuǎn)發(fā)關(guān)鍵字,所述第一流轉(zhuǎn)發(fā)關(guān)鍵字包含所述數(shù)據(jù)報(bào)文外層封裝的源互聯(lián)網(wǎng)協(xié)議IP地址和目的IP地址,以及協(xié)議類型; 根據(jù)所述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢流轉(zhuǎn)發(fā)表,所述流轉(zhuǎn)發(fā)表中包含關(guān)鍵字和出口信息的對(duì)應(yīng)關(guān)系; 當(dāng)所述流轉(zhuǎn)發(fā)表中的第一流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第一流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文; 當(dāng)所述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同吋,若所述數(shù)據(jù)報(bào)文是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,獲取所述數(shù)據(jù)報(bào)文的第二 流轉(zhuǎn)發(fā)關(guān)鍵字,所述第二流轉(zhuǎn)發(fā)關(guān)鍵字包含所述數(shù)據(jù)報(bào)文內(nèi)層封裝的源IP地址和目的IP地址; 根據(jù)所述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢所述流轉(zhuǎn)發(fā)表; 當(dāng)所述流轉(zhuǎn)發(fā)表中的第二流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第二流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。
2.根據(jù)權(quán)利要求I所述方法,其特征在于,所述方法還包括 當(dāng)所述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與所述第二流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí); 根據(jù)所述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,所述路由轉(zhuǎn)發(fā)表中包含關(guān)鍵字和轉(zhuǎn)發(fā)信息的對(duì)應(yīng)關(guān)系; 當(dāng)所述路由轉(zhuǎn)發(fā)表中的第二路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同吋,根據(jù)所述第二路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文; 根據(jù)所述第二路由轉(zhuǎn)發(fā)記錄獲取第二出ロ信息,并將所述第二流轉(zhuǎn)發(fā)關(guān)鍵字和所述第ニ出ロ信息更新到所述流轉(zhuǎn)發(fā)表中,以使后續(xù)具有相同流轉(zhuǎn)發(fā)關(guān)鍵字的報(bào)文根據(jù)所述流轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。
3.根據(jù)權(quán)利要求I或2所述方法,其特征在于,所述獲取所述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字具體包括 對(duì)所述數(shù)據(jù)報(bào)文進(jìn)行通用路由封裝GRE解封裝,得到所述數(shù)據(jù)報(bào)文的內(nèi)層IP頭,依據(jù)所述內(nèi)層IP頭提取所述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字。
4.根據(jù)權(quán)利要求I至3任一項(xiàng)所述方法,其特征在于,所述第二流轉(zhuǎn)發(fā)關(guān)鍵字還包括 所述數(shù)據(jù)報(bào)文內(nèi)層IP頭封裝的源端口號(hào),目的端口號(hào),隧道索引以及虛擬專用網(wǎng)索引中的至少ー項(xiàng)。
5.根據(jù)權(quán)利要求I所述方法,其特征在于,所述方法還包括 當(dāng)所述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同吋,若所述數(shù)據(jù)報(bào)文不是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,根據(jù)所述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,所述路由轉(zhuǎn)發(fā)表包含關(guān)鍵字和轉(zhuǎn)發(fā)信息的對(duì)應(yīng)關(guān)系; 當(dāng)所述路由轉(zhuǎn)發(fā)表中的第一路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同吋, 根據(jù)所述第一路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文; 根據(jù)所述第一路由轉(zhuǎn)發(fā)記錄獲取第一出ロ信息,并將所述第一流轉(zhuǎn)發(fā)關(guān)鍵字和所述第一出ロ信息更新到所述流轉(zhuǎn)發(fā)表中,以使后續(xù)具有相同流轉(zhuǎn)發(fā)關(guān)鍵字的報(bào)文根據(jù)所述流轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。
6.ー種互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)設(shè)備,其特征在于,所述設(shè)備包括 報(bào)文接收單元,用于接收數(shù)據(jù)報(bào)文; 第一特征提取単元,用于獲取所述數(shù)據(jù)報(bào)文的第一流轉(zhuǎn)發(fā)關(guān)鍵字,所述第一流轉(zhuǎn)發(fā)關(guān)鍵字包含所述數(shù)據(jù)報(bào)文外層封裝的源互聯(lián)網(wǎng)協(xié)議IP地址和目的IP地址,以及協(xié)議類型;流表查找單元,用于根據(jù)所述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢流轉(zhuǎn)發(fā)表,所述流轉(zhuǎn)發(fā)表中包含關(guān)鍵字和出口信息的對(duì)應(yīng)關(guān)系;根據(jù)所述第二流轉(zhuǎn)發(fā) 關(guān)鍵字查詢所述流轉(zhuǎn)發(fā)表; 流轉(zhuǎn)發(fā)控制単元,用于當(dāng)所述流轉(zhuǎn)發(fā)表中的第一流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第一流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文; 第二特征提取単元,用于當(dāng)所述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若所述數(shù)據(jù)報(bào)文是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,獲取所述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字,所述第二流轉(zhuǎn)發(fā)關(guān)鍵字包含所述數(shù)據(jù)報(bào)文內(nèi)層封裝的源IP地址和目的IP地址; 所述流表查找單元,還用于根據(jù)所述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢所述流轉(zhuǎn)發(fā)表; 所述流轉(zhuǎn)發(fā)控制単元,還用于當(dāng)所述流轉(zhuǎn)發(fā)表中的第二流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第二流轉(zhuǎn)發(fā)記錄的出ロ信息轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。
7.根據(jù)權(quán)利要求6所述設(shè)備,其特征在于,所述設(shè)備還包括 路由表查找單元,用于當(dāng)所述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與所述第二流轉(zhuǎn)發(fā)關(guān)鍵字均不相同吋;根據(jù)所述第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,所述路由轉(zhuǎn)發(fā)表中包含關(guān)鍵字和轉(zhuǎn)發(fā)信息的對(duì)應(yīng)關(guān)系; 獲取單元,用于當(dāng)所述路由轉(zhuǎn)發(fā)表中的第二路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第二路由轉(zhuǎn)發(fā)記錄獲取第二出ロ信息; 路由轉(zhuǎn)發(fā)控制単元,用于當(dāng)所述路由轉(zhuǎn)發(fā)表中的第二路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第二路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文; 流表更新単元,用于將所述第二流轉(zhuǎn)發(fā)關(guān)鍵字和所述第二出口信息更新到所述流轉(zhuǎn)發(fā)表中,以使后續(xù)具有相同流轉(zhuǎn)發(fā)關(guān)鍵字的報(bào)文根據(jù)所述流轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。
8.根據(jù)權(quán)利要求7所述設(shè)備,其特征在干, 所述路由表查找單元,還用于當(dāng)所述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若所述數(shù)據(jù)報(bào)文不是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,根據(jù)所述第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢路由轉(zhuǎn)發(fā)表,所述路由轉(zhuǎn)發(fā)表包含關(guān)鍵字和轉(zhuǎn)發(fā)信息的對(duì)應(yīng)關(guān)系; 所述獲取単元,還用于當(dāng)所述路由轉(zhuǎn)發(fā)表中的第一路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第一路由轉(zhuǎn)發(fā)記錄獲取第一出ロ信息; 所述路由轉(zhuǎn)發(fā)控制単元,還用于當(dāng)所述路由轉(zhuǎn)發(fā)表中的第一路由轉(zhuǎn)發(fā)記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)所述第一路由轉(zhuǎn)發(fā)記錄,轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文; 所述流表更新単元,還用于將所述第一流轉(zhuǎn)發(fā)關(guān)鍵字和所述第一出口信息更新到所述流轉(zhuǎn)發(fā)表中,以使后續(xù)具有相同流轉(zhuǎn)發(fā)關(guān)鍵字的報(bào)文根據(jù)所述流轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。
9.根據(jù)權(quán)利要求6至8任意ー項(xiàng)所述設(shè)備,其特征在干,所述第二特征提取単元,具體用于當(dāng)所述流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與所述第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若所述數(shù)據(jù)報(bào)文是經(jīng)過(guò)通用路由封裝GRE的互聯(lián)網(wǎng)協(xié)議IP報(bào)文,對(duì)所述數(shù)據(jù)報(bào)文進(jìn)行通用路由封裝GRE解封裝,得到所述數(shù)據(jù)報(bào)文的內(nèi)層IP頭,依 據(jù)所述內(nèi)層IP頭提取所述數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字。
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種互聯(lián)網(wǎng)協(xié)議流轉(zhuǎn)發(fā)方法,及設(shè)備。方法的實(shí)現(xiàn)包括接收數(shù)據(jù)報(bào)文;獲取數(shù)據(jù)報(bào)文的第一流轉(zhuǎn)發(fā)關(guān)鍵字,根據(jù)第一流轉(zhuǎn)發(fā)關(guān)鍵字查詢流轉(zhuǎn)發(fā)表;當(dāng)流轉(zhuǎn)發(fā)表中的第一流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與第一流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)第一流轉(zhuǎn)發(fā)記錄的出口信息轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文;當(dāng)流轉(zhuǎn)發(fā)表中任何一條已有記錄的關(guān)鍵字與第一流轉(zhuǎn)發(fā)關(guān)鍵字均不相同時(shí),若數(shù)據(jù)報(bào)文是經(jīng)過(guò)GRE的IP報(bào)文,獲取數(shù)據(jù)報(bào)文的第二流轉(zhuǎn)發(fā)關(guān)鍵字,根據(jù)第二流轉(zhuǎn)發(fā)關(guān)鍵字查詢流轉(zhuǎn)發(fā)表;當(dāng)流轉(zhuǎn)發(fā)表中的第二流轉(zhuǎn)發(fā)記錄的關(guān)鍵字與第二流轉(zhuǎn)發(fā)關(guān)鍵字相同時(shí),根據(jù)第二流轉(zhuǎn)發(fā)記錄的出口信息轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文??梢越鉀QGRE隧道封裝的IP數(shù)據(jù)報(bào)文進(jìn)行流轉(zhuǎn)發(fā)時(shí),流轉(zhuǎn)發(fā)成功率低的問(wèn)題。
文檔編號(hào)H04L29/06GK102655476SQ201210116220
公開(kāi)日2012年9月5日 申請(qǐng)日期2012年4月19日 優(yōu)先權(quán)日2012年4月19日
發(fā)明者李文濤, 趙廣 申請(qǐng)人:華為技術(shù)有限公司