專利名稱:一種動(dòng)態(tài)建立隧道的方法、隧道服務(wù)器和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),尤其涉及一種動(dòng)態(tài)建立隧道的方法、隧道 服務(wù)器和系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的迅速發(fā)展,傳統(tǒng)的互聯(lián)網(wǎng)協(xié)議版本,即IPv4已經(jīng)難以支 持互聯(lián)網(wǎng)的進(jìn)一步發(fā)展和實(shí)時(shí)應(yīng)用及服務(wù)質(zhì)量保證等新業(yè)務(wù)的特性,IPv6 應(yīng)運(yùn)而生。但是,IPv6的意圖并不是排斥和避免已有的標(biāo)準(zhǔn),而是對現(xiàn)有 標(biāo)準(zhǔn)的改進(jìn)。在IPv6完全取代IPv4之前,IPv6需要在研究所和學(xué)術(shù)機(jī)構(gòu) 中進(jìn)行足夠的試驗(yàn),才能像IPv4—樣成功的投入商業(yè)運(yùn)營。從IPv4過渡到 IPv6大概將經(jīng)歷以下幾個(gè)階段IPv4網(wǎng)絡(luò)占主要地位,IPv6的孤島存在IPv4 網(wǎng)絡(luò)中;IPv6的網(wǎng)絡(luò)逐漸發(fā)展,孤島越來越多,與IPv4網(wǎng)絡(luò)并駕齊驅(qū);IPv4 網(wǎng)絡(luò)逐漸被IPv6的網(wǎng)絡(luò)取代,IPv6網(wǎng)絡(luò)成為主體,IPv4孤島存在于IPv6 網(wǎng)絡(luò)中;全部過渡到IPv6網(wǎng)絡(luò)。
在上述網(wǎng)絡(luò)過渡的過程中,不可避免地將遇到跨越異種網(wǎng)絡(luò)互通的問題,目前,業(yè)界提供了多種過渡時(shí)期的解決方案
配置隧道的6in4方法,指通過手工在隧道兩端配置指定隧道接口的IPV4 源地址和IPV4目的地址,IPV6數(shù)據(jù)報(bào)文在隧道的入口進(jìn)行IPV6-IN-IPV4的 封裝,經(jīng)過IPV4網(wǎng)絡(luò)路由到隧道的出口 ,在出口解除IPV4的封裝,進(jìn)行IPV6 的路由。
GRE (generic routing encapsulation,通用路由去于裝)隧道配置方法,GRE 隧道通過將原始報(bào)文封裝在GRE頭后的載荷部分,然后在封裝報(bào)文中封裝GRE頭的方式來進(jìn)行。可以靈活地實(shí)現(xiàn)IPV4-GRE-IPV4, IPV4-GRE-IPV6, IPV6-GRE-IPV4, IPV6-GRE-IPV6的封裝。
6to4隧道封裝方法,6to4隧道是一種自動(dòng)配置隧道的方法,它采用特殊的 2002: IPV4::/48地址的格式,配置時(shí)僅指定隧道的源地址,報(bào)文到達(dá)IPv6網(wǎng) 絡(luò)時(shí)根據(jù)IPV6地址中隱含的IPV4地址,自動(dòng)尋址6to4隧道的終點(diǎn)。
隧道代理(tunnel broker)機(jī)制提供了一種簡化配置隧道的方法,它的原理就是通過提供專用的服務(wù)器作為隧道代理,自動(dòng)管理用戶發(fā)出的隧道請求。 用戶通過隧道代理能方便地和IPv6 ISP (互聯(lián)網(wǎng)服務(wù)供應(yīng)商)建立隧道連接, 從而訪問外部可用的IPv6資源。隧道代理的機(jī)制對于在IPv6的早期吸引更多 的IPV6使用者方便快捷地實(shí)現(xiàn)IPv6連接有很大的益處。
發(fā)明人在對以上過渡方式研究后發(fā)現(xiàn)
手工配置隧道的方式雖然實(shí)現(xiàn)簡單,但是需要網(wǎng)絡(luò)管理員來維護(hù)隧道配置,在部署IPV6的初期,可以采用手工配置隧道的方式(6in4、 GRE)來實(shí) 現(xiàn)IPV6孤島之間跨越IPV4網(wǎng)絡(luò)的互聯(lián),但是隨著IPV6部署的增加,IPV6 島嶼越來越多,且每增加一個(gè)新的IPV6島碼,需要配置和現(xiàn)存的N個(gè)區(qū)域連接的N個(gè)隧道,且需要其他N個(gè)隧道對端也進(jìn)行相應(yīng)的配置,整個(gè)網(wǎng)絡(luò)的配置量將達(dá)到N*N,當(dāng)N很大的時(shí)候,配置工作量是手工難以勝任的。因此必 然要求采用一些動(dòng)態(tài)配置的方式,比如自動(dòng)隧道來實(shí)現(xiàn)。
當(dāng)前最成熟的IPV6自動(dòng)隧道就是6to4,但6to4同樣存在一些天生的缺陷, 因?yàn)樗鼘?shí)現(xiàn)自動(dòng)尋址的原理是將IPV4地址嵌入到2002::/16的前綴中去,首先使得在部署上受到特定的2002::/16網(wǎng)絡(luò)前綴的限制,其次使得IPV4的路由泄露到了IPV6網(wǎng)絡(luò)中,最后,如何實(shí)現(xiàn)組播也是一個(gè)問題。
在跨越IPV6網(wǎng)絡(luò)連接IPV4孤島方面,現(xiàn)有的方案比較少,4in6配置隧道和GRE隧道這兩種配置隧道能夠?qū)崿F(xiàn)這一個(gè)目的,但前面提到的問題同樣存 在。
隨著IPV6部署的增加帶來的另外一個(gè)問題就是設(shè)備兼容問題,正因?yàn)樵贗PV4/IPV6過渡隧道上沒有一統(tǒng)天下的標(biāo)準(zhǔn),各個(gè)廠商對封裝協(xié)議的支持程度 是不一樣的,有可能某個(gè)廠商支持某種隧道封裝而不支持另外一種封裝,或者 某種隧道實(shí)現(xiàn)的性能比較好而另一種隧道實(shí)現(xiàn)得不太滿意,因此在采用的優(yōu)先 級上有所區(qū)別,更增加了網(wǎng)絡(luò)互聯(lián)的難度。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中存在的IPv4和IPv6網(wǎng)絡(luò)互聯(lián)問題,本發(fā)明實(shí)施例 公開了一種動(dòng)態(tài)建立隧道的方法、隧道服務(wù)器和系統(tǒng)。應(yīng)當(dāng)說明的是,應(yīng) 用于IPv4和IPv6網(wǎng)絡(luò)互聯(lián)領(lǐng)域只是本發(fā)明的較佳實(shí)施方法,本領(lǐng)域的技術(shù) 人員能夠聯(lián)想到的其他替代或者更改也包括在本發(fā)明中。
本發(fā)明實(shí)施例所述的動(dòng)態(tài)建立隧道的方法包括
隧道客戶源端和隧道客戶目的端向隧道服務(wù)器發(fā)送隧道注冊信息,隧道服 務(wù)器根據(jù)所述隧道注冊信息完成隧道客戶端的注冊并存儲(chǔ)所述隧道注冊信息; 隧道服務(wù)器根據(jù)所述隧道注冊信息為隧道客戶源端和隧道客戶目的端配置隧 道,并分別向隧ilj:戶源端和隧ilj:戶目的端發(fā)送隧道配置信息。
其中,所述隧道服務(wù)器分別向隧道客戶源端和隧道客戶目的端發(fā)送隧道配 置信息后進(jìn)一步包括
所述隧道客戶源端和隧道客戶目的端收到所述隧道配置信息后,通過該配 置的隧道發(fā)送數(shù)據(jù)報(bào)文;或
所述隧道客戶源端和隧道客戶目的端收到所述隧道配置信息后,根據(jù)所述 隧道配置信息協(xié)商建立臨時(shí)隧道,發(fā)送數(shù)據(jù)報(bào)文。
其中,所述的隧道服務(wù)器根據(jù)所述注冊信息為隧道客戶源端和隧道客戶目 的端配置隧道的步驟具體包括
隧道客戶源向隧道服務(wù)器發(fā)送目的的地址為客戶目的端的數(shù)據(jù)報(bào)文;
隧道服務(wù)器解析該數(shù)據(jù)報(bào)文,獲取該數(shù)據(jù)報(bào)文的目的地址后,向隧道客戶 目的端轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文,同時(shí)查詢所述存儲(chǔ)的隧道注冊信息,根據(jù)報(bào)文源地
址、目的地址所屬的子網(wǎng)信息判斷隧道客戶源端和隧道客戶目的端是否能夠直
接建立隧道;如果是,則隧道服務(wù)器分別向隧道客戶源端和隧道客戶目的端發(fā) 送隧道配置消息。
其中,所述的臨時(shí)隧道建立成功后,隧道客戶源端和隧道客戶目的端向隧 道服務(wù)器發(fā)送臨時(shí)隧道建立成功消息,隧道服務(wù)器收到該信息以后,記錄該臨 時(shí)隧道信息并通知隧道客戶端記錄完成,隧道客戶端收到該通知消息后,通過 該臨時(shí)隧道互發(fā)數(shù)據(jù)報(bào)文。
其中,所述隧道月良務(wù)器記錄臨時(shí)隧道信息后,為該臨時(shí)隧道:&立一個(gè)隧道 超時(shí)定時(shí)器;所述隧道客戶端分別為該臨時(shí)隧道設(shè)立一個(gè)隧道定時(shí)器,定期向 隧道服務(wù)器發(fā)送隧道保活消息,通知該臨時(shí)隧道的狀況。
其中,所述隧道服務(wù)器在隧道超時(shí)定時(shí)器設(shè)定的時(shí)間內(nèi)沒有收到隧道客戶 源端或者隧道客戶目的端的隧道?;钕⒌?,隧道服務(wù)器向隧ii^戶源端和隧 道客戶目的端分別發(fā)送撤銷該臨時(shí)隧道的通知消息,并刪除該臨時(shí)隧道的記錄 和隧道超時(shí)定時(shí)器。
其中,所述方法進(jìn)一步包括
隧道客戶源端不需要再向隧道客戶目的端發(fā)送數(shù)據(jù)報(bào)文或者發(fā)送的數(shù)據(jù) 報(bào)文流量不能達(dá)到建立臨時(shí)隧道時(shí)協(xié)商的流量時(shí),隧道客戶源端向隧道服務(wù)器 發(fā)起撤銷臨時(shí)隧道的請求消息,隧道服務(wù)器收到該請求消息后,撤銷臨時(shí)隧道,
并向隧客戶源端和目的端分別發(fā)送隧道撤銷通知;或
隧道客戶目的端經(jīng)過一定時(shí)間間隔后,沒有收到隧道客戶源端的數(shù)據(jù)報(bào)文 或者接收的數(shù)據(jù)報(bào)文流量不能達(dá)到隧道客戶源端和隧道客戶目的端協(xié)商的流 量,隧道客戶目的端同時(shí)向隧道客戶源端和隧道服務(wù)器發(fā)送撤銷臨時(shí)隧道的通 知消息,并撤銷臨時(shí)隧道。
其中,所述的隧道注冊信息包括隧道客戶端地址、隧道客戶端支持的封裝 類型、各種封裝類型的優(yōu)先級、隧道客戶端所屬的子網(wǎng)前綴以及允許的隧道保 活時(shí)間;所述的隧道配置信息包括隧道目的地址、目的地址類型、隧道封裝類
型及隧道保活時(shí)間。
其中,所述的隧道客戶源端和隧*戶目的端所屬的子網(wǎng)類型相同。
本發(fā)明還公開了一種的隧道服務(wù)器,包括接收模塊、發(fā)送模塊、隧道注 冊模塊、隧道配置模塊、存儲(chǔ)模塊、報(bào)文解析模塊、隧道檢測模塊,其中,
隧道注冊模塊,用于根據(jù)接收模塊接收的隧道注冊信息完成隧道客戶端的 隧道注冊,并向隧道客戶端發(fā)送注冊成功消息;
隧道配置模塊,用于根據(jù)隧道注冊信息為隧ii^戶源端和隧道客戶目的端 配置隧道,并分別向隧道客戶源端和隧道客戶目的端發(fā)送隧道配置信息;
存儲(chǔ)模塊,用于存儲(chǔ)所述隧道注冊信息以及臨時(shí)隧道信息;
報(bào)文解析模塊,用于解析隧道客戶源端發(fā)送的數(shù)據(jù)報(bào)文,獲取在隧道客戶 源端所屬子網(wǎng)內(nèi)產(chǎn)生的原始數(shù)據(jù)報(bào)文的源/目的地址,并發(fā)送給所述隧道配置模 塊;
隧道檢測模塊,用于根據(jù)隧道超時(shí)定時(shí)器和隧道客戶端發(fā)送的隧道?;钚?息判斷臨時(shí)隧道的狀態(tài),確定是否需要撤銷臨時(shí)隧道。
本發(fā)明還公開了一種動(dòng)態(tài)建立隧道的系統(tǒng),包括核心網(wǎng)和多個(gè)子網(wǎng),所述 的多個(gè)子網(wǎng)分別包括至少 一個(gè)隧道客戶端,
其中,所述的多個(gè)子網(wǎng)通過各自的隧道客戶端連接到所述核心網(wǎng);所述核 心網(wǎng)包括一個(gè)隧道服務(wù)器,用于通過所述的多個(gè)子網(wǎng)的隧道客戶端動(dòng)態(tài)地為所
述的多個(gè)子網(wǎng)提供隧道服務(wù)。
其中,所述的多個(gè)子網(wǎng)具有相同的網(wǎng)絡(luò)類型,所述的多個(gè)子網(wǎng)與核心網(wǎng)具 有相同或不同的網(wǎng)絡(luò)類型。
其中,所述的隧道客戶端包括網(wǎng)絡(luò)邊界路由器、用戶CPE設(shè)備或用戶 主機(jī)。
本發(fā)明能夠用多種隧道封裝格式在不同運(yùn)營商的網(wǎng)絡(luò)設(shè)備間進(jìn)行隧道 配置協(xié)商,增強(qiáng)了隧道封裝能力,實(shí)現(xiàn)了隧道自動(dòng)配置機(jī)制,簡化了網(wǎng)絡(luò) 設(shè)備,降低了隧道配置的復(fù)雜度,摒棄了對特殊網(wǎng)段地址的依賴,有效解
決了 IPv6的孤島跨越IPv4的核心網(wǎng)絡(luò)及IPv4孤島跨越IPv6核心網(wǎng)絡(luò)的互聯(lián)互通問題。
圖1為本發(fā)明所述建立臨時(shí)隧道的方法的一個(gè)實(shí)施例的流程圖2為本發(fā)明所述隧道服務(wù)器的一個(gè)實(shí)施例的簡化的結(jié)構(gòu)示意圖3為本發(fā)明所述建立臨時(shí)隧道的系統(tǒng)的一個(gè)實(shí)施例的示意圖。
具體實(shí)施例方式
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),尤其涉及一種建立臨時(shí)隧道的方法、隧道服務(wù) 器和系統(tǒng)。以下將結(jié)合附圖中的實(shí)施例對本發(fā)明做進(jìn)一步的描述。應(yīng)當(dāng)說明的 是,以下內(nèi)容僅用來解釋本發(fā)明,而不能視為對本發(fā)明的限制。
參見圖1,為本發(fā)明所述建立臨時(shí)隧道的方法的一個(gè)實(shí)施例的流程圖。本 實(shí)施例應(yīng)用于圖3所示的系統(tǒng)中,下面結(jié)合圖l和圖3對本發(fā)明方法進(jìn)行描述。 本發(fā)明中的孤島具有相同的地址族,例如所有孤島均為IPv4孤島或者IPv6孤 島,但孤島和核心網(wǎng)則可能具有相同或者不同的地址族。當(dāng)一個(gè)IPv6 (AF[j]) 的孤島接入IPv4( AF[i])的核心網(wǎng)或者IPv4的孤島接入IPv6的核心網(wǎng)的時(shí)候, 首先該孤島要通過其客戶端TC同核心網(wǎng)的服務(wù)器TS建立會(huì)話連接。該客戶 端可以是網(wǎng)絡(luò)邊界路由器、用戶CPE設(shè)備或者用戶主機(jī)。本實(shí)施例包括了以 下步驟
(1 ) AF[j]孤島1通過其隧道客戶端TC1首先和AF[i]核心網(wǎng)的隧道服務(wù) 器TS建立了 L2TP隧道,這就使得TC1和TS進(jìn)行通信成為可能。
(2 ) TC1和TS通過步驟(1)中建立的L2TP,進(jìn)行PPP協(xié)商,建立了 PPP連接會(huì)話。
步驟(1)和(2 )的目的是在TC1和TS之間建立會(huì)話。以上建立會(huì)話的 步驟只是一個(gè)實(shí)施例,所有其他可用的方法都可以完成上述步驟。
(3) TC1向TS請求隧道信息注冊。該隧道信息包括隧道的源地址(即 TCI本身的地址),TCI能夠支持的隧道封裝類型和各封裝類型在TCI上的優(yōu) 先級以及TC1所屬孤島的前綴信息。TS收到上述信息后,將該信息記錄到注 冊信息表里。
在IPv4和IPv6網(wǎng)絡(luò)互聯(lián)中,TC和TS支持的地址類型包括IPv4或IPv6, 支持的隧道封裝格式包括GRE/L2TP/6in4/IPsec等。
(4 ) TS記錄該隧道信息后,向TCI發(fā)送注冊成功消息。
以上僅以TCI為例說明,應(yīng)當(dāng)明確的是,為了實(shí)現(xiàn)本發(fā)明,每個(gè)接入AF[i] 的核心網(wǎng)的AF[j]孤島的隧道客戶端TC (如本實(shí)施例中的TC1、 TC2)都必須 完成上述注冊步驟。在完成上述注冊后,TS應(yīng)當(dāng)通過一定的存儲(chǔ)結(jié)構(gòu)存儲(chǔ)隧 道注冊信息,可以用上面提到的注冊信息表、樹型存儲(chǔ)結(jié)構(gòu)或者其他的存儲(chǔ)結(jié) 構(gòu),滿足在需要的時(shí)候能夠查詢到特定的隧道信息就可以。
(5) TCI所在的孤島中有數(shù)據(jù)報(bào)文想到達(dá)TC2所在的孤島中,該數(shù)據(jù)報(bào) 文首先在TCI所在的孤島中經(jīng)過一系列策略路由到達(dá)TCl, TCI經(jīng)過計(jì)算, 發(fā)現(xiàn)沒有直接路徑可以到達(dá)TC2,就在進(jìn)行L2TP封裝后,通過L2TP隧道向 TS發(fā)送上述數(shù)據(jù)報(bào)文,TS收到該數(shù)據(jù)報(bào)文后進(jìn)行解析,發(fā)現(xiàn)該報(bào)文的目的地 址為TC2所在的網(wǎng)絡(luò),則TS又對該報(bào)文進(jìn)行L2TP封裝,通過L2TP隧道將 該數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給TC2 , TC2再將該數(shù)據(jù)報(bào)文解封裝發(fā)往目的地址。
(6) 隧道服務(wù)器TS在轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文的同時(shí),在注冊信息表中查詢TC1 和TC2的隧道信息,主要根據(jù)兩者的地址、支持的封裝類型、各種封裝類型的 優(yōu)先級以及允許的隧道保活時(shí)間來計(jì)算TC1和TC2之間是否能夠建立臨時(shí)隧 道。如果經(jīng)過判斷,發(fā)現(xiàn)TC1和TC2之間能夠建立臨時(shí)隧道,就根據(jù)一定的 策略為TC1和TC2配置隧道信息,配置好以后,將該配置信息分別發(fā)送給TC1 和TC2。這里的配置信息包括了隧道目的地址、目的地址類型、隧道封裝類型 及隧道保活時(shí)間。
針對上述步驟,還可以做改進(jìn),例如,讓隧道服務(wù)器在轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文的同
時(shí),首先進(jìn)行數(shù)據(jù)報(bào)文的流量統(tǒng)計(jì),只有當(dāng)流量統(tǒng)計(jì)到達(dá)一定的統(tǒng)計(jì)值時(shí),才
為TC1和TC2配置隧道。還比如,隧道配置信息不僅包括了隧道目的地址和 目的地址類型,還可以包括隧道源地址和地址類型。
(7 ) TC1和TC2收到隧道服務(wù)器TS發(fā)送的隧道配置信息后,進(jìn)行建立 臨時(shí)隧道的協(xié)商,并在協(xié)商成功建立臨時(shí)隧道后,通知隧道服務(wù)器。在建立臨 時(shí)隧道的時(shí)候,不可避免要考慮隧道的流量問題。這個(gè)問題可以由TS在進(jìn)行 隧道配置的時(shí)候就規(guī)定一個(gè)隧道最低流量,或者由TC1和TC2就該臨時(shí)隧道 的數(shù)據(jù)流量進(jìn)行自主協(xié)商。
(8)臨時(shí)隧道建立成功后,TC1和TC2之間通過建立的臨時(shí)隧道轉(zhuǎn)發(fā)數(shù) 據(jù)報(bào)文。
臨時(shí)隧道建立成功后,還有一些步驟是可以選擇執(zhí)行的。例如,隧道服務(wù) 器在臨時(shí)隧道建立成功后可以只是才艮據(jù)自己的臨時(shí)隧道信息記錄,如果存在該 臨時(shí)隧道記錄,并且沒有收到TC1或者TC2發(fā)出的I欽銷臨時(shí)隧道的請求,那 么,TS即使收到了 TC1和TC2互發(fā)的信息也不進(jìn)行轉(zhuǎn)發(fā),直接丟棄。這樣做 的好處是實(shí)現(xiàn)簡單,但是可靠性低。
還有一種做法就是TS為每個(gè)臨時(shí)隧道創(chuàng)建一個(gè)隧道超時(shí)定時(shí)器,監(jiān)控臨 時(shí)隧道的狀況。相應(yīng)的,TC1和TC2也必須為該臨時(shí)隧道建立周期性的監(jiān)測機(jī) 制,并定期向TS報(bào)告該臨時(shí)隧道是否需要?;?。TS只要能在超時(shí)定時(shí)器的一 個(gè)周期內(nèi)收到隧道保活消息,就認(rèn)為該臨時(shí)隧道是存在且可靠的。這種方式實(shí) 現(xiàn)起來比較復(fù)雜,但增加了數(shù)據(jù)傳輸?shù)目煽啃浴?br>
因?yàn)楸景l(fā)明實(shí)施例中建立的是臨時(shí)隧道,那么,必然涉及到隧道的撤銷問 題。對于臨時(shí)隧道的撤銷,可以用以下實(shí)現(xiàn)方式
1、隧道客戶端TC1或者TC2發(fā)現(xiàn)統(tǒng)計(jì)的隧道流量不能達(dá)到TS規(guī)定的配 置流量或者不能達(dá)到TC1和TC2建立隧道時(shí)協(xié)商的數(shù)據(jù)流量,向TS發(fā)出撤銷 臨時(shí)隧道的請求,同時(shí)向?qū)Ψ?TC2或者TC1)發(fā)送撤銷隧道通知,通知對方 不要再通過臨時(shí)隧道給自己發(fā)送數(shù)據(jù)報(bào)文,TS收到該請求后,刪除該臨時(shí)隧道信息,并通知TC1和TC2。此后,TC1和TC2又由TS充當(dāng)中繼來轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文。
2、隧道服務(wù)器TS的隧道超時(shí)定時(shí)器在一個(gè)周期內(nèi)沒有收到TC1或者TC2 發(fā)送的隧道?;钕?,就認(rèn)為不再需要臨時(shí)隧道。TS先向TC1和TC2發(fā)送通 知消息,通知TC1和TC2將撤銷該臨時(shí)隧道,TC1和TC2收到該通知消息后, 不再通過該臨時(shí)隧道互發(fā)數(shù)據(jù)報(bào)文,同時(shí)刪除該臨時(shí)隧道的定時(shí)器。TS刪除 該臨時(shí)隧道信息,同時(shí)刪除該臨時(shí)隧道的隧道超時(shí)定時(shí)器。為了不頻繁刪除建 立臨時(shí)隧道,可以設(shè)定TS的隧道超時(shí)定時(shí)器的周期為TC1或者TC2的發(fā)送保 活消息的定時(shí)器的周期的n倍,本實(shí)施例中,取n為3。
參見圖2,為本發(fā)明所述隧道服務(wù)器的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。本實(shí)施例的隧道服務(wù)器包括了接收模塊,發(fā)送模塊,隧道注冊模塊,存儲(chǔ)模塊,報(bào)文 解析模塊,隧道配置模塊和隧道檢測模塊。
其中,在隧道客戶端向隧道服務(wù)器注冊隧道信息的過程中,接收模塊接收 隧道客戶端發(fā)送的隧道信息,并發(fā)送給隧道注冊模塊,隧道注冊模塊完成注冊 功能后,生成注冊信息表或者其他存儲(chǔ)結(jié)構(gòu)來存儲(chǔ)隧道注冊信息,然后將該注 冊信息表或者存儲(chǔ)結(jié)構(gòu)發(fā)往存儲(chǔ)模塊進(jìn)行存儲(chǔ);
在隧道服務(wù)器進(jìn)行數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)的過程中,接收模塊用于通過會(huì)話通道 (如L2TP隧道辨收TC1轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文,并送往報(bào)文解析模塊,報(bào)文解析模 塊通過解析獲取該數(shù)據(jù)報(bào)文的目的地址,如果根據(jù)目的地址和注冊信息表中的 條目能匹配到TC2為下一跳,且TC2和TS之間已建立了會(huì)話通道(如L2TP隧 道),則通過該通道將報(bào)文轉(zhuǎn)發(fā)給TC2,否則,TS向TC1發(fā)送目的不可達(dá)ICMP控制報(bào)文;
在隧道服務(wù)器進(jìn)行隧道信息配置的過程中,報(bào)文解析模塊解析數(shù)據(jù)報(bào)文, 獲取其源地址與目的地址所在孤島的TC的信息,即獲得TC1和TC2的信息, 這可以通過兩方面來獲得根據(jù)傳送報(bào)文的會(huì)話通道,可以得知其源隧道客戶端為TC1;根據(jù)報(bào)文的目的地址可以向存儲(chǔ)模塊查詢注冊信息表,從注冊信息表中的前綴信息可以獲得目的地址需通過TC2轉(zhuǎn)發(fā);進(jìn)一步,服務(wù)器在確定 TC1和TC2后,可以獲得TC1和TC2的隧道信息,隧道配置模塊根據(jù)一定的 策略MJ'J為TC1和TC2配置臨時(shí)隧道,然后將隧道配置信息通過發(fā)送模塊分 別發(fā)往TC1和TC2,并根據(jù)TC1和TC2的協(xié)商結(jié)果在存儲(chǔ)模塊中記錄臨時(shí)隧 道信息;
在臨時(shí)隧道建立后的數(shù)據(jù)轉(zhuǎn)發(fā)過程中,接收模塊接收TC1和TC2定期發(fā) 送的隧道?;钚畔?,發(fā)往隧道檢測模塊,隧道檢測模塊根據(jù)TS為該臨時(shí)隧道 建立的隧道超時(shí)定時(shí)器判斷該隧道是否需要撤銷,如果需要撤銷,由發(fā)送模塊 向TC1和TC2發(fā)送撤銷臨時(shí)隧道的請求;
接收模塊還用來接收TC1和TC2發(fā)送的撤銷臨時(shí)隧道的請求,將該請求 轉(zhuǎn)發(fā)給隧道配置模塊,隧道配置模塊根據(jù)該請求查詢存儲(chǔ)模塊,找到并刪除該 臨時(shí)隧道信息,通過發(fā)送模塊向TC1和TC2發(fā)送臨時(shí)隧道刪除成功消息。
參見圖3,為本發(fā)明所述建立隧道的系統(tǒng)。如前所述,本發(fā)明主要為了解 決IPv4向IPv6過渡時(shí)的網(wǎng)絡(luò)互聯(lián)問題,但本發(fā)明同樣可以應(yīng)用于其他網(wǎng)絡(luò)互 聯(lián)的場合。
本發(fā)明所述系統(tǒng)主要包括AF[i]核心網(wǎng)和若干AF[j]孤島,這里的i和j 分別代表了地址族(AddressFamily),并且其代表的地址族可能相同(例如, IPv4的VPN和IPv4的核心網(wǎng))也可能不同(例如,IPv6的孤島和IPv4的核 心網(wǎng))。這里的AF[i]核心網(wǎng)可能是IPv4網(wǎng)絡(luò)也可能是IPv6網(wǎng)絡(luò),同樣,這里 的AF[j]孤島也可能是IPv4網(wǎng)絡(luò)或者IPv6網(wǎng)絡(luò)。在本實(shí)施例的系統(tǒng)中,每個(gè) AF[j]孤島通過充當(dāng)隧道客戶端(Tunnel Client, TC)的路由器或者其他具備 相同功能的網(wǎng)絡(luò)設(shè)備連接到核心網(wǎng)AF[i]的隧道服務(wù)器(Tunnel Server, TS)上。
每個(gè)地址族為AF[j]的孤島形成以后,都需要先和地址族為AF[i]的核心網(wǎng) 建立隧道連接關(guān)系,這種隧道連接關(guān)系既可以手工配置也可以通過自動(dòng)配置的 方式設(shè)置,隧道連接關(guān)系建立之后,每個(gè)孤島通過自己的TC向核心網(wǎng)的TS 進(jìn)行隧道注冊,告知自己的源地址、隧道封裝類型、封裝優(yōu)先級和孤島前綴信
息。這樣,核心網(wǎng)的TS就擁有了一份完整的記錄全部孤島信息的列表。
本實(shí)施例中,當(dāng)?shù)刂纷鍨锳F[j]的孤島1需要和地址族同為AF[j]的孤島2 通信的時(shí)候,孤島1先向核心網(wǎng)的TS發(fā)送報(bào)文,攜帶指向孤島2的目的地址, 核心網(wǎng)的TS收到該報(bào)文后,同步進(jìn)行兩項(xiàng)工作通過已經(jīng)建立的隧道向孤島 2轉(zhuǎn)發(fā)所述報(bào)文;解析所述報(bào)文,查找孤島l和孤島2的隧道注冊信息,根據(jù) 所述隧道注冊信息判斷是否可以在孤島1和孤島2之間建立直接隧道,如果可 以,則TS分別向TC1和TC2發(fā)送建立隧道的消息,攜帶隧道端口地址和封裝 類型信息。TC1和TC2收到上述信息后,進(jìn)行協(xié)商并建立臨時(shí)隧道連接。臨時(shí) 隧道建立起來以后,TC1將通過建立的臨時(shí)隧道向TC2發(fā)送報(bào)文,而不再將報(bào) 文發(fā)往核心網(wǎng)的TS。
臨時(shí)隧道建立起來后,如果TC1 (或TC2)經(jīng)過一定時(shí)間間隔沒有收到 TC2 (TC1)發(fā)送的數(shù)據(jù)報(bào)文或者接收的數(shù)據(jù)報(bào)文流量達(dá)不到協(xié)商的要求,則 認(rèn)為已經(jīng)不需要臨時(shí)隧道,這時(shí)TC1或者TC2可以請求TS刪除臨時(shí)隧道, TS進(jìn)行隧道刪除并通知TC1和TC2。本發(fā)明的另一實(shí)施例中,還可以在TS 和TC1、 TC2之間建立隧道?;顧C(jī)制,如果TS在一定周期內(nèi)沒有收到TC1或 TC2發(fā)的隧道?;钚畔?,則可以主動(dòng)刪除該臨時(shí)隧道并通知TC1和TC2。
在上述過程中,臨時(shí)隧道建立起來后,TC1或者TC2應(yīng)當(dāng)通知核心網(wǎng)的 TS。如果TC1/TC2將建立臨時(shí)隧道的信息已經(jīng)通知了 TS,并且TS沒有收到 刪除臨時(shí)隧道的消息,則TS可以對收到的從TC1發(fā)出或轉(zhuǎn)發(fā)的,目的或下一 跳地址為TC2的報(bào)文不再進(jìn)行轉(zhuǎn)發(fā)。
本發(fā)明的上述實(shí)施例,筒化了隧道配置過程,能夠支持多種封裝類型,解 決了不同廠商的設(shè)備兼容問題,方便地實(shí)現(xiàn)IPv4和IPv6網(wǎng)絡(luò)的互聯(lián)。應(yīng)當(dāng)明 確的是,本領(lǐng)域技術(shù)人員針對本發(fā)明所做的任何通常的修改、替換,都應(yīng)該包 含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種動(dòng)態(tài)建立隧道的方法,包括隧道客戶源端和隧道客戶目的端向隧道服務(wù)器發(fā)送隧道注冊信息,隧道服務(wù)器根據(jù)所述隧道注冊信息完成隧道客戶端的注冊并存儲(chǔ)所述隧道注冊信息;隧道服務(wù)器根據(jù)所述隧道注冊信息為隧道客戶源端和隧道客戶目的端配置隧道,并分別向隧道客戶源端和隧道客戶目的端發(fā)送隧道配置信息。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述隧道服務(wù)器分別向隧道客戶源端和隧道客戶目的端發(fā)送隧道配置信息后進(jìn)一步包括所述隧道客戶源端和隧道客戶目的端收到所述隧道配置信息后,通過該配置的隧道發(fā)送數(shù)據(jù)報(bào)文;或所述隧道客戶源端和隧道客戶目的端收到所述隧道配置信息后,根據(jù)所述隧道配置信息協(xié)商建立臨時(shí)隧道,發(fā)送數(shù)據(jù)報(bào)文。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述的隧道服務(wù)器根據(jù)所述注冊信息為隧道客戶源端和隧道客戶目的端配置隧道的步驟具體包括隧道客戶源端向隧道服務(wù)器發(fā)送目的地址為隧道客戶目的端的數(shù)據(jù)報(bào)文; 隧道服務(wù)器解析該數(shù)據(jù)報(bào)文,獲取該數(shù)據(jù)報(bào)文的目的地址后,向隧道客戶目的端轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文,同時(shí)查詢所述存儲(chǔ)的隧道注冊信息,根據(jù)報(bào)文源地址、目的地址所屬的子網(wǎng)信息判斷隧道客戶源端和隧道客戶目的端是否能夠直 接建立隧道;如果是,則隧道服務(wù)器分別向隧道客戶源端和隧道客戶目的端發(fā)送隧道配置消息。
4、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述的臨時(shí)隧道建立成功后,隧道客戶源端和隧道客戶目的端向隧道服務(wù)器發(fā)送臨時(shí)隧道建立成功消息,隧道服務(wù)器收到該信息以后,記錄該臨時(shí)隧道信息并通知隧道客戶端記錄完成,隧道客戶端收到該通知消息后,通過該臨時(shí)隧道互發(fā)數(shù)據(jù)報(bào)文。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述隧道服務(wù)器記錄臨時(shí)隧道信息后,為該臨時(shí)隧道設(shè)立一個(gè)隧道超時(shí)定時(shí)器;所述隧ii^戶端分別為 該臨時(shí)隧道設(shè)立一個(gè)隧道定時(shí)器,定期向隧道服務(wù)器發(fā)送隧道?;钕ⅲㄖ?該臨時(shí)隧道的狀況。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述隧道服務(wù)器在隧道超 時(shí)定時(shí)器設(shè)定的時(shí)間內(nèi)沒有收到隧道客戶源端或者隧道客戶目的端的隧道保 活消息的,隧道服務(wù)器向隧道客戶源端和隧il^戶目的端分別發(fā)送撤銷該臨時(shí) 隧道的通知消息,并刪除該臨時(shí)隧道的記錄和隧道超時(shí)定時(shí)器。
7、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法進(jìn)一步包括隧道客戶源端不需要再向隧道客戶目的端發(fā)送的數(shù)據(jù)報(bào)文流量不能達(dá)到建立臨時(shí)隧道時(shí)協(xié)商的流量時(shí),隧道客戶源端向隧道服務(wù)器 發(fā)起撤銷臨時(shí)隧道的請求消息,隧道服務(wù)器收到該請求消息后,撤銷臨時(shí)隧道, 并向隧道客戶源端和目的端分別發(fā)送隧道撤銷通知;或隧道客戶目的端經(jīng)過一定時(shí)間間隔后,沒有收到隧道客戶源端的數(shù)據(jù)報(bào)文 或者接收的數(shù)據(jù)報(bào)文流量不能達(dá)到隧道客戶源端和隧道客戶目的端協(xié)商的流 量,隧道客戶目的端同時(shí)向隧道客戶源端和隧道服務(wù)器發(fā)送撤銷臨時(shí)隧道的通 知消息,并4敬銷臨時(shí)隧道。
8、 根據(jù)權(quán)利要求1-7中任意一項(xiàng)所述的方法,其特征在于,所述的隧道 注冊信息包括隧道客戶端地址、隧道客戶端支持的封裝類型、各種封裝類型的 優(yōu)先級、隧道客戶端所屬的子網(wǎng)前綴以及允許的隧道?;顣r(shí)間;所述的隧道配 置信息包括隧道目的地址、目的地址類型、隧道封裝類型及隧道保活時(shí)間。
9、 根據(jù)權(quán)利要求1-7中任意一項(xiàng)所述的方法,其特征在于,所述的隧道 客戶源端和隧道客戶目的端所屬的子網(wǎng)類型相同。
10、 一種隧道服務(wù)器,包括接收模塊和發(fā)送模塊,其特征在于,所述隧道 服務(wù)器還包括隧道注冊才莫塊,用于根據(jù)接收模塊接收的隧道注冊信息完成隧道客戶端的 隧道注冊,并向隧道客戶端發(fā)送注冊成功消息;隧道配置模塊,用于根據(jù)隧道注冊信息為隧道客戶源端和隧道客戶目的端 配置隧道,并分別向隧道客戶源端和隧道客戶目的端發(fā)送隧道配置信息。
11、 根據(jù)權(quán)利要求10所述的隧道服務(wù)器,其特征在于,該隧道服務(wù)器還 包括存儲(chǔ)模塊,用于存儲(chǔ)所述隧道注冊信息以及臨時(shí)隧道信息; 報(bào)文解析模塊,用于解析隧道客戶源端發(fā)送的數(shù)據(jù)報(bào)文,獲取在隧道客戶源端所屬子網(wǎng)內(nèi)產(chǎn)生的原始數(shù)據(jù)報(bào)文的源/目的地址,并發(fā)送給所述隧道配置模塊。
12、 根據(jù)權(quán)利要求11所述的隧道服務(wù)器,其特征在于,該隧道服務(wù)器還 包括隧道檢測模塊,用于根據(jù)隧道超時(shí)定時(shí)器和隧道客戶端發(fā)送的隧道?;钚?息判斷臨時(shí)隧道的狀態(tài),確定是否需要撤銷臨時(shí)隧道。
13、 根據(jù)權(quán)利要求10-12任一項(xiàng)所述的隧道服務(wù)器,其特征在于,所述的 隧道注冊信息包括隧道客戶端地址、隧道客戶端支持的封裝類型、各種封裝類型的優(yōu)先級和 隧ii^戶端所屬的子網(wǎng)前綴。
14、 一種動(dòng)態(tài)建立隧道的系統(tǒng),包括核心網(wǎng)和多個(gè)子網(wǎng),所述的多個(gè)子網(wǎng) 分別包括至少一個(gè)隧道客戶端,其特征在于,所述的多個(gè)子網(wǎng)通過各自的隧道客戶端連接到所述核心網(wǎng); 所述核心網(wǎng)包括一個(gè)隧道服務(wù)器,用于通過所述的多個(gè)子網(wǎng)的隧道客戶端 動(dòng)態(tài)地為所述的多個(gè)子網(wǎng)提供隧道服務(wù)。
15、 根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述的多個(gè)子網(wǎng)具有相 同的網(wǎng)絡(luò)類型,所述的多個(gè)子網(wǎng)與核心網(wǎng)具有相同或不同的網(wǎng)絡(luò)類型。
16、 根據(jù)權(quán)利要求14或15所述的系統(tǒng),其特征在于,所述的隧道客戶端 包括網(wǎng)絡(luò)邊界路由器、用戶CPE設(shè)備或用戶主機(jī)。
全文摘要
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),公開了一種動(dòng)態(tài)建立隧道的方法、隧道服務(wù)器和系統(tǒng)。本發(fā)明所述方法包括隧道客戶源端和隧道客戶目的端向隧道服務(wù)器發(fā)送隧道注冊信息,隧道服務(wù)器根據(jù)所述隧道注冊信息完成隧道客戶端的注冊并存儲(chǔ)所述隧道注冊信息;隧道服務(wù)器根據(jù)所述隧道注冊信息為隧道客戶源端和隧道客戶目的端配置隧道,并分別向隧道客戶源端和隧道客戶目的端發(fā)送隧道配置信息。本發(fā)明能夠用多種隧道封裝格式在不同運(yùn)營商的網(wǎng)絡(luò)設(shè)備間進(jìn)行隧道配置協(xié)商,增強(qiáng)了隧道封裝能力,實(shí)現(xiàn)了隧道自動(dòng)配置機(jī)制,有效解決了IPv4和IPv6網(wǎng)絡(luò)的互聯(lián)互通問題。
文檔編號H04L12/46GK101207546SQ20061015768
公開日2008年6月25日 申請日期2006年12月18日 優(yōu)先權(quán)日2006年12月18日
發(fā)明者管紅光 申請人:華為技術(shù)有限公司