專利名稱:一種轉(zhuǎn)發(fā)報文的方法及網(wǎng)絡(luò)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及路由轉(zhuǎn)發(fā)領(lǐng)域,尤其涉及一種轉(zhuǎn)發(fā)報文的方法及網(wǎng)絡(luò)設(shè)備。
背景技術(shù):
PPPoE (point to point protocol over Ethernet, I^icN W^X^^t^il), 種用戶接入因特網(wǎng)的方式,被廣泛應(yīng)用到寬帶接入領(lǐng)域中。通常,用戶通過路由器提供的 PPPoE接入服務(wù)訪問因特網(wǎng)。隨著網(wǎng)絡(luò)的發(fā)展,對路由器轉(zhuǎn)發(fā)PPPoE報文的性能提出了更高的要求。現(xiàn)有技術(shù)中,路由器的報文轉(zhuǎn)發(fā)方法為IPdnternet Protocol,互聯(lián)網(wǎng)協(xié)議)五元組的轉(zhuǎn)發(fā)方式,其中IP報文的五元組為源IP、目的IP、源端口號、目的端口號、協(xié)議號, 來標(biāo)識一條數(shù)據(jù)流。具體步驟如下1、在數(shù)據(jù)流的第一個報文查找路由表轉(zhuǎn)發(fā)后,通過源IP、目的IP、源端口號、目的端口號、協(xié)議號作為關(guān)鍵字,創(chuàng)建快速轉(zhuǎn)發(fā)哈希表。2、入接口收到IP報文后,根據(jù)接口的鏈路層協(xié)議類型解析出IP報文頭所在的位置,取出IP報文頭中的五元組信息查找快速轉(zhuǎn)發(fā)表,查找成功則進(jìn)入快速轉(zhuǎn)發(fā)流程,查表失敗則進(jìn)入普通轉(zhuǎn)發(fā)流程。3、進(jìn)入快速轉(zhuǎn)發(fā)流程后,獲取表中的轉(zhuǎn)發(fā)相關(guān)信息,對報文進(jìn)行業(yè)務(wù)處理及鏈路層封裝后發(fā)送至出接口,由出接口將報文發(fā)送出去。在實現(xiàn)上述路由轉(zhuǎn)發(fā)PPPoE報文的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題對于在以太網(wǎng)接口與PPP接口迭代的場景中,PPPoE報文必須在以太網(wǎng)接口進(jìn)行上行業(yè)務(wù)處理及協(xié)議解析,經(jīng)過映射表找到對應(yīng)的PPP接口后,將其發(fā)送至對應(yīng)的PPP接口,在 PPP接口處才能進(jìn)行IP五元組轉(zhuǎn)發(fā)流程,無法從以太網(wǎng)接口直接進(jìn)入IP五元組轉(zhuǎn)發(fā)流程。 也就是說,在進(jìn)入IP五元組轉(zhuǎn)發(fā)流程之前,報文還需要進(jìn)行一些查表解封裝處理,一定程度影響了轉(zhuǎn)發(fā)效率,無法滿足路由器高性能轉(zhuǎn)發(fā)PPPoE報文的需求。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種轉(zhuǎn)發(fā)報文的方法及網(wǎng)絡(luò)設(shè)備,用于解決報文轉(zhuǎn)發(fā)過程中多次查表,導(dǎo)致的轉(zhuǎn)發(fā)效率低的問題。為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案一種轉(zhuǎn)發(fā)報文的方法,包括網(wǎng)絡(luò)設(shè)備接收待轉(zhuǎn)發(fā)報文;獲取第一關(guān)鍵字KEY信息,所述第一 KEY信息包括從所述待轉(zhuǎn)發(fā)報文中獲取的目的互聯(lián)網(wǎng)協(xié)議IP地址、源IP地址、目的端口、源端口、傳輸層協(xié)議、差分服務(wù)代碼點DSCP,以及從所述網(wǎng)絡(luò)設(shè)備的入接口獲取的第一虛擬專用網(wǎng)標(biāo)識VPN ID,所述第一 VPN ID用于當(dāng)所述網(wǎng)絡(luò)設(shè)備僅接入一個VPN網(wǎng)絡(luò)時,標(biāo)識所述VPN網(wǎng)絡(luò);根據(jù)所述第一 KEY信息查找預(yù)存的快速轉(zhuǎn)發(fā)表,所述快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息;所述報文轉(zhuǎn)發(fā)處理信息包括正常轉(zhuǎn)發(fā)流程中記錄的上行接口的索引號、下行接口的索引號以及鏈路層封裝信息;當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,按照所述已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文,并發(fā)送處理后的待轉(zhuǎn)發(fā)報文。一種轉(zhuǎn)發(fā)報文的方法,包括網(wǎng)絡(luò)設(shè)備獲取待轉(zhuǎn)發(fā)報文;獲取第一關(guān)鍵字KEY信息,所述第一 KEY信息包括從所述待轉(zhuǎn)發(fā)報文中獲取的目的互聯(lián)網(wǎng)協(xié)議IP地址、源IP地址、目的端口、源端口、傳輸層協(xié)議、差分服務(wù)代碼點DSCP,以及從網(wǎng)絡(luò)設(shè)備的入接口獲取的第二虛擬專用網(wǎng)標(biāo)識VPN ID,所述第二 VPN ID為預(yù)先設(shè)定的無效VPN ID ;根據(jù)所述第一 KEY信息查找預(yù)存的快速轉(zhuǎn)發(fā)表,所述快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息;所述報文轉(zhuǎn)發(fā)處理信息包括在正常轉(zhuǎn)發(fā)流程中記錄的上行接口的索引號、下行接口的索引號和鏈路層封裝信息;當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的 KEY信息相同時,按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文,并發(fā)送處理后的待轉(zhuǎn)發(fā)報文。一種網(wǎng)絡(luò)設(shè)備,包括入接口,用于接收待轉(zhuǎn)發(fā)報文;第一獲取單元,用于獲取第一 KEY信息,所述第一 KEY信息包括從所述待轉(zhuǎn)發(fā)報文中獲取的目的互聯(lián)網(wǎng)協(xié)議IP地址、 源IP地址、目的端口、源端口、傳輸層協(xié)議、差分服務(wù)代碼點DSCP,以及從所述網(wǎng)絡(luò)設(shè)備的入接口獲取第一虛擬專用網(wǎng)標(biāo)識VPN ID,或第二 VPN ID;所述第一 VPN ID用于當(dāng)所述網(wǎng)絡(luò)設(shè)備僅接入一個VPN網(wǎng)絡(luò)時,標(biāo)識所述VPN網(wǎng)絡(luò);所述第二 VPN ID為預(yù)先設(shè)定的無效 VPN ID ;查找單元,用于根據(jù)所述第一 KEY信息查找預(yù)存的快速轉(zhuǎn)發(fā)表,所述快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息;所述報文轉(zhuǎn)發(fā)處理信息包括在正常轉(zhuǎn)發(fā)流程中記錄的上行接口的索引號、下行接口的索引號和鏈路層封裝信息;處理單元,用于當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文;出接口,用于發(fā)送所述處理單元處理后的待轉(zhuǎn)發(fā)報文。本發(fā)明實施例提供了一種轉(zhuǎn)發(fā)報文的方法及網(wǎng)絡(luò)設(shè)備,接收并解析待轉(zhuǎn)發(fā)報文, 獲取待轉(zhuǎn)發(fā)報文對應(yīng)的第一 KEY信息,利用獲取的第一 KEY信息查找快速轉(zhuǎn)發(fā)表,若第一 KEY信息與快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,則按照對應(yīng)的報文轉(zhuǎn)發(fā)信息處理待轉(zhuǎn)發(fā)報文,實現(xiàn)了報文快速轉(zhuǎn)發(fā),可以避免報文轉(zhuǎn)發(fā)過程中的多次查表,提高了轉(zhuǎn)發(fā)的效率。同時,通過KEY信息中包含的VPN ID,可以保證待轉(zhuǎn)發(fā)報文在快速轉(zhuǎn)發(fā)的過程中被正確轉(zhuǎn)發(fā)至目標(biāo)VPN網(wǎng)絡(luò)中。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的一種轉(zhuǎn)發(fā)報文的方法示意圖之一;圖2為本發(fā)明實施例提供的一種轉(zhuǎn)發(fā)報文的方法中正常轉(zhuǎn)發(fā)流程的方法示意圖;圖3為本發(fā)明實施例提供的一種轉(zhuǎn)發(fā)報文的方法示意圖之二 ;圖4為本發(fā)明實施例提供的另一種轉(zhuǎn)發(fā)報文的方法示意圖之一;圖5為本發(fā)明實施例提供的另一種轉(zhuǎn)發(fā)報文的方法示意圖之二 ;圖6為本發(fā)明實施例提供的另一種轉(zhuǎn)發(fā)報文的方法示意圖之三;
圖7為本發(fā)明實施例提供的網(wǎng)絡(luò)設(shè)備的一種結(jié)構(gòu)示意圖之一;圖8為本發(fā)明實施例提供的網(wǎng)絡(luò)設(shè)備的一種結(jié)構(gòu)示意圖之二 ;圖9為本發(fā)明實施例提供的網(wǎng)絡(luò)設(shè)備的一種結(jié)構(gòu)示意圖之三;圖10為本發(fā)明實施例提供的網(wǎng)絡(luò)設(shè)備的一種結(jié)構(gòu)示意圖之四。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實施例提供了一種轉(zhuǎn)發(fā)報文的方法,如圖1所示,包括101、網(wǎng)絡(luò)設(shè)備接收待轉(zhuǎn)發(fā)報文。其中,所述待轉(zhuǎn)發(fā)報文是能解析出IP協(xié)議的報文,具體可以是PPPoE報文、PPPoA 報文、PPPoFR報文、PPPoEoA報文、IPoEoA報文等。本發(fā)明實施例中將結(jié)合PPPoE報文的轉(zhuǎn)發(fā)為例進(jìn)行說明。102、所述網(wǎng)絡(luò)設(shè)備獲取第一關(guān)鍵字KEY信息。其中,第一 KEY信息包括從待轉(zhuǎn)發(fā)報文中獲取的目的IP(Internet Protocol, 互聯(lián)網(wǎng)協(xié)議)地址、源IP地址、目的端口、源端口、傳輸層協(xié)議、DSCP (Differentiated Services Code Point,差分服務(wù)代碼點),和從網(wǎng)絡(luò)設(shè)備的入接口獲取的第一 VPN ID (Virtual Private Network Identity,虛擬專用網(wǎng)標(biāo)識),所述第一 VPN ID是當(dāng)所述網(wǎng)絡(luò)設(shè)備僅接入一個VPN網(wǎng)絡(luò)時,標(biāo)識所述VPN網(wǎng)絡(luò)。103、所述網(wǎng)絡(luò)設(shè)備根據(jù)所述第一 KEY信息查找預(yù)存的快速轉(zhuǎn)發(fā)表。其中,所述快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息。報文轉(zhuǎn)發(fā)處理信息包括在正常轉(zhuǎn)發(fā)流程中所記錄的上行接口的索引號、下行接口的索引號和鏈路層封裝fe息。需要說明的是,報文轉(zhuǎn)發(fā)處理信息,即在正常轉(zhuǎn)發(fā)流程中所記錄的上行接口的索引號、下行接口的索引號和鏈路層封裝信息可以直接記錄在網(wǎng)絡(luò)設(shè)備的存儲單元中,也可以直接寫入報文中。當(dāng)然,還可以通過其他方法記錄,本發(fā)明實施例對此并不做限定。需要說明的是,在本發(fā)明所有實施例中,上行接口與下行接口是以正常轉(zhuǎn)發(fā)流程中查找路由表的IP處理單元為界進(jìn)行劃分的。從網(wǎng)絡(luò)設(shè)備接收報文的接口至將報文發(fā)送到IP處理單元的過程中經(jīng)過的所有接口均稱為上行接口。報文從IP處理單元發(fā)出后到網(wǎng)絡(luò)設(shè)備發(fā)送出報文的過程中經(jīng)過的所有接口均稱為下行接口。在本發(fā)明所有實施例中,上行接口的第一個接口通常稱為入接口,從網(wǎng)絡(luò)設(shè)備的入接口接收到報文到將報文發(fā)送至IP處理單元的過程中所經(jīng)過的接口通常稱為上行中間接口 ;下行接口的最后一個接口通常稱為出接口,報文從IP處理單元發(fā)出后到網(wǎng)絡(luò)設(shè)備的出接口所經(jīng)過的接口通過稱為下行中間接口。在本發(fā)明所有實施例中,上行接口包括入接口和至少一個上行中間接口。下行接口可以只包括出接口,還可以進(jìn)一步包括至少一個下行中間接口。若下行接口只包括出接口,此時,報文轉(zhuǎn)發(fā)處理信息包括在正常轉(zhuǎn)發(fā)流程中所記錄的入接口的索引號,至少一個上行中間接口的索引號,出接口的索引號和鏈路層封裝信肩、ο若下行接口包括至少一個下行中間接口和出接口,此時,報文轉(zhuǎn)發(fā)處理信息包括在正常轉(zhuǎn)發(fā)流程中所記錄的入接口的索引號,至少一個上行中間接口的索引號,至少一個下行中間接口的索引號,出接口的索引號和鏈路層封裝信息。如圖2所示,所述正常轉(zhuǎn)發(fā)流程具體包括步驟201 205。需要說明的是,在本發(fā)明所有實施例中,正常轉(zhuǎn)發(fā)流程均參考圖2所示,在其他圖示中,只是表示出報文在正常轉(zhuǎn)發(fā)流程中的轉(zhuǎn)發(fā)流向,并沒有具體的表示出報文在正常轉(zhuǎn)發(fā)流程中的轉(zhuǎn)發(fā)過程。201、入接口對接收到的待處理報文進(jìn)行入接口的協(xié)議解析,并記錄入接口的索引號。進(jìn)一步的,入接口對接收到的待處理報文進(jìn)行入接口的協(xié)議解析,并記錄入接口的索引號,具體可以包括若在入接口有需要處理的業(yè)務(wù),則入接口對接收到的待處理報文先進(jìn)行業(yè)務(wù)處理,再進(jìn)行協(xié)議解析,同時記錄入接口的索引號及相應(yīng)的業(yè)務(wù)處理信息。然后,入接口將解析后的待轉(zhuǎn)發(fā)報文發(fā)送給上行中間接口。需要說明的是,在本發(fā)明所有實施例中,某一接口的業(yè)務(wù)處理信息包括業(yè)務(wù)類型, 還可以包括所述接口的索引號或所述接口在上行接口隊列或下行接口隊列中的位置。例如,在PPPoE報文轉(zhuǎn)發(fā)的正常轉(zhuǎn)發(fā)流程中,入接口為上行以太網(wǎng)接口。上行以太網(wǎng)接口接收到PPPoE報文后,若在上行以太網(wǎng)接口有需要處理的業(yè)務(wù),如流量統(tǒng)計,則上行以太網(wǎng)接口先對PPPoE報文進(jìn)行流量統(tǒng)計,再進(jìn)行協(xié)議解析,并記錄上行以太網(wǎng)接口的索弓I號和業(yè)務(wù)類型為流量統(tǒng)計的業(yè)務(wù)處理信息。202、上行中間接口對接收到的待處理報文進(jìn)行上行中間接口的協(xié)議解析,并記錄上行中間接口的索引號。進(jìn)一步的,上行中間接口對接收到的待處理報文進(jìn)行上行中間接口的協(xié)議解析, 并記錄上行中間接口的索引號,具體可以包括若在上行中間接口有需要處理的業(yè)務(wù),則上行中間接口對接收到的待處理報文先進(jìn)行業(yè)務(wù)處理,再進(jìn)行協(xié)議解析,同時記錄上行中間接口的索引號及相應(yīng)的業(yè)務(wù)處理信息。需要說明的是,待處理報文在正常轉(zhuǎn)發(fā)流程中至少經(jīng)過一個上行中間接口,且待處理報文經(jīng)過的上行中間接口中的最后一個是第一解析中間接口,所述第一解析中間接口是能夠解析IP協(xié)議的上行中間接口。 舉例來說,待處理報文在正常轉(zhuǎn)發(fā)流程中經(jīng)過三個上行中間接口,依次為第一上行中間接口,第二上行中間接口和第三上行中間接口,則第三上行中間接口為所述第一解析中間接口 ;第一上行中間接口,第二上行中間接口和第三上行中間接口依次對待處理報文進(jìn)行協(xié)議解析。如果待處理報文在正常轉(zhuǎn)發(fā)流程中僅僅經(jīng)過一個上行中間接口,則該上行中間接口即為所述第一解析中間接口。所述第一解析中間接口對待處理報文進(jìn)行協(xié)議解析后,得到IP報文,所述第一解析中間接口將解析后的IP報文發(fā)送至IP處理單元。例如,PPPoE報文經(jīng)上行以太網(wǎng)接口的協(xié)議解析后,將其發(fā)送至上行PPP (point topoint protocol,點對點協(xié)議)接口。在上行PPP接口能解析出IP協(xié)議,則PPP接口即為第一解析中間接口。上行PPP接口接收到報文后,若上行PPP接口有需要處理的業(yè)務(wù),例如需要處理服務(wù)質(zhì)量(Quality of krvice,簡稱Qos)業(yè)務(wù),則先對報文進(jìn)行Qos業(yè)務(wù)處理, 再對報文進(jìn)行協(xié)議解析。并記錄上行PPP接口的索引號和業(yè)務(wù)類型為Qos業(yè)務(wù)的業(yè)務(wù)處理信息。當(dāng)解析出IP報文,上行PPP接口將IP報文發(fā)送至IP處理單元。203、IP處理單元根據(jù)接收到的IP報文進(jìn)行路由表查找,獲取轉(zhuǎn)發(fā)IP報文的下一個接口,并將IP報文發(fā)送至由查找路由表獲知的下一個接口,同時記錄查找到的下一個接口的索引號。需要說明的是,若IP處理單元經(jīng)查找路由表,查找到的下一個接口為出接口,則將IP報文發(fā)送至出接口,并記錄出接口的索引號,繼續(xù)執(zhí)行步驟205。若IP處理單元經(jīng)查找路由表,查找到的下一個接口為下行中間接口,則將IP報文發(fā)送至查找到的下行中間接口,并記錄查找到的下行中間接口的索引號,繼續(xù)執(zhí)行步驟 204。例如,IP處理單元接收到上行PPP接口發(fā)送的IP報文后進(jìn)行路由查表,獲取待轉(zhuǎn)發(fā)IP報文的下一個接口為下行PPP接口,將IP報文發(fā)送至下行PPP接口,并記錄下行PPP 接口的索引號。204、下行中間接口對接收到的IP報文進(jìn)行封裝處理,并記錄下一個接口的索引號和相應(yīng)的封裝信息。進(jìn)一步的,下行中間接口對接收到的IP報文進(jìn)行相應(yīng)的封裝處理,并記錄下一個接口的索引號和相應(yīng)的封裝信息具體可以包括若在下行中間接口有需要處理的業(yè)務(wù),則下行中間接口對接收到的IP報文先進(jìn)行相應(yīng)的封裝處理,再進(jìn)行業(yè)務(wù)的處理,并將處理后的報文發(fā)送至下一個接口,同時記錄下一個接口的索引號、相應(yīng)的業(yè)務(wù)處理信息和封裝信息。例如,待處理報文在正常轉(zhuǎn)發(fā)流程中經(jīng)過三個下行中間接口,依次為第一下行中間接口,第二下行中間接口和第三下行中間接口 ;則在IP處理單元將IP報文發(fā)送至第一下行中間接口,并記錄第一下行中間接口的索引號。第一下行中間接口將IP報文進(jìn)行相應(yīng)的封裝處理后將待處理報文發(fā)送至第二下行中間接口,并記錄第二下行中間接口的索引號。第二下行中間接口、第三下行中間接口依次對待處理報文進(jìn)行相應(yīng)的封裝處理,并記錄第三下行中間接口、出接口的索引號和相應(yīng)的封裝信息。例如,下行PPP接口接收到IP處理單元發(fā)送的報文后,先進(jìn)行協(xié)議封裝,即將報文進(jìn)行PPP頭部封裝。若在下行PPP接口有需要處理的業(yè)務(wù),則進(jìn)行業(yè)務(wù)處理,并將處理后的報文發(fā)送至下行以太網(wǎng)接口即出接口,同時記錄下行以太網(wǎng)接口的索引號、相應(yīng)的業(yè)務(wù)處理信息和封裝信息。205、出接口接收到待處理報文后對待處理報文進(jìn)行相應(yīng)的封裝處理,并記錄相應(yīng)的封裝信息。進(jìn)一步的,出接口接收到待處理報文后對待處理報文進(jìn)行相應(yīng)的封裝處理,并記錄相應(yīng)的封裝信息可以具體包括出接口接收到待處理報文后,若有需要處理的業(yè)務(wù),則先對待處理報文進(jìn)行相應(yīng)的封裝處理,再進(jìn)行業(yè)務(wù)處理,并將處理后的待轉(zhuǎn)發(fā)報文發(fā)送出去,同時記錄相應(yīng)的業(yè)務(wù)處理信息及封裝信息。需要說明的是,在正常轉(zhuǎn)發(fā)流程中待處理報文在上行接口、下行接口處理的業(yè)務(wù)可以包括Q0S業(yè)務(wù)、接口流量統(tǒng)計、防火墻等。104、當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時, 所述網(wǎng)絡(luò)設(shè)備按照所述已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文。具體的,若已有記錄的報文轉(zhuǎn)發(fā)處理信中記錄有入接口業(yè)務(wù)處理信息,則根據(jù)業(yè)務(wù)處理信息處理待轉(zhuǎn)發(fā)報文包括根據(jù)入接口的業(yè)務(wù)處理信息對待轉(zhuǎn)發(fā)報文進(jìn)行業(yè)務(wù)處理,若在業(yè)務(wù)處理的過程中需要參數(shù),則根據(jù)入接口的索引號找到入接口,并獲取相應(yīng)的參數(shù),繼續(xù)進(jìn)行業(yè)務(wù)處理。若已有記錄的報文轉(zhuǎn)發(fā)處理信中記錄有至少一個上行中間接口業(yè)務(wù)處理信息,則根據(jù)至少一個上行中間接口業(yè)務(wù)處理信息對待轉(zhuǎn)發(fā)報文進(jìn)行業(yè)務(wù)處理,若在業(yè)務(wù)處理的過程中需要參數(shù),則根據(jù)至少一個上行中間接口的索引號找到至少一個上行中間接口,并獲取相應(yīng)的參數(shù),繼續(xù)進(jìn)行業(yè)務(wù)處理。例如,在PPPoE報文轉(zhuǎn)發(fā)過程中,快速轉(zhuǎn)發(fā)表的報文轉(zhuǎn)發(fā)處理信息中記錄有在上行以太網(wǎng)接口進(jìn)行流量統(tǒng)計,在上行PPP接口進(jìn)行Qos業(yè)務(wù)的業(yè)務(wù)處理信息,則對待轉(zhuǎn)發(fā) PPPoE報文進(jìn)行流量統(tǒng)計,流量統(tǒng)計完成后,對待轉(zhuǎn)發(fā)PPPoE報文進(jìn)行Qos業(yè)務(wù)處理,在進(jìn)行Qos業(yè)務(wù)處理時若需要參數(shù),則根據(jù)上行PPP接口的索引號找到上行PPP接口,并獲取參數(shù),對待轉(zhuǎn)發(fā)PPPoE報文繼續(xù)進(jìn)行與已轉(zhuǎn)發(fā)PPPoE報文相同的Qos業(yè)務(wù)處理。按照快速轉(zhuǎn)發(fā)表中的報文轉(zhuǎn)發(fā)處理信息中的鏈路層封裝信息對待轉(zhuǎn)發(fā)報文進(jìn)行與已轉(zhuǎn)發(fā)報文相同的鏈路層封裝,得到處理后的待轉(zhuǎn)發(fā)報文。若已有記錄的報文轉(zhuǎn)發(fā)處理信中記錄有至少一個下行中間接口業(yè)務(wù)處理信息,則根據(jù)至少一個下行中間接口業(yè)務(wù)處理信息對待轉(zhuǎn)發(fā)報文進(jìn)行業(yè)務(wù)處理,若在業(yè)務(wù)處理的過程中需要參數(shù),則根據(jù)至少一個下行中間接口的索引號找到至少一個下行中間接口,并獲取相應(yīng)的參數(shù),繼續(xù)進(jìn)行業(yè)務(wù)處理。若已有記錄的報文轉(zhuǎn)發(fā)處理信中記錄有出接口業(yè)務(wù)處理信息,則根據(jù)出接口業(yè)務(wù)處理信息對待轉(zhuǎn)發(fā)報文進(jìn)行業(yè)務(wù)處理,若在業(yè)務(wù)處理的過程中需要參數(shù),則根據(jù)出接口的索引號找到出接口,并獲取相應(yīng)的參數(shù),繼續(xù)進(jìn)行業(yè)務(wù)處理。105、所述網(wǎng)絡(luò)設(shè)備發(fā)送處理后的待轉(zhuǎn)發(fā)報文。上述方法的執(zhí)行主體可以是網(wǎng)絡(luò)設(shè)備,包括路由器,交換機等。示例的,各步驟的執(zhí)行主體可以是網(wǎng)絡(luò)設(shè)備中的各個功能單元,具體可以參照圖1以明確各步驟的執(zhí)行主體。第一獲取單元、查找單元以及處理單元均可以是設(shè)置在網(wǎng)絡(luò)設(shè)備中的獨立單元,其中第一獲取單元還可以集成在入接口中,并且查找單元和處理單元還可以合設(shè)為一個單元。本發(fā)明實施例提供了一種轉(zhuǎn)發(fā)報文的方法,通過接收并解析待轉(zhuǎn)發(fā)報文,獲取待轉(zhuǎn)發(fā)報文對應(yīng)的第一 KEY信息,利用獲取的第一 KEY信息查找快速轉(zhuǎn)發(fā)表,若第一 KEY信息與快速轉(zhuǎn)發(fā)表中已有記錄的KEY信息的一條相同時,則根據(jù)對應(yīng)的報文轉(zhuǎn)發(fā)信息處理待轉(zhuǎn)發(fā)報文,實現(xiàn)了報文快速轉(zhuǎn)發(fā),可以避免報文轉(zhuǎn)發(fā)過程中的多次查表,提高了轉(zhuǎn)發(fā)的效率。 同時,通過KEY信息中包含的VPN ID這一參數(shù),可以保證待轉(zhuǎn)發(fā)報文在快速轉(zhuǎn)發(fā)的過程中被正確轉(zhuǎn)發(fā)至目標(biāo)VPN網(wǎng)絡(luò)中。如圖3所示,所述方法還包括
106、當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY信息均不相同時,則所述網(wǎng)絡(luò)設(shè)備將所述待轉(zhuǎn)發(fā)報文發(fā)送至所述入接口,并進(jìn)行正常轉(zhuǎn)發(fā)流程,并將所述第一 KEY信息和正常轉(zhuǎn)發(fā)流程中記錄的第一報文轉(zhuǎn)發(fā)處理信息寫入到所述快速轉(zhuǎn)發(fā)表中,以更新所述快速轉(zhuǎn)發(fā)表。其中,所述第一報文轉(zhuǎn)發(fā)處理信息包括所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中經(jīng)過的上行接口的索引號,下行接口的索引號和鏈路層封裝信息。需要說明的是,在本發(fā)明所有實施例中,在正常轉(zhuǎn)發(fā)流程中,待轉(zhuǎn)發(fā)報文經(jīng)過的上行接口的索引號,是指入接口的索引號和至少一個上行中間接口的索引號。 若在正常轉(zhuǎn)發(fā)流程中,待轉(zhuǎn)發(fā)報文經(jīng)IP處理單元直接發(fā)送至出接口,則下行接口索引號是指出接口的索引號。此時,第一報文轉(zhuǎn)發(fā)處理信息包括所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中經(jīng)過的入接口的索引號、至少一個上行中間接口的索引號、出接口的索引號和鏈路層封裝信息。若在正常轉(zhuǎn)發(fā)流程中,待轉(zhuǎn)發(fā)報文經(jīng)IP處理單元發(fā)送至下行中間接口,由下行中間接口發(fā)送至出接口,則下行接口的索引號是指至少一個下行中間接口的索引號和出接口的索引號。此時,第一報文轉(zhuǎn)發(fā)處理信息包括所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中經(jīng)過的入接口的索引號、至少一個上行中間接口的索引號、至少一個下行中間接口的索引號、出接口的索引號和和鏈路層封裝信息。其中,將第一報文轉(zhuǎn)發(fā)處理信息寫入到快速轉(zhuǎn)發(fā)表的方式具體可以是按照待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中所經(jīng)過的入接口、至少一個上行中間接口的順序,依次將入接口、至少一個上行中間接口的索引號寫入快速轉(zhuǎn)發(fā)表的上行接口隊列中;若在入接口、至少一個上行中間都有需要處理的業(yè)務(wù),則依次將入接口、至少一個上行中間接口的業(yè)務(wù)處理信息寫入快速轉(zhuǎn)發(fā)表的業(yè)務(wù)處理信息隊列中。若待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中不經(jīng)過下行中間接口,由IP處理單元直接發(fā)送至出接口,則將出接口的索引號寫入快速轉(zhuǎn)發(fā)表的下行接口隊列中,若在出接口有需要處理的業(yè)務(wù),則將出接口的業(yè)務(wù)處理信息寫入快速轉(zhuǎn)發(fā)表的業(yè)務(wù)處理信息隊列中。若待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中經(jīng)過至少一個下行中間接口,則按照待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中所經(jīng)過的至少一個下行中間接口、出接口的順序,依次將至少一個下行中間接口、出接口的索引號寫入快速轉(zhuǎn)發(fā)表的下行接口隊列中;將鏈路層封裝信息寫入到快速轉(zhuǎn)發(fā)表的鏈路層封裝信息中。若在至少一個下行中間接口、出接口有需要處理的業(yè)務(wù),則依次將在至少一個下行中間接口、出接口的業(yè)務(wù)處理信息寫入快速轉(zhuǎn)發(fā)表的業(yè)務(wù)處理信息隊列中。這樣,在待轉(zhuǎn)發(fā)報文對應(yīng)的第一 KEY信息與快速轉(zhuǎn)發(fā)表中任意一條已有記錄的 KEY信息均不相同時,使得待轉(zhuǎn)發(fā)報文進(jìn)行正常轉(zhuǎn)發(fā)流程,并將第一 KEY信息和記錄的第一報文轉(zhuǎn)發(fā)處理信息寫入快速轉(zhuǎn)發(fā)表中,以使得之后的報文可以根據(jù)快速轉(zhuǎn)發(fā)表進(jìn)行快速轉(zhuǎn)發(fā)。本發(fā)明實施例提供一種轉(zhuǎn)發(fā)報文的方法,如圖4所示,包括401、網(wǎng)絡(luò)設(shè)備獲取待轉(zhuǎn)發(fā)報文。402、所述網(wǎng)絡(luò)設(shè)備獲取第一關(guān)鍵字KEY信息。其中,第一 KEY信息包括從待轉(zhuǎn)發(fā)報文中獲取的目的IP(Internet Protocol,互聯(lián)網(wǎng)協(xié)議)地址、源IP地址、目的端口號、源端口號、傳輸層協(xié)議、DSCP (DifferentiatedServices Code Point,差分服務(wù)代碼點),以及從網(wǎng)絡(luò)設(shè)備的入接口獲取的第二 VPN ID (Virtual Private Network Identity,虛擬專用網(wǎng)標(biāo)識)。第二 VPN ID為預(yù)先設(shè)定的無效的VPN ID。403、所述網(wǎng)絡(luò)設(shè)備根據(jù)所述第一 KEY信息查找預(yù)存的快速轉(zhuǎn)發(fā)表,所述快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息。其中,所述報文轉(zhuǎn)發(fā)處理信息包括在正常轉(zhuǎn)發(fā)流程中記錄的上行接口的索引號、 下行接口的索引號和鏈路層封裝信息。所述正常轉(zhuǎn)發(fā)流程具體步驟可以參見步驟201 205,參考圖2所示,在此不再贅述。404、當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時, 所述網(wǎng)絡(luò)設(shè)備按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文。具體的,若已有記錄的報文轉(zhuǎn)發(fā)處理信中記錄有入接口業(yè)務(wù)處理信息,則根據(jù)入接口的業(yè)務(wù)處理信息對待轉(zhuǎn)發(fā)報文進(jìn)行業(yè)務(wù)處理,若在業(yè)務(wù)處理的過程中需要參數(shù),則根據(jù)入接口的索引號找到入接口,并獲取相應(yīng)的參數(shù),繼續(xù)進(jìn)行業(yè)務(wù)處理。若已有記錄的報文轉(zhuǎn)發(fā)處理信中記錄有至少一個上行中間接口業(yè)務(wù)處理信息,則根據(jù)至少一個上行中間接口業(yè)務(wù)處理信息對待轉(zhuǎn)發(fā)報文進(jìn)行業(yè)務(wù)處理,若在業(yè)務(wù)處理的過程中需要參數(shù),則根據(jù)至少一個上行中間接口的索引號找到至少一個上行中間接口,并獲取相應(yīng)的參數(shù),繼續(xù)進(jìn)行業(yè)務(wù)處理。例如,在PPPoE報文轉(zhuǎn)發(fā)過程中,快速轉(zhuǎn)發(fā)表的報文轉(zhuǎn)發(fā)處理信息中記錄有在上行以太網(wǎng)接口進(jìn)行流量統(tǒng)計,在上行PPP接口進(jìn)行Qos業(yè)務(wù)的業(yè)務(wù)處理信息,則對待轉(zhuǎn)發(fā) PPPoE報文進(jìn)行流量統(tǒng)計,流量統(tǒng)計完成后,對待轉(zhuǎn)發(fā)PPPoE報文進(jìn)行Qos業(yè)務(wù)處理,在進(jìn)行Qos業(yè)務(wù)處理時若需要參數(shù),則根據(jù)上行PPP接口的索引號找到上行PPP接口,并獲取參數(shù),對待轉(zhuǎn)發(fā)PPPoE報文繼續(xù)進(jìn)行與已轉(zhuǎn)發(fā)PPPoE報文相同的Qos業(yè)務(wù)處理。按照快速轉(zhuǎn)發(fā)表中的報文轉(zhuǎn)發(fā)處理信息中的鏈路層封裝信息對待轉(zhuǎn)發(fā)報文進(jìn)行與已轉(zhuǎn)發(fā)報文相同的鏈路層封裝,得到處理后的待轉(zhuǎn)發(fā)報文。若已有記錄的報文轉(zhuǎn)發(fā)處理信中記錄有至少一個下行中間接口業(yè)務(wù)處理信息,則根據(jù)至少一個下行中間接口業(yè)務(wù)處理信息對待轉(zhuǎn)發(fā)報文進(jìn)行業(yè)務(wù)處理,若在業(yè)務(wù)處理的過程中需要參數(shù),則根據(jù)至少一個下行中間接口的索引號找到至少一個下行中間接口,并獲取相應(yīng)的參數(shù),繼續(xù)進(jìn)行業(yè)務(wù)處理。若已有記錄的報文轉(zhuǎn)發(fā)處理信中記錄有出接口業(yè)務(wù)處理信息,則根據(jù)出接口業(yè)務(wù)處理信息對待轉(zhuǎn)發(fā)報文進(jìn)行業(yè)務(wù)處理,若在業(yè)務(wù)處理的過程中需要參數(shù),則根據(jù)出接口的索引號找到出接口,并獲取相應(yīng)的參數(shù),繼續(xù)進(jìn)行業(yè)務(wù)處理。需要說明的是,待轉(zhuǎn)發(fā)報文在入接口、至少一個上行中間接口、至少一個下行中間接口、出接口處理的業(yè)務(wù)可以包括Qos業(yè)務(wù),接口流量統(tǒng)計、防火墻等。上述方法的執(zhí)行主體可以是網(wǎng)絡(luò)設(shè)備,包括路由器,交換機等,示例的,各步驟的執(zhí)行主體可以是網(wǎng)絡(luò)設(shè)備中的各個功能單元,具體可以參照圖4以明確各步驟的執(zhí)行主體。第一獲取單元、查找單元以及處理單元均可以是設(shè)置在網(wǎng)絡(luò)設(shè)備中的獨立單元,其中第一獲取單元還可以集成在入接口中,并且查找單元和處理單元還可以合設(shè)為一個單元。405、所述網(wǎng)絡(luò)設(shè)備發(fā)送處理后的待轉(zhuǎn)發(fā)報文。
本發(fā)明實施例提供了一種轉(zhuǎn)發(fā)報文的方法,通過接收并解析待轉(zhuǎn)發(fā)報文,獲取待轉(zhuǎn)發(fā)報文對應(yīng)的第一 KEY信息,利用獲取的第一 KEY信息查找快速轉(zhuǎn)發(fā)表,若第一 KEY信息與快速轉(zhuǎn)發(fā)表中已有記錄的KEY信息的一條相同時,則根據(jù)KEY信息對應(yīng)的報文轉(zhuǎn)發(fā)信息處理待轉(zhuǎn)發(fā)報文,實現(xiàn)了報文快速轉(zhuǎn)發(fā)。避免了報文轉(zhuǎn)發(fā)過程中多次查表,提高了轉(zhuǎn)發(fā)的效率。同時,KEY信息中包含有VPN ID這一參數(shù),這就能夠?qū)崿F(xiàn)報文在快速轉(zhuǎn)發(fā)的過程中被正確的發(fā)送至目標(biāo)VPN網(wǎng)絡(luò)中。上述方法,如圖5所示,還包括406、當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY信息均不相同時,則所述網(wǎng)絡(luò)設(shè)備將所述待轉(zhuǎn)發(fā)報文發(fā)送至所述入接口,并進(jìn)行正常轉(zhuǎn)發(fā)流程。407、當(dāng)所述待轉(zhuǎn)發(fā)報文到第一解析中間接口處時,在所述第一解析中間接口獲取第三VPN ID,并用所述第三VPN ID更新所述第一 KEY信息中的第二 VPN ID,得到更新后的第一 KEY信息。其中,所述第三VPN ID用于標(biāo)識所述網(wǎng)絡(luò)設(shè)備同時接入多個VPN網(wǎng)絡(luò)時,所述第一解析中間接口所接入的VPN網(wǎng)絡(luò)。例如,在PPPoE報文轉(zhuǎn)發(fā)的過程中,當(dāng)PPPoE報文的第一 KEY信息與快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY信息均不相同時,將PPPoE報文轉(zhuǎn)發(fā)至上行以太網(wǎng)接口,上行以太網(wǎng)接口對PPPoE報文進(jìn)行協(xié)議解析。若在上行以太網(wǎng)接口有需要處理的業(yè)務(wù),則先進(jìn)行業(yè)務(wù)處理,在進(jìn)行協(xié)議解析。將解析后的報文發(fā)送至上行PPP接口。上行PPP接口為第一解析中間接口,則在上行PPP接口獲取此上行PPP接口所屬的VPN網(wǎng)絡(luò)的標(biāo)識即獲取第三VPN ID,并用在上行PPP接口獲取的第三VPN ID更新第一 KEY信息中的第二 VPN ID,得到更新后的第一 KEY信息。408、所述網(wǎng)絡(luò)設(shè)備根據(jù)所述更新后的第一 KEY信息,重新查找所述快速轉(zhuǎn)發(fā)表。409、當(dāng)所述更新后的第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,所述網(wǎng)絡(luò)設(shè)備結(jié)束正常轉(zhuǎn)發(fā)流程,并按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文。具體的,當(dāng)快速轉(zhuǎn)發(fā)表中已記錄的KEY信息中有一條與第一 KEY信息相同時,則結(jié)束正常轉(zhuǎn)發(fā)流程,并根據(jù)快速轉(zhuǎn)發(fā)表中存儲的與KEY信息對應(yīng)的報文轉(zhuǎn)發(fā)處理信息處理待轉(zhuǎn)發(fā)報文。根據(jù)報文轉(zhuǎn)發(fā)處理信息處理待轉(zhuǎn)發(fā)報文的具體方法已在步驟404進(jìn)行了詳細(xì)的說明,在此不再重復(fù)。410、所述網(wǎng)絡(luò)設(shè)備發(fā)送處理后的待轉(zhuǎn)發(fā)報文。在步驟402中獲取了第二 VPN ID,經(jīng)過步驟407可以獲取第一解析中間接口所屬的VPN網(wǎng)絡(luò)的第三VPN ID,獲取更新后的第一 KEY信息,進(jìn)而重新查找快速轉(zhuǎn)發(fā)表,若更新后的第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,則根據(jù)對應(yīng)的報文轉(zhuǎn)發(fā)信息處理待轉(zhuǎn)發(fā)報文,最后發(fā)送處理后的待轉(zhuǎn)發(fā)報文。實現(xiàn)了報文快速轉(zhuǎn)發(fā),避免了報文轉(zhuǎn)發(fā)過程中的多次查表,提高了轉(zhuǎn)發(fā)的效率。上述方法,如圖6所示,還包括411、當(dāng)所述更新后的第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY 信息均不相同時,則所述網(wǎng)絡(luò)設(shè)備將所述待轉(zhuǎn)發(fā)報文發(fā)送至所述第一解析中間接口,繼續(xù)進(jìn)行正常轉(zhuǎn)發(fā)流程,并將更新后的第一 KEY信息和在正常轉(zhuǎn)發(fā)流程中記錄的第一報文轉(zhuǎn)發(fā)處理信息寫入到所述快速轉(zhuǎn)發(fā)表中,以更新所述快速轉(zhuǎn)發(fā)表。其中,第一報文轉(zhuǎn)發(fā)處理信息包括待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中經(jīng)過的上行接口的索引號,下行接口的索引號和鏈路層封裝信息。具體的,將第一報文轉(zhuǎn)發(fā)處理信息寫入到快速轉(zhuǎn)發(fā)表中,具體包括將所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的入接口,至少一個上行中間接口的索引號依次寫入所述快速轉(zhuǎn)發(fā)表的上行接口隊列中。若在入接口、至少一個上行中間都有需要處理的業(yè)務(wù),則依次將入接口、至少一個上行中間接口的業(yè)務(wù)處理信息寫入快速轉(zhuǎn)發(fā)表的業(yè)務(wù)處理信息隊列中。若待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中不經(jīng)過下行中間接口,由IP處理單元直接發(fā)送至出接口,則將出接口的索引號寫入快速轉(zhuǎn)發(fā)表的下行接口隊列中,若在出接口有需要處理的業(yè)務(wù),則將出接口的業(yè)務(wù)處理信息寫入快速轉(zhuǎn)發(fā)表的業(yè)務(wù)處理信息隊列中。若待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中經(jīng)過至少一個下行中間接口,則將所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的至少一個下行中間接口、出接口的索引號依次寫入所述快速轉(zhuǎn)發(fā)表的下行接口隊列中。若在至少一個下行中間接口、出接口有需要處理的業(yè)務(wù),則依次將在至少一個下行中間接口、出接口的業(yè)務(wù)處理信息寫入快速轉(zhuǎn)發(fā)表的業(yè)務(wù)處理信息隊列中。將鏈路層封裝信息寫入所述快速轉(zhuǎn)發(fā)表的鏈路層封裝信息中。經(jīng)過上述步驟411能夠在更新后的第一 KEY信息與快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY信息均不相同時,使得待轉(zhuǎn)發(fā)報文繼續(xù)進(jìn)行正常轉(zhuǎn)發(fā)流程,并將在正常轉(zhuǎn)發(fā)流程中記錄的第一報文轉(zhuǎn)發(fā)處理信息和更新后的第一 KEY信息寫入快速轉(zhuǎn)發(fā)表中,使得之后的報文可以根據(jù)快速轉(zhuǎn)發(fā)表中進(jìn)行快速轉(zhuǎn)發(fā)。采用本發(fā)明實施例提供的轉(zhuǎn)發(fā)報文的方法,通過獲取待轉(zhuǎn)發(fā)報文對應(yīng)的第一 KEY 信息,利用第一 KEY信息查找快速轉(zhuǎn)發(fā)表,若第一 KEY信息與快速轉(zhuǎn)發(fā)表中一條已有記錄的 KEY信息相同時,按照對應(yīng)的報文轉(zhuǎn)發(fā)信息處理待轉(zhuǎn)發(fā)報文,可以實現(xiàn)報文快速轉(zhuǎn)發(fā),避免了報文轉(zhuǎn)發(fā)過程中的多次查表,提高了轉(zhuǎn)發(fā)效率。同時,通過KEY信息中包含的VPN ID,可以保證待轉(zhuǎn)發(fā)報文在快速轉(zhuǎn)發(fā)的過程中被正確轉(zhuǎn)發(fā)至目標(biāo)VPN網(wǎng)絡(luò)。參見圖7,是本發(fā)明實施例提供了一種網(wǎng)絡(luò)設(shè)備,用于實現(xiàn)本發(fā)明圖1所示的方法。所述網(wǎng)絡(luò)設(shè)備包括入接口 601,用于接收待轉(zhuǎn)發(fā)報文。第一獲取單元602,用于獲取第一 KEY信息,所述第一 KEY信息包括從所述待轉(zhuǎn)發(fā)報文中獲取的目的互聯(lián)網(wǎng)協(xié)議IP地址、源IP地址、目的端口、源端口、傳輸層協(xié)議、差分服務(wù)代碼點DSCP,以及從所述網(wǎng)絡(luò)設(shè)備的入接口獲取第一虛擬專用網(wǎng)標(biāo)識VPN ID,或第二VPN ID。其中,所述第一VPN ID用于當(dāng)所述網(wǎng)絡(luò)設(shè)備僅接入一個VPN網(wǎng)絡(luò)時,標(biāo)識所述VPN 網(wǎng)絡(luò);所述第二 VPN ID為預(yù)先設(shè)定的無效VPN ID。查找單元603,用于根據(jù)所述第一 KEY信息查找所述快速轉(zhuǎn)發(fā)表。其中,快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息。報文轉(zhuǎn)發(fā)處理信息包括在正常轉(zhuǎn)發(fā)流程中記錄的上行接口的索引號、下行接口的索引號和鏈路層封裝信肩、ο
處理單元604,用于當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY 信息相同時,按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文。出接口 605,用于發(fā)送所述處理單元604處理后的待轉(zhuǎn)發(fā)報文。需要說明的是,上述第一獲取單元可以為網(wǎng)絡(luò)設(shè)備中合設(shè)在入接口的一個模塊, 也可以是獨立于入接口,且連接該入接口與查找單元。所述處理單元604,還用于當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY信息均不相同時,將所述待轉(zhuǎn)發(fā)報文發(fā)送至所述入接口 601,以進(jìn)行正常轉(zhuǎn)發(fā)流程。如圖8所示,所述網(wǎng)絡(luò)設(shè)備還包括至少一個上行中間接口 606、IP處理單元607、 至少一個下行中間接口 608和記錄單元611,用于實現(xiàn)本發(fā)明圖2所示的正常轉(zhuǎn)發(fā)流程。進(jìn)一步的,如圖9所示,所述網(wǎng)絡(luò)設(shè)備還包括第一更新單元609。所述入接口 601,還用于對待轉(zhuǎn)發(fā)報文進(jìn)行協(xié)議解析,并發(fā)送所述待轉(zhuǎn)發(fā)報文至所述至少一個上行中間接口 606。所述至少一個上行中間接口 606,用于對待轉(zhuǎn)發(fā)進(jìn)行協(xié)議解析。所述IP處理單元607,用于按照待轉(zhuǎn)發(fā)報文的目的IP地址進(jìn)行路由表查找,查找出待轉(zhuǎn)發(fā)報文的下一個接口。其中,若IP處理單元607查找的下一個接口為出接口 605時,則將IP報文直接發(fā)送至出接口 605。若IP處理單元607查找的下一個接口為下行中間接口,則將IP報文發(fā)送到至少一個下行中間接口 608。所述至少一個下行中間接口 608,用于對待轉(zhuǎn)發(fā)報文進(jìn)行封裝處理,并將封裝處理后的待轉(zhuǎn)發(fā)報文發(fā)送至出接口 605。記錄單元611,用于在正常轉(zhuǎn)發(fā)流程中,記錄第一報文轉(zhuǎn)發(fā)處理信息。其中,第一報文轉(zhuǎn)發(fā)處理信息包括所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中記錄的上行接口的索引號、下行接口的索引號、鏈路層封裝信息。需要說明的是,待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中記錄的報文轉(zhuǎn)發(fā)處理信息,即上行接口的索引號、下行接口的索引號、鏈路層封裝信息可以直接記錄在待轉(zhuǎn)發(fā)報文中,也可以記錄存儲單元中,本發(fā)明實施例對此并不做限制。所述第一更新單元609,用于將所述第一 KEY信息和所述第一報文轉(zhuǎn)發(fā)處理信息寫入到所述快速轉(zhuǎn)發(fā)表中,以更新所述快速轉(zhuǎn)發(fā)表??蛇x的,所述第一更新單元609具體用于將待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的入接口 601,至少一個上行中間接口 606的索引號依次寫入所述快速轉(zhuǎn)發(fā)表中的上行接口隊列中。若待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中不經(jīng)過至少一個下行中間接口 608,由IP處理單元直接發(fā)送至出接口 605,則將出接口 605的索引號寫入快速轉(zhuǎn)發(fā)表的下行接口隊列中。若待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中經(jīng)過至少一個下行中間接口 608,則將待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的至少一個下行中間接口 608,出接口 605的索引號依次寫入所述快速轉(zhuǎn)發(fā)表中的下行接口隊列中。將鏈路層封裝信息寫入所述快速轉(zhuǎn)發(fā)表的鏈路層封裝信息中。上述網(wǎng)絡(luò)設(shè)備,如圖10所示,還可以包括第二獲取單元610和第二更新單元 612。
所述第二獲取單元610,用于在第一解析中間接口中獲取第三VPN ID,并用所述第三VPN ID更新所述第一 KEY信息中的第二 VPNID,得到更新后的第一 KEY信息。其中,所述第三VPN ID用于標(biāo)識所述網(wǎng)絡(luò)設(shè)備同時接入多個VPN網(wǎng)絡(luò)時,所述第一解析中間接口所接入的VPN網(wǎng)絡(luò)。其中,所述第一解析中間接口是能解析出IP協(xié)議的上行中間接口。所述查找單元603,還用于根據(jù)更新后的第一 KEY信息查找快速轉(zhuǎn)發(fā)表。所述處理單元604,還用于若更新后的第一 KEY信息與快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,結(jié)束正常轉(zhuǎn)發(fā)流程,并按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理待轉(zhuǎn)發(fā)報文;若所述更新后的第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY信息均不相同時,則將所述待轉(zhuǎn)發(fā)報文發(fā)送至所述第一解析中間接口,繼續(xù)進(jìn)行正常轉(zhuǎn)發(fā)流程。所述第二更新單元612,用于將所述更新后的第一 KEY信息和所述第一報文轉(zhuǎn)發(fā)處理信息寫入到所述快速轉(zhuǎn)發(fā)表中,以更新所述快速轉(zhuǎn)發(fā)表??蛇x的,所述第二更新單元具體用于將所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的入接口 601,至少一個上行中間接口 606的索引號依次寫入所述快速轉(zhuǎn)發(fā)表的上行接口隊列中。若待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中不經(jīng)過至少一個下行中間接口 608,由IP處理單元直接發(fā)送至出接口 605,則將出接口 605的索引號寫入快速轉(zhuǎn)發(fā)表的下行接口隊列中。 若待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)的過程中經(jīng)過至少一個下行中間接口 608,則將所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的至少一個下行中間接口 608、出接口 605的索引號依次寫入所述快速轉(zhuǎn)發(fā)表的下行接口隊列中。將鏈路層封裝信息寫入所述快速轉(zhuǎn)發(fā)表的鏈路層封裝信息中。本發(fā)明實施例提供的技術(shù)方案,網(wǎng)絡(luò)設(shè)備接收并解析待轉(zhuǎn)發(fā)報文,獲取待轉(zhuǎn)發(fā)報文對應(yīng)的第一 KEY信息,利用第一 KEY信息查找快速轉(zhuǎn)發(fā)表,若第一 KEY信息與快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,則按照對應(yīng)的報文轉(zhuǎn)發(fā)信息處理待轉(zhuǎn)發(fā)報文,實現(xiàn)了報文快速轉(zhuǎn)發(fā),可以避免報文轉(zhuǎn)發(fā)過程中的多次查表,提高了轉(zhuǎn)發(fā)的效率。同時,通過KEY 信息中包含的VPN ID,可以保證待轉(zhuǎn)發(fā)報文在快速轉(zhuǎn)發(fā)的過程中被正確轉(zhuǎn)發(fā)至目標(biāo)VPN網(wǎng) 以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種轉(zhuǎn)發(fā)報文的方法,其特征在于,包括 網(wǎng)絡(luò)設(shè)備接收待轉(zhuǎn)發(fā)報文;獲取第一關(guān)鍵字KEY信息,所述第一 KEY信息包括從所述待轉(zhuǎn)發(fā)報文中獲取的目的互聯(lián)網(wǎng)協(xié)議IP地址、源IP地址、目的端口、源端口、傳輸層協(xié)議、差分服務(wù)代碼點DSCP,以及從所述網(wǎng)絡(luò)設(shè)備的入接口獲取的第一虛擬專用網(wǎng)標(biāo)識VPN ID,所述第一VPN ID用于當(dāng)所述網(wǎng)絡(luò)設(shè)備僅接入一個VPN網(wǎng)絡(luò)時,標(biāo)識所述VPN網(wǎng)絡(luò);根據(jù)所述第一 KEY信息查找預(yù)存的快速轉(zhuǎn)發(fā)表,所述快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息;所述報文轉(zhuǎn)發(fā)處理信息包括正常轉(zhuǎn)發(fā)流程中記錄的上行接口的索引號、下行接口的索引號以及鏈路層封裝信息;當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,按照所述已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文,并發(fā)送處理后的待轉(zhuǎn)發(fā)報文。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY信息均不相同時, 則將所述待轉(zhuǎn)發(fā)報文發(fā)送至所述入接口,并進(jìn)行正常轉(zhuǎn)發(fā)流程,且將所述第一 KEY信息和在正常轉(zhuǎn)發(fā)流程中記錄的第一報文轉(zhuǎn)發(fā)處理信息寫入到快速轉(zhuǎn)發(fā)表中,以更新所述快速轉(zhuǎn)發(fā)表;所述第一報文轉(zhuǎn)發(fā)處理信息包括所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中經(jīng)過的上行接口的索引號,下行接口的索引號和鏈路層封裝信息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述第一報文轉(zhuǎn)發(fā)處理信息寫入到所述快速轉(zhuǎn)發(fā)表中,具體包括將所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的上行接口的索引號依次寫入所述快速轉(zhuǎn)發(fā)表的上行接口隊列中;將所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的下行接口的索引號依次寫入所述快速轉(zhuǎn)發(fā)表的下行接口隊列中;將鏈路層封裝信息寫入所述快速轉(zhuǎn)發(fā)表的鏈路層封裝信息中。
4.一種轉(zhuǎn)發(fā)報文的方法,其特征在于,包括 網(wǎng)絡(luò)設(shè)備獲取待轉(zhuǎn)發(fā)報文;獲取第一關(guān)鍵字KEY信息,所述第一 KEY信息包括從所述待轉(zhuǎn)發(fā)報文中獲取的目的互聯(lián)網(wǎng)協(xié)議IP地址、源IP地址、目的端口、源端口、傳輸層協(xié)議、差分服務(wù)代碼點DSCP,以及從網(wǎng)絡(luò)設(shè)備的入接口獲取的第二虛擬專用網(wǎng)標(biāo)識VPN ID,所述第二VPN ID為預(yù)先設(shè)定的無效 VPN ID ;根據(jù)所述第一 KEY信息查找預(yù)存的快速轉(zhuǎn)發(fā)表,所述快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息;所述報文轉(zhuǎn)發(fā)處理信息包括在正常轉(zhuǎn)發(fā)流程中記錄的上行接口的索引號、下行接口的索引號和鏈路層封裝信息;當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文,并發(fā)送處理后的待轉(zhuǎn)發(fā)報文。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY信息均不相同時, 則將所述待轉(zhuǎn)發(fā)報文發(fā)送至所述入接口,進(jìn)行正常轉(zhuǎn)發(fā)流程;當(dāng)所述待轉(zhuǎn)發(fā)報文到第一解析中間接口時,在所述第一解析中間接口獲取第三VPNID,并用所述第三VPN ID更新所述第一 KEY信息中的第二 VPN ID,得到更新后的第一 KEY 信息;所述第三VPN ID用于標(biāo)識所述網(wǎng)絡(luò)設(shè)備同時接入多個VPN網(wǎng)絡(luò)時,所述第一解析中間接口所接入的VPN網(wǎng)絡(luò);根據(jù)所述更新后的第一 KEY信息,重新查找所述快速轉(zhuǎn)發(fā)表; 當(dāng)所述更新后的第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時, 結(jié)束正常轉(zhuǎn)發(fā)流程,并按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文,并發(fā)送處理后的待轉(zhuǎn)發(fā)報文。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括當(dāng)所述更新后的第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY信息均不相同時,則將所述待轉(zhuǎn)發(fā)報文發(fā)送至所述第一解析中間接口,繼續(xù)進(jìn)行正常轉(zhuǎn)發(fā)流程,并將更新后的第一 KEY信息和在正常轉(zhuǎn)發(fā)流程中記錄的第一報文轉(zhuǎn)發(fā)處理信息寫入到所述快速轉(zhuǎn)發(fā)表中,以更新所述快速轉(zhuǎn)發(fā)表,所述第一報文轉(zhuǎn)發(fā)處理信息包括待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中經(jīng)過的上行接口的索引號、下行接口的索引號和鏈路層封裝信息。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述將所述第一報文轉(zhuǎn)發(fā)處理信息寫入到所述快速轉(zhuǎn)發(fā)表中,具體包括將所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的上行接口的索引號依次寫入所述快速轉(zhuǎn)發(fā)表的上行接口隊列中;將所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中所經(jīng)過的下行接口的索引號依次寫入所述快速轉(zhuǎn)發(fā)表的下行接口隊列中;將鏈路層封裝信息寫入所述快速轉(zhuǎn)發(fā)表的鏈路層封裝信息中。
8.—種網(wǎng)絡(luò)設(shè)備,其特征在于,包括 入接口,用于接收待轉(zhuǎn)發(fā)報文;第一獲取單元,用于獲取第一 KEY信息,所述第一 KEY信息包括從所述待轉(zhuǎn)發(fā)報文中獲取的目的互聯(lián)網(wǎng)協(xié)議IP地址、源IP地址、目的端口、源端口、傳輸層協(xié)議、差分服務(wù)代碼點 DSCP,以及從所述網(wǎng)絡(luò)設(shè)備的入接口獲取第一虛擬專用網(wǎng)標(biāo)識VPN ID,或第二VPN ID ;所述第一 VPN ID用于當(dāng)所述網(wǎng)絡(luò)設(shè)備僅接入一個VPN網(wǎng)絡(luò)時,標(biāo)識所述VPN網(wǎng)絡(luò);所述第二 VPN ID為預(yù)先設(shè)定的無效VPN ID ;查找單元,用于根據(jù)所述第一 KEY信息查找預(yù)存的快速轉(zhuǎn)發(fā)表,所述快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息;所述報文轉(zhuǎn)發(fā)處理信息包括在正常轉(zhuǎn)發(fā)流程中記錄的上行接口的索引號、下行接口的索引號和鏈路層封裝信息;處理單元,用于當(dāng)所述第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文; 出接口,用于發(fā)送所述處理單元處理后的待轉(zhuǎn)發(fā)報文。
9.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其特征在于,還包括記錄單元和第一更新單元; 所述記錄單元,用于在正常轉(zhuǎn)發(fā)流程中,記錄第一報文轉(zhuǎn)發(fā)處理信息,所述第一報文轉(zhuǎn)發(fā)處理信息包括所述待轉(zhuǎn)發(fā)報文在正常轉(zhuǎn)發(fā)流程中經(jīng)過的上行接口的索引號,下行接口的索引號和鏈路層封裝信息;所述第一更新單元,用于將所述第一 KEY信息和所述第一報文轉(zhuǎn)發(fā)處理信息寫入到所述快速轉(zhuǎn)發(fā)表中,以更新所述快速轉(zhuǎn)發(fā)表。
10.根據(jù)權(quán)利要求8或9所述的網(wǎng)絡(luò)設(shè)備,其特征在于,還包括第二獲取單元和第二更新單元;所述第二獲取單元,用于在第一解析中間接口中獲取第三VPN ID,并用所述第三VPN ID更新所述第一 KEY信息中的第二 VPN ID,得到更新后的第一 KEY信息;所述第三VPN ID 用于標(biāo)識所述網(wǎng)絡(luò)設(shè)備同時接入多個VPN網(wǎng)絡(luò)時,所述第一解析中間接口所接入的VPN網(wǎng)所述查找單元,還用于根據(jù)所述更新后的第一 KEY信息查找所述快速轉(zhuǎn)發(fā)表; 所述處理單元,還用于若所述更新后的第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,結(jié)束正常轉(zhuǎn)發(fā)流程,并按照已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文;若所述更新后的第一 KEY信息與所述快速轉(zhuǎn)發(fā)表中任意一條已有記錄的KEY 信息均不相同時,則將所述待轉(zhuǎn)發(fā)報文發(fā)送至所述第一解析中間接口,繼續(xù)進(jìn)行正常轉(zhuǎn)發(fā)流程;所述第二更新單元,用于將所述更新后的第一 KEY信息和所述第一報文轉(zhuǎn)發(fā)處理信息寫入到所述快速轉(zhuǎn)發(fā)表中,以更新所述快速轉(zhuǎn)發(fā)表。
全文摘要
本發(fā)明公開了一種轉(zhuǎn)發(fā)報文的方法及網(wǎng)絡(luò)設(shè)備,涉及路由轉(zhuǎn)發(fā)領(lǐng)域,用于解決報文轉(zhuǎn)發(fā)過程中多次查表,導(dǎo)致的轉(zhuǎn)發(fā)效率低的問題。所述方法包括網(wǎng)絡(luò)設(shè)備接收待轉(zhuǎn)發(fā)報文;獲取第一關(guān)鍵字KEY信息;根據(jù)所述第一KEY信息查找預(yù)存的快速轉(zhuǎn)發(fā)表,所述快速轉(zhuǎn)發(fā)表中記錄KEY信息和對應(yīng)的報文轉(zhuǎn)發(fā)處理信息;當(dāng)所述第一KEY信息與所述快速轉(zhuǎn)發(fā)表中一條已有記錄的KEY信息相同時,按照所述已有記錄的報文轉(zhuǎn)發(fā)處理信息處理所述待轉(zhuǎn)發(fā)報文,并發(fā)送處理后的待轉(zhuǎn)發(fā)報文。本發(fā)明適用于網(wǎng)絡(luò)設(shè)備的報文轉(zhuǎn)發(fā)的場景。
文檔編號H04L12/56GK102571613SQ201210061888
公開日2012年7月11日 申請日期2012年3月9日 優(yōu)先權(quán)日2012年3月9日
發(fā)明者田旭 申請人:華為技術(shù)有限公司