專利名稱:一種數(shù)據(jù)流傳輸路徑的控制方法、裝置和路由設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)流傳輸路徑的控制方法、裝置 和路由設(shè)備。
背景技術(shù):
作為一個網(wǎng)絡(luò)的多出口路由器設(shè)備,往往會與不同的互聯(lián)網(wǎng)服務提供商 (Internet Service Provider, ISP)連接。各個ISP的接入限制不同,有些ISP會在上聯(lián) 口做限制,限制一些非法地址接入,并在該多出口路由設(shè)備種通過該ISP提供的路由列表, 將報文的數(shù)據(jù)流送往對應的出口。當路由列表不全,或者其他原因造成來回路徑不對稱時, 會出現(xiàn)正常的業(yè)務報文的數(shù)據(jù)流不能在各ISP之間互通的現(xiàn)象。如圖1所示的一個具體例子,校園內(nèi)網(wǎng)的多出口路由器與兩個ISP相連,一個是教 育網(wǎng),另一個是電信網(wǎng),電信網(wǎng)中的電信用戶使用教育網(wǎng)地址訪問校園內(nèi)網(wǎng),訪問報文的數(shù) 據(jù)流(以下稱為正向數(shù)據(jù)流)從電信網(wǎng)絡(luò)繞到教育網(wǎng)然后進入校園內(nèi)網(wǎng)訪問(如圖1所示 的實線鏈路),返回的響應報文的數(shù)據(jù)流(與正向數(shù)據(jù)流的源地址和目的地址正好相反,以 下稱為反向數(shù)據(jù)流)因為用戶源地址是電信地址,通過基于目的地址的策略路由,一般將 反向數(shù)據(jù)流直接通過電信地址返回(如圖1所示的虛線鏈路)。在某些情況下,例如多出 口路由器與教育網(wǎng)連接的接口開啟網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT)功 能,與電信網(wǎng)連接的接口沒有開啟NAT功能,或者說電信接入服務器開啟了防火墻不允許 半連接的報文通過,那么由于正向數(shù)據(jù)流和反向數(shù)據(jù)流的傳輸路徑不對稱,從校園內(nèi)網(wǎng)返 回的反向數(shù)據(jù)流形成了半連接,將被電信網(wǎng)的電信接入服務器丟棄,導致教育網(wǎng)與電信網(wǎng) 這兩個不同ISP之間無法實現(xiàn)互通。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種數(shù)據(jù)流傳輸路徑的控制方法、裝置和路由設(shè)備,用以解 決在路由設(shè)備連接不同的ISP的情況下由于正向數(shù)據(jù)流和反向數(shù)據(jù)流的傳輸路徑不對稱 產(chǎn)生的半連接導致報文被丟棄的問題。本發(fā)明實施例提供的數(shù)據(jù)流傳輸路徑的控制方法,包括對接收的第一報文,查詢本地是否存在與所述第一報文源地址和目的地址一致的 反向數(shù)據(jù)流的連接跟蹤表;若存在,判斷轉(zhuǎn)發(fā)所述第一報文的接口是否設(shè)置為需要進行反向數(shù)據(jù)流傳輸路徑 的控制以及避免通過路由轉(zhuǎn)發(fā),若需要,根據(jù)所述反向數(shù)據(jù)流的連接跟蹤表中記錄的出接 口下一跳的IP地址,將所述第一報文發(fā)送至所述出接口下一跳IP地址對應的路由設(shè)備;所 述出接口下一跳的IP地址為與所述第一報文源地址和目的地址相反的正向數(shù)據(jù)流傳輸路 徑中在到達所述接口之前經(jīng)歷的上一跳路由設(shè)備的IP地址。本發(fā)明實施例提供的數(shù)據(jù)流傳輸路徑的控制裝置,包括查詢單元,用于對接收的第一報文,查詢本地是否存在與所述第一報文源地址和目的地址一致的反向數(shù)據(jù)流的連接跟蹤表;判斷單元,用于在所述查詢單元的查詢結(jié)果為存在時,判斷轉(zhuǎn)發(fā)第一報文的接口 是否設(shè)置為需要進行反向數(shù)據(jù)流傳輸路徑的控制以及避免通過路由轉(zhuǎn)發(fā);報文轉(zhuǎn)發(fā)單元,用于在判斷單元判斷結(jié)果為是時,根據(jù)所述反向數(shù)據(jù)流的連接跟 蹤表中記錄的出接口下一跳的IP地址,將所述第一報文發(fā)送至所述出接口下一跳IP地址 對應的路由設(shè)備;所述出接口下一跳的IP地址為與所述第一報文源地址和目的地址相反 的正向數(shù)據(jù)流傳輸路徑中在到達所述接口之前經(jīng)歷的上一跳路由設(shè)備的IP地址。本發(fā)明實施例提供一種路由設(shè)備,該設(shè)備包括本發(fā)明實施例提供的數(shù)據(jù)流傳輸路 徑的控制裝置。本發(fā)明實施例的有益效果包括本發(fā)明實施例提供的上述數(shù)據(jù)流傳輸路徑的控制方法、裝置和路由設(shè)備,對接收 的第一報文,查詢本地是否存在與該第一報文源地址和目的地址一致的反向數(shù)據(jù)流的連接 跟蹤表;若存在,并且判斷轉(zhuǎn)發(fā)該第一報文的接口已設(shè)置為需要進行反向數(shù)據(jù)流傳輸路徑 的控制以及避免通過路由轉(zhuǎn)發(fā)時,不通過查找路由轉(zhuǎn)發(fā)該第一報文,而是根據(jù)反向數(shù)據(jù)流 連接跟蹤表中記錄的出接口下一跳的IP地址將報文轉(zhuǎn)發(fā)給對應的下一跳路由設(shè)備,由于 該反向數(shù)據(jù)流連接跟蹤表中記錄的出接口下一跳的IP地址即與第一報文源地址和目的地 址相反的正向數(shù)據(jù)流傳輸路徑中在到達該接口之前經(jīng)歷的上一跳路由設(shè)備的IP地址,因 此,第一報文能夠按照正向數(shù)據(jù)流傳輸路徑返回,而不會按照路由表中的策略,通過其他傳 輸路徑轉(zhuǎn)發(fā),避免了現(xiàn)有技術(shù)中在路由設(shè)備連接不同的ISP的情況下,由于正向數(shù)據(jù)流和 反向數(shù)據(jù)流傳輸路徑不對稱產(chǎn)生的半連接導致報文被丟棄的問題。
圖1為現(xiàn)有技術(shù)中具體實例的網(wǎng)絡(luò)連接示意圖;圖2為本發(fā)明實施例提供的數(shù)據(jù)流傳輸路徑的控制方法的流程圖;圖3為本發(fā)明實施例提供的生成反向數(shù)據(jù)流的連接跟蹤表的流程圖;圖4為本發(fā)明實施例提供的數(shù)據(jù)流傳輸路徑的控制裝置的結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例提供的報文轉(zhuǎn)發(fā)單元的結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合附圖,對本發(fā)明實施例提供的一種數(shù)據(jù)流傳輸路徑的控制方法、裝置和 路由設(shè)備的具體實施方式
進行詳細地說明。本發(fā)明實施例提供的數(shù)據(jù)流傳輸路徑的控制方法,如圖2所示,包括下述步驟S201、接收第一報文;S202、查詢本地是否存在與該第一報文源地址和目的地址一致的反向數(shù)據(jù)流的連 接跟蹤表;若存在,執(zhí)行下述步驟S203,若不存在,轉(zhuǎn)向執(zhí)行下述步驟S205 ;S203、判斷接收第一報文的接口是否需要進行反向數(shù)據(jù)流傳輸路徑的控制以及避 免路由轉(zhuǎn)發(fā);若需要,執(zhí)行步驟S204 ;若不需要,執(zhí)行下述步驟S205 ;S204、根據(jù)反向數(shù)據(jù)流的連接跟蹤表中記錄的出接口下一跳的IP地址,將所述第 一報文發(fā)送至出接口下一跳對應的路由設(shè)備;然后轉(zhuǎn)向下述步驟S205 ;
S205、結(jié)束當前流程。在本發(fā)明實施例提供的數(shù)據(jù)流傳輸路徑的控制方法中,針對例如圖1所示的校園 內(nèi)網(wǎng)的多出口路由器上點到多點的以太接口(在該接口上反向數(shù)據(jù)流的報文如果按照策 略路由轉(zhuǎn)發(fā)可能產(chǎn)生與正向數(shù)據(jù)流不對稱的傳輸路徑),將該接口預先設(shè)置為需要反向數(shù) 據(jù)流傳輸路徑的控制以及避免路由轉(zhuǎn)發(fā),這樣,在反向報文到達該接口時,才能夠按照本發(fā) 明實施例提供的數(shù)據(jù)流傳輸路徑的控制方法控制反向數(shù)據(jù)流按照正向數(shù)據(jù)流傳輸?shù)穆窂?返回,從而避免從其他傳輸路徑轉(zhuǎn)發(fā)導致報文被丟棄的問題。在上述步驟S204中,反向數(shù)據(jù)流的連接跟蹤表中記錄的出接口下一跳的IP地址, 即與該第一報文源地址和目的地址相反的正向數(shù)據(jù)流的傳輸路徑中在到達所述接口之前 經(jīng)歷的上一跳路由設(shè)備的IP地址。上述步驟S204中,根據(jù)所述反向數(shù)據(jù)流的連接跟蹤表中記錄的出接口下一跳的 IP地址,將第一報文發(fā)送至出接口下一跳對應的路由設(shè)備,具體通過下述方式實現(xiàn)將第一報文中預設(shè)的是否避免路由轉(zhuǎn)發(fā)字段填寫為有效標識;將第一報文中的下一跳字段填寫為出接口下一跳的IP地址;根據(jù)第一報文中的是否避免路由轉(zhuǎn)發(fā)字段,避免通過查找路由表轉(zhuǎn)發(fā)第一報文, 并根據(jù)填寫的出接口下一跳的IP地址,將報文轉(zhuǎn)發(fā)至出接口下一跳的IP地址對應的路由 設(shè)備。為了實現(xiàn)在收到反向數(shù)據(jù)流的第一報文時,按照反向數(shù)據(jù)流的連接跟蹤表中記錄 的出接口下一跳IP地址轉(zhuǎn)發(fā)第一報文,在上述步驟S201 S205的步驟之前,還包括生成 反向數(shù)據(jù)流的連接跟蹤表的相關(guān)流程。生成反向數(shù)據(jù)流的連接跟蹤表的過程如圖3所示,包括S301、收到正向數(shù)據(jù)流的首個第二報文(為了與反向數(shù)據(jù)流的第一報文區(qū)分,稱 正向數(shù)據(jù)流的報文為第二報文);正向數(shù)據(jù)流為源地址和目的地址與第一報文相反的數(shù)據(jù) 流;S302、根據(jù)首個第二報文的報文內(nèi)容,創(chuàng)建該正向數(shù)據(jù)流的連接跟蹤表;S303、根據(jù)創(chuàng)建的正向數(shù)據(jù)流的連接跟蹤表中記錄的源接口索引值和源MAC地 址,在路由表的鄰接表中查詢與反向數(shù)據(jù)流對應的出接口下一跳的IP地址;S304、將正向數(shù)據(jù)流的源地址確定為反向數(shù)據(jù)流的連接跟蹤表中的目的地址,將 正向數(shù)據(jù)流的目的地址確定為反向數(shù)據(jù)流的連接跟蹤表中的源地址,將正向數(shù)據(jù)流的源接 口索引值確定為反向數(shù)據(jù)流的連接跟蹤表中的目的接口的索引值,根據(jù)確定的源地址、目 的地址、目的接口的索引值以及查詢到的出接口下一跳的IP地址生成反向數(shù)據(jù)流的連接 足艮足宗^:。在上述步驟S302中,按照現(xiàn)有技術(shù)中創(chuàng)建正向數(shù)據(jù)流的連接跟蹤表的方法,提取 出該首個報文的源IP地址、目的IP地址、源MAC地址(也就是正向數(shù)據(jù)流的傳輸路徑中在 到達該接口之前經(jīng)歷的上一跳路由設(shè)備的MAC地址)、目的MAC地址和源接口索引值,根據(jù) 這些參數(shù)生成正向數(shù)據(jù)流的連接跟蹤表。進一步地,在上述步驟S303中,具體通過下述方法查詢與反向數(shù)據(jù)流對應的出接 口下一跳的IP地址1、將源接口索引值作為鄰接表中的出接口的索引值;
2、在鄰接表中,查詢出接口的索引值對應的至少一個下一跳MAC地址;由于該出接口為點到多點的接口,在該鄰接表中,該出接口可能同時對應有多個 下一跳MAC地址;3、判斷查詢到的至少一個下一跳MAC地址中是否存在有與該源MAC地址一致的下 一跳MAC地址;4、如果有,從該鄰接表中獲取與源MAC地址一致的下一跳MAC地址對應的IP地址 作為反向數(shù)據(jù)流對應的出接口下一跳的IP地址。上述在鄰接表中查詢出接口下一跳的IP地址的步驟,之所以需要使用出接口的 索引以及下一跳MAC地址兩個參數(shù)來查詢,主要是因為如果使用正向數(shù)據(jù)流的連接跟蹤表 中的源IP地址查詢鄰接表,則會得到按照路由規(guī)則匹配得出的傳輸路徑,達不到跳過路由 查找來確定傳輸路徑的目的,違背了反向數(shù)據(jù)流的傳輸路徑的控制的初衷,同時,由于對于 反向數(shù)據(jù)流來說,出接口是點對多點的接口,因此,需要使用出接口的索引以及下一跳MAC 地址結(jié)合來查找出接口下一跳的IP地址,確保反向數(shù)據(jù)流的報文能夠通過該出接口到達 查詢到的出接口的下一跳IP地址對應的路由設(shè)備。下面以圖1的網(wǎng)絡(luò)連接示意圖為例,說明本發(fā)明實施例提供的數(shù)據(jù)流傳輸路徑的 控制方法。首先需要在校園內(nèi)網(wǎng)的出接口路由器的FastEthernetO/O接口上,配置開啟反向 流控制功能以及避免路由轉(zhuǎn)發(fā)功能,也就是要求所有經(jīng)過該接口發(fā)送的正向數(shù)據(jù)流的報文 的響應報文都必須經(jīng)過該接口按照原來的路徑返回。當正向數(shù)據(jù)流的首個報文即從電信網(wǎng)11. 1. 1. 1發(fā)出的到達校園內(nèi)網(wǎng)22. 1. 1. 1的 首個報文,經(jīng)過i^as讓thernetO/O接口進入了校園內(nèi)網(wǎng),為此該首個報文創(chuàng)建正向數(shù)據(jù)流 的連接跟蹤表。如下表1所示表 權(quán)利要求
1.一種數(shù)據(jù)流傳輸路徑的控制方法,其特征在于,包括對接收的第一報文,查詢本地是否存在與所述第一報文源地址和目的地址一致的反向 數(shù)據(jù)流的連接跟蹤表;若存在,判斷轉(zhuǎn)發(fā)所述第一報文的接口是否設(shè)置為需要進行反向數(shù)據(jù)流傳輸路徑的控 制以及避免通過路由轉(zhuǎn)發(fā),若需要,根據(jù)所述反向數(shù)據(jù)流的連接跟蹤表中記錄的出接口下 一跳的IP地址,將所述第一報文發(fā)送至所述出接口下一跳IP地址對應的路由設(shè)備;所述出 接口下一跳的IP地址為與所述第一報文源地址和目的地址相反的正向數(shù)據(jù)流傳輸路徑中 在到達所述接口之前經(jīng)歷的上一跳路由設(shè)備的IP地址。
2.如權(quán)利要求1所述的方法,其特征在于,所述反向數(shù)據(jù)流的連接跟蹤表,通過下述方 式生成當接收到所述正向數(shù)據(jù)流的首個第二報文時,根據(jù)所述首個第二報文創(chuàng)建正向數(shù)據(jù)流 的連接跟蹤表;根據(jù)所述正向數(shù)據(jù)流的連接跟蹤表中記錄的源接口索引值和源MAC地址,在路由表的 鄰接表中查詢與所述反向數(shù)據(jù)流對應的出接口下一跳的IP地址;將所述正向數(shù)據(jù)流的源地址作為所述反向數(shù)據(jù)流的連接跟蹤表中的目的地址,將所述 正向數(shù)據(jù)流的目的地址確定為所述反向數(shù)據(jù)流的連接跟蹤表中的源地址,將所述正向數(shù)據(jù) 流的源接口索引值確定為所述反向數(shù)據(jù)流的連接跟蹤表中的目的接口的索引值,根據(jù)確定 的源地址、目的地址、目的接口的索引值以及查詢到的出接口下一跳的IP地址生成反向數(shù) 據(jù)流的連接跟蹤表。
3.如權(quán)利要求2所述的方法,其特征在于,根據(jù)所述正向數(shù)據(jù)流的連接跟蹤表中記錄 的源接口索引值和源MAC地址,在路由表的鄰接表中查詢與所述反向數(shù)據(jù)流對應的出接口 下一跳的IP地址,包括將所述源接口索引值作為所述鄰接表中的出接口的索引值;在所述鄰接表中,查詢所述出接口的索引值對應的至少一個下一跳MAC地址;判斷所述至少一個下一跳MAC地址中是否存在與所述源MAC地址一致的下一跳MAC地址;若有,從所述鄰接表中獲取與所述源MAC地址一致的下一跳MAC地址對應的IP地址作 為所述反向數(shù)據(jù)流對應的出接口下一跳的IP地址。
4.如權(quán)利要求1-3任一項所述的方法,其特征在于,根據(jù)所述反向數(shù)據(jù)流的連接跟蹤 表中記錄的出接口下一跳的IP地址,將所述第一報文發(fā)送至所述出接口下一跳對應的路 由設(shè)備,具體包括將所述第一報文中預設(shè)的是否避免通過路由轉(zhuǎn)發(fā)字段填寫為有效標識;將所述第一報文中的下一跳字段填寫為所述出接口下一跳的IP地址;根據(jù)第一報文中的所述是否避免通過路由轉(zhuǎn)發(fā)字段,避免通過查找路由表轉(zhuǎn)發(fā)所述第 一報文,并根據(jù)填寫的出接口下一跳的IP地址,將報文轉(zhuǎn)發(fā)至出接口下一跳的IP地址對應 的路由設(shè)備。
5.一種數(shù)據(jù)流傳輸路徑的控制裝置,其特征在于,包括查詢單元,用于對接收的第一報文,查詢本地是否存在與所述第一報文源地址和目的 地址一致的反向數(shù)據(jù)流的連接跟蹤表;判斷單元,用于在所述查詢單元的查詢結(jié)果為存在時,判斷轉(zhuǎn)發(fā)第一報文的接口是否 設(shè)置為需要進行反向數(shù)據(jù)流傳輸路徑的控制以及避免通過路由轉(zhuǎn)發(fā);報文轉(zhuǎn)發(fā)單元,用于在判斷單元判斷結(jié)果為是時,根據(jù)所述反向數(shù)據(jù)流的連接跟蹤表 中記錄的出接口下一跳的IP地址,將所述第一報文發(fā)送至所述出接口下一跳IP地址對應 的路由設(shè)備;所述出接口下一跳的IP地址為與所述第一報文源地址和目的地址相反的正 向數(shù)據(jù)流傳輸路徑中在到達所述接口之前經(jīng)歷的上一跳路由設(shè)備的IP地址。
6.如權(quán)利要求5所述的裝置,其特征在于,還包括正向數(shù)據(jù)流連接跟蹤表生成單元和 反向數(shù)據(jù)流連接跟蹤表生成單元;正向數(shù)據(jù)連接跟蹤表生成單元,用于當接收到所述正向數(shù)據(jù)流的首個第二報文時,根 據(jù)所述首個第二報文創(chuàng)建該正向數(shù)據(jù)流的連接跟蹤表;所述反向數(shù)據(jù)流連接跟蹤表生成單元,用于根據(jù)所述正向數(shù)據(jù)流的連接跟蹤表中記錄 的源接口索引值和源MAC地址,在路由表的鄰接表中查詢與所述反向數(shù)據(jù)流對應的出接口 下一跳的IP地址;將所述正向數(shù)據(jù)流的源地址作為所述反向數(shù)據(jù)流的連接跟蹤表中的目 的地址,將所述正向數(shù)據(jù)流的目的地址確定為所述反向數(shù)據(jù)流的連接跟蹤表中的源地址, 將所述正向數(shù)據(jù)流的源接口索引值確定為所述反向數(shù)據(jù)流的連接跟蹤表中的目的接口的 索引值,根據(jù)確定的源地址、目的地址、目的接口的索引值以及查詢到的出接口下一跳的IP 地址生成反向數(shù)據(jù)流的連接跟蹤表。
7.如權(quán)利要求5所述的裝置,其特征在于,所述反向數(shù)據(jù)流連接跟蹤表生成單元,進一 步用于將所述源接口索引值作為所述鄰接表中的出接口的索引值;在所述鄰接表中,查詢 所述出接口的索引值對應的至少一個下一跳MAC地址;判斷所述至少一個下一跳MAC地址 中是否存在與所述源MAC地址一致的下一跳MAC地址;若有,從所述鄰接表中獲取與所述源 MAC地址一致的下一跳MAC地址對應的IP地址作為所述反向數(shù)據(jù)流對應的出接口下一跳的 IP地址。
8.如權(quán)利要求5-7任一項所述的裝置,其特征在于,報文轉(zhuǎn)發(fā)單元,進一步包括填寫子單元,還用于在所述判斷單元判斷結(jié)果為是時,將所述第一報文中預設(shè)的是否 避免通過路由轉(zhuǎn)發(fā)字段填寫為有效標識;將所述第一報文中的下一跳字段填寫為所述出接 口下一跳的IP地址;轉(zhuǎn)發(fā)子單元,用于根據(jù)第一報文中的所述是否避免通過路由轉(zhuǎn)發(fā)字段,避免通過查找 路由表轉(zhuǎn)發(fā)所述第一報文,并根據(jù)填寫的出接口下一跳的IP地址,將報文轉(zhuǎn)發(fā)至出接口下 一跳的IP地址對應的路由設(shè)備。
9.一種路由設(shè)備,其特征在于,該路由設(shè)備包括如權(quán)利要求5-8任一項所述的數(shù)據(jù)流 傳輸路徑的控制裝置。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)流傳輸路徑的控制方法、裝置和路由設(shè)備,其中方法包括對接收的第一報文,查詢本地是否存在與第一報文源地址和目的地址一致的反向數(shù)據(jù)流的連接跟蹤表;若存在,判斷轉(zhuǎn)發(fā)第一報文的接口是否設(shè)置為需要進行反向數(shù)據(jù)流傳輸路徑的控制以及避免通過路由轉(zhuǎn)發(fā),若需要,根據(jù)反向數(shù)據(jù)流的連接跟蹤表中記錄的出接口下一跳的IP地址,將第一報文發(fā)送至出接口下一跳IP地址對應的路由設(shè)備,本發(fā)明解決了在路由設(shè)備連接不同的ISP的情況下由于正向數(shù)據(jù)流和反向數(shù)據(jù)流的傳輸路徑不對稱產(chǎn)生的半連接導致報文被丟棄的問題。
文檔編號H04L12/56GK102055672SQ20101060927
公開日2011年5月11日 申請日期2010年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者黃小珊 申請人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司