專利名稱:Ip安全報(bào)文轉(zhuǎn)發(fā)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及IP安全技術(shù)領(lǐng)域,具體涉及IP安全報(bào)文轉(zhuǎn)發(fā)方法及裝置。
背景技術(shù):
IP安全(IPSec, IP Security )是國際互聯(lián)網(wǎng)工程工作組(IETF, Internet Engineering Task Force )制定的三層隧道加密協(xié)議,它為因特網(wǎng)上傳輸?shù)臄?shù) 據(jù)提供了高質(zhì)量、可互搡作、基于密碼學(xué)的安全保證。IPSec策略啟用在實(shí) 際接口上,對該接口上轉(zhuǎn)發(fā)的特定報(bào)文進(jìn)行加密和封裝,并發(fā)送到IPSec對 等體(IKE-Peer) , IPSec對等體對該報(bào)文進(jìn)行解封裝和解密,再將該報(bào)文 按照目的IP進(jìn)行轉(zhuǎn)發(fā)。
IPSec基本配置的實(shí)現(xiàn)如下通過IPSec,對等體之間即設(shè)備及其對端 能夠?qū)Σ煌臄?shù)據(jù)流實(shí)施不同的安全保護(hù)如認(rèn)證、加密或兩者同時(shí)使用, 數(shù)據(jù)流的區(qū)分通過配置訪問控制列表(ACL, Access Control List)來進(jìn)行; 安全保護(hù)所用到的安全協(xié)議、認(rèn)證算法和加密算法、封裝模式等通過配置 IPSec提議來進(jìn)行;數(shù)據(jù)流和IPSec提議的關(guān)聯(lián)即定義對何種數(shù)據(jù)流實(shí)施 何種保護(hù)、安全聯(lián)盟(SA, Security Association)的協(xié)商方式、對等體IP地 址的設(shè)置即保護(hù)路徑的起/終點(diǎn)、所需要的密鑰和SA的生存周期等通過配 置安全策略來進(jìn)行;最后在設(shè)備接口上實(shí)施安全策略即完成了 IPSec的配置, 若通過軟件實(shí)現(xiàn),則在接口上應(yīng)用安全策略即可;若通過加密卡實(shí)現(xiàn),則除 了在接口上應(yīng)用安全策略,還需將安全策略綁定到加密卡上。
圖1給出了基于ACL的IPSec組網(wǎng)圖,如圖l所示,在兩端設(shè)備設(shè) 備A、 B的公網(wǎng)接口上配置IPSec策略,IPSec策略包含3個(gè)要素,IPSec對 等體、加密算法、加密ACL。對于設(shè)備A的公網(wǎng)接口上轉(zhuǎn)發(fā)或者始發(fā)的報(bào)文,首先將該報(bào)文與已有的IPSEC SA匹配,若匹配到,則使用該IPSec SA 對報(bào)文進(jìn)行加密封裝發(fā)送到設(shè)備B;若未匹配到,則將該報(bào)文與加密ACL 匹配,若匹配上,則設(shè)備A向設(shè)備B發(fā)起IPSecSA協(xié)商,IPSecSA協(xié)商成 功,IPSsec SA建立,使用新建立的IPSec SA對該才艮文進(jìn)行加密封裝后送到 對端設(shè)備A。
為保證SA的成功建立,需要將IPSec對等體上的ACL鏡像配置,即保 證兩端要保護(hù)的數(shù)據(jù)流范圍是鏡像的。圖2給出了一個(gè)鏡像配置ACL的示 例圖。在建立IPSec SA時(shí),對于要加密的流兩端最后要協(xié)商成鏡像方式, 這樣,對于組播和廣播報(bào)文都不可能建立IPSecSA。因?yàn)閷τ诮M播或廣播 報(bào)文,其目的地址為組播或廣播地址,若要ACL鏡像配置,則對端設(shè)備的 ACL配置的源地址需要為組播或廣播地址,這種報(bào)文實(shí)際上是不存在的; 另外,對于組播或廣播報(bào)文,即使兩端設(shè)備完成了 ACL鏡像配置,組播或 廣播報(bào)文被送到了對端設(shè)備,但是由于兩端設(shè)備的公網(wǎng)接口不在同一網(wǎng)段, 無法建立鄰居關(guān)系,因此無法實(shí)現(xiàn)路由,也就導(dǎo)致IPSec隧道兩端不能啟用 動(dòng)態(tài)路由和組播協(xié)議。
思科(CISCO )公司提出的靜態(tài)虛擬隧道接口 ( VTI, Virtual Tunnel Interface )使用隧道接口 , VTI上配置了本端和對端的公網(wǎng)IP地址、加密算 法,并指定接口的封裝方式為IPSec封裝,設(shè)備使用隧道接口上配置的對端 的公網(wǎng)IP地址作為IPSec對等體的地址發(fā)起IPSec連接。圖3為靜態(tài)VTI 組網(wǎng)圖,如圖3所示,設(shè)備A的隧道接口上配置的對端公網(wǎng)IP地址為1.2.1.1, 則設(shè)備A的VTI上有報(bào)文始發(fā)或者轉(zhuǎn)發(fā)時(shí),檢查是否有與VTI上配置的對 端公網(wǎng)IP地址對應(yīng)的IPSec SA,若有,則使用該IPSec SA對該報(bào)文進(jìn)行加 密封裝;若沒有,則向設(shè)備B發(fā)起IPSec SA協(xié)商,協(xié)商成功IPSec SA建立, 設(shè)備A使用建立的IPSEC SA對報(bào)文進(jìn)行加密封裝后發(fā)送到設(shè)備B。
設(shè)備A、 B上建立的IPSec SA如下
crypto isakmp policy 1encr 3des
authentication pre隱share group 2
crypto isakmp key Cisco12345 address 0.0.0.0 0.0.0.0
crypto IPsec transform-set Tl esp-3des esp-sha-hmac
crypto IPsec profile PI
set transform-set Tl !
interface Tunnel0
ip address 192.168.0.1 255.255.255.0
ip ospf mtu-ignore
load-interval 30
tunnel source 1.1.1.1
tunnel destination 1.2.1.1
tunnel mode IPsec ipv4
tunnel protection IPsec profile PI
由于CISCO的靜態(tài)VTI為隧道接口 ,兩端設(shè)備的VTI的IP地址可以配 置在同 一個(gè)網(wǎng)段中, 一個(gè)設(shè)備的VTI上的任何報(bào)文都會(huì)通過IPSec隧道送到 對端設(shè)備的VTI上,這樣, 一個(gè)VTI上發(fā)出的組播或廣播報(bào)文也會(huì)送到對 端設(shè)備的VTI,因此,兩端設(shè)備能建立起動(dòng)態(tài)路由鄰居關(guān)系,實(shí)現(xiàn)路由。
由于CISCO的靜態(tài)VTI方式繼承了 GRE的思想,隧道接口上配置的對 端地址只能是對端設(shè)備的公網(wǎng)IP地址,就導(dǎo)致了如下缺點(diǎn)
一、 如果一端的公網(wǎng)IP地址是動(dòng)態(tài)獲取的,則該方法不能使用;同時(shí), 如果運(yùn)營商網(wǎng)絡(luò)中有網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT , Network Address Transfering )設(shè) 備存在時(shí),該方法也不能使用。
二、 隧道接口上只能配置一個(gè)公網(wǎng)IP地址,因此該方法不支持一對多 的組網(wǎng),如果企業(yè)有多個(gè)分支需要通過虛擬專網(wǎng)(VPN, Virtual Private Network)接入到總部,則總部需要建立多個(gè)隧道接口進(jìn)行--對應(yīng)。
發(fā)明內(nèi)容
本發(fā)明提供IPSec報(bào)文轉(zhuǎn)發(fā)方法及裝置,以擴(kuò)大IPSec隧道的應(yīng)用范圍。 本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的
一種IP安全報(bào)文轉(zhuǎn)發(fā)方法,應(yīng)用在至少包含兩個(gè)設(shè)備的組網(wǎng)中,其中,第 一設(shè)備具有固定公網(wǎng)IP地址,在每個(gè)設(shè)備上增加一個(gè)IP安全聯(lián)盟IPSec SA接 口 ,為每個(gè)IPSec SA接口分配處于同一網(wǎng)段的IP地址;將每個(gè)設(shè)備的IPSec SA 接口與公網(wǎng)接口綁定,在非第一設(shè)備上配置的IPSec對等體信息為第一設(shè)備的 公網(wǎng)IP地址,在每個(gè)設(shè)備的IPSec SA接口上啟用動(dòng)態(tài)路由協(xié)議;該方法包括
非第 一設(shè)備的IPSec SA接口上始發(fā)報(bào)文,與第一設(shè)備進(jìn)行IPSec SA協(xié)商, 協(xié)商成功,雙方設(shè)備建立IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)至少 包括IPSec連接標(biāo)識、對端設(shè)備的IPSec SA接口的IP地址;
設(shè)備根據(jù)所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)對報(bào)文進(jìn)行加密封裝并轉(zhuǎn)發(fā)出去。
所述非第 一設(shè)備的IPSec SA接口上始發(fā)報(bào)文之后、與第 一設(shè)備進(jìn)行IPSec 協(xié)商之前進(jìn)一步包括
非第一設(shè)備判斷自身是否已建立IPSec SA,若是,直接采用該IPSec SA對 報(bào)文加密封裝后發(fā)送出去;否則,執(zhí)行所述與第一設(shè)備進(jìn)行IPSec SA協(xié)商的動(dòng) 作。
所述設(shè)備根據(jù)所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)對報(bào)文進(jìn)行加密封裝并轉(zhuǎn)發(fā)出去包
括
設(shè)備要轉(zhuǎn)發(fā)一個(gè)單播報(bào)文,根據(jù)報(bào)文的目的IP地址查找單播路由表項(xiàng),將 單播路由表項(xiàng)中的下一跳與IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的對端設(shè)備的IPSec SA接口 的IP地址匹配,若匹配上,則沖艮據(jù)IPSec才艮文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接標(biāo)識查 找到IPSec SA,使用該IPSec SA對該報(bào)文進(jìn)行加密封裝后轉(zhuǎn)發(fā)出去;
或者,設(shè)備要轉(zhuǎn)發(fā)一個(gè)組播報(bào)文或廣播報(bào)文,則根據(jù)各IPSec報(bào)文轉(zhuǎn)發(fā)表 項(xiàng)中的IPSec連接標(biāo)識查找到IPSec SA,分別使用各IPSec SA對該報(bào)文進(jìn)行加 密封裝,將各封裝后的報(bào)文通過各自的IPSec隧道轉(zhuǎn)發(fā)出去。
8所述非第一設(shè)備不具有固定公網(wǎng)IP地址,且所有非第一設(shè)備具有一個(gè)通用
IKE本地名,
所述方法進(jìn)一步包括在第一設(shè)備上配置IPSec對等體信息為所有非第一 設(shè)備的通用IKE本地名。
所述組網(wǎng)為 一對多的組網(wǎng),所述第一設(shè)備為中心設(shè)備。
所述方法進(jìn)一步包括中心設(shè)備的IPSec SA接口上始發(fā)報(bào)文,在自身查找 已建立的IPSec SA,判斷是否查找到,若是,分別采用各IPSec SA對報(bào)文加密 封裝,將封裝后的各報(bào)文通過各自的IPSec隧道發(fā)送出去;否則,丟棄該報(bào)文。
所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)進(jìn)一步包括IPSec本端地址、IPSec對端地址、 本端IPSec SA地址,其中,IPSec本端地址為本設(shè)備的公網(wǎng)IP地址,IPSec對 端地址為對端設(shè)備的公網(wǎng)IP地址,本端IPSec SA地址為本設(shè)備的IPSec SA接 口的IP地址。
一種IPSec報(bào)文轉(zhuǎn)發(fā)裝置,應(yīng)用在IPSec對等體具有固定公網(wǎng)IP地址的設(shè) 備上,該裝置包括
IPSec接口配置才莫塊,在本設(shè)備上增加一個(gè)IPSec SA接口 ,將該IPSec SA 接口與公網(wǎng)接口綁定,該IPSec SA接口的IP地址與IPSec對等體的IPSec SA 接口的IP地址處于同 一網(wǎng)段內(nèi),在本設(shè)備上配置的IPSec對等體信息為對端設(shè) 備的固定公網(wǎng)IP地址,在本設(shè)備的IPSec SA接口上啟用動(dòng)態(tài)路由協(xié)議;
IPSec協(xié)商模塊,發(fā)現(xiàn)IPSec SA接口上始發(fā)報(bào)文,與對端設(shè)備進(jìn)行IPSec SA 協(xié)商,協(xié)商成功,建立IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)至少包 括IPSec連接標(biāo)識、對端設(shè)備的IPSec SA接口的IP地址;
報(bào)文轉(zhuǎn)發(fā)模塊,將要發(fā)送一個(gè)報(bào)文,根據(jù)IPSec協(xié)商模塊建立的所述IPSec 報(bào)文對報(bào)文進(jìn)行加密封裝并轉(zhuǎn)發(fā)出去。
所述報(bào)文轉(zhuǎn)發(fā)模塊包括
表項(xiàng)查找模塊,將要發(fā)送一個(gè)報(bào)文,若為單播報(bào)文,則根據(jù)報(bào)文的目的IP 地址查找單播路由表項(xiàng),將單播路由表項(xiàng)中的下一跳與IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中 的對端設(shè)備的IPSec SA接口的IP地址匹配,若匹配上,將IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)
9中的IPSec連接標(biāo)識發(fā)送給封裝模塊;若為組播或廣播報(bào)文,則將所有IPSec 報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接標(biāo)識發(fā)送給封裝模塊;
封裝模塊,根據(jù)IPSec連接標(biāo)識找到IPSec SA,使用找到的IPSec SA對報(bào) 文進(jìn)行加密封裝,將封裝后的報(bào)文通過對應(yīng)的IPSec隧道發(fā)送出去。
一種IPSec報(bào)文轉(zhuǎn)發(fā)裝置,應(yīng)用在具有固定公網(wǎng)IP地址的設(shè)備上,該裝置 包括
IPSec接口配置模塊,在本設(shè)備上增加一個(gè)IPSec SA接口 ,將該IPSec SA 接口與公網(wǎng)接口綁定,該IPSec SA接口的IP地址與IPSec對等體的IPSec SA 接口的IP地址處于同一網(wǎng)段內(nèi),在本設(shè)備上配置的IPSec對等體信息為對端設(shè) 備的IKE本地名,在本設(shè)備的IPSec SA接口上啟用動(dòng)態(tài)路由協(xié)議;
IPSec協(xié)商模塊,接收對端設(shè)備發(fā)來的IPSec協(xié)議報(bào)文,與對端設(shè)備進(jìn)行 IPSec SA協(xié)商,協(xié)商成功,建立IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),所述IPSec報(bào)文轉(zhuǎn)發(fā)表 項(xiàng)至少包括IPSec連接標(biāo)識、對端設(shè)備的IPSec SA接口的IP地址;
報(bào)文轉(zhuǎn)發(fā)模塊,將要發(fā)送一個(gè)報(bào)文,根據(jù)IPSec協(xié)商模塊建立的所述IPSec 報(bào)文轉(zhuǎn)發(fā)表項(xiàng)對報(bào)文進(jìn)行加密封裝并轉(zhuǎn)發(fā)出去。
所述報(bào)文轉(zhuǎn)發(fā)模塊進(jìn)一步用于,從IPSec SA接口上始發(fā)報(bào)文,查找本 設(shè)備已建立的IPSec SA,判斷是否查找到,若是,分別采用各IPSec SA對 報(bào)文加密封裝,將封裝后的各報(bào)文通過各自的IPSec隧道發(fā)送出去;否則, 丟棄該纟艮文。
與現(xiàn)有技術(shù)相比,本發(fā)明對于至少包含兩個(gè)設(shè)備且第 一設(shè)備具有固定公
網(wǎng)IP地址的組網(wǎng),在每個(gè)設(shè)備上增加一個(gè)IPSec SA接口,將每個(gè)設(shè)備的
IPSec SA接口與公網(wǎng)接口綁定,為每個(gè)IPSec SA接口分配處于同 一 網(wǎng)段的
私網(wǎng)IP地址;在非第一設(shè)備上配置的IPSec對等體信息為第一設(shè)備的公網(wǎng)
IP地址,在每個(gè)設(shè)備的IPSec SA接口上啟用動(dòng)態(tài)路由協(xié)議;當(dāng)非第一設(shè)備
的IPSec SA接口上始發(fā)報(bào)文時(shí),與第一設(shè)備進(jìn)行IPSec SA協(xié)商,協(xié)商成功,
雙方設(shè)備建立IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)至少包括IPSec
連接標(biāo)識、對端設(shè)備的IPSec SA接口的IP地址;設(shè)備根據(jù)所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)報(bào)文。本發(fā)明適用于動(dòng)態(tài)路由協(xié)議和組播協(xié)議,且對于一端設(shè) 備的公網(wǎng)IP地址是動(dòng)態(tài)荻取的或者網(wǎng)絡(luò)中包含NAT設(shè)備的情況,都可以建
立IPSec連接,擴(kuò)大了 IPSec隧道的應(yīng)用范圍;
另外,本發(fā)明中,將具有公網(wǎng)IP地址的設(shè)備上的IPSec對等體信息配 置為對端設(shè)備的通用IKE本地名,這樣,對于一對多的組網(wǎng),只需在中心設(shè) 備上配置一個(gè)IPSec SA接口即可。
圖1為現(xiàn)有的基于ACL的IPSec組網(wǎng)圖2為現(xiàn)有的鏡像配置ACL的示例圖3為現(xiàn)有的靜態(tài)VTI的組網(wǎng)圖4為本發(fā)明實(shí)施例一提供的IPSec報(bào)文轉(zhuǎn)發(fā)流程圖5為本發(fā)明實(shí)施例一的應(yīng)用示例圖6為本發(fā)明實(shí)施例二提供的IPSec報(bào)文轉(zhuǎn)發(fā)流程圖7為本發(fā)明實(shí)施例二的應(yīng)用示例圖8為本發(fā)明實(shí)施例提供的IPSec報(bào)文轉(zhuǎn)發(fā)裝置的組成圖9為本發(fā)明實(shí)施例提供的報(bào)文轉(zhuǎn)發(fā)模塊的組成圖。
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。 圖4為本發(fā)明實(shí)施例一提供的IPSec報(bào)文轉(zhuǎn)發(fā)流程圖,本實(shí)施例針對的 是一對一的組網(wǎng)情形,即對于一個(gè)設(shè)備A來說,其只有一個(gè)IPSec對等體 設(shè)備B,且,設(shè)定設(shè)備B具有固定公網(wǎng)IP地址,如圖4所示,其具體步驟 如下
步驟401:分別在設(shè)備A、 B上新增加一個(gè)IPSec SA接口 ,分別為設(shè)備 A、 B的IPSec SA接口分配處于同一網(wǎng)段的私網(wǎng)IP地址,將設(shè)備A、 B的 IPSec SA接口與公網(wǎng)接口綁定,在設(shè)備A、 B的IPSec SA接口上啟用動(dòng)態(tài)路由協(xié)議,在設(shè)備A上配置IPSec對等體信息為設(shè)備B的公網(wǎng)IP地址,在 設(shè)備B上配置IPSec對等體信息為設(shè)備A的IKE本地名(IKE Local Name ), 在設(shè)備A、 B的IPSec SA接口上配置IPSec提議。
IPSec SA接口實(shí)際上為一個(gè)虛擬接口 ,將其與公網(wǎng)接口綁定后,公網(wǎng)接 口接收到的或者要發(fā)送的報(bào)文都會(huì)轉(zhuǎn)到該IPSec SA接口上來處理。
圖5為本發(fā)明實(shí)施例一的一個(gè)應(yīng)用示例,如圖5所示,設(shè)定設(shè)備B的 公網(wǎng)IP地址為1.2.1.1,設(shè)定設(shè)備A的IPSec SA接口的IP地址為192.168.0.1, 設(shè)定設(shè)備B的IPSec SA接口的IP地址為192.168.0.2。
步驟402:設(shè)備A的IPSecSA接口始發(fā)一個(gè)報(bào)文。
由于設(shè)備A的IPSec SA接口啟用了動(dòng)態(tài)路由協(xié)議,因此,設(shè)備A的IPSec SA接口上始發(fā)的報(bào)文或者為組播報(bào)文或者為廣播報(bào)文。
步驟403:設(shè)備A判斷自身是否建立了 IPSec SA信息,若是,執(zhí)行步 驟407;否則,執(zhí)行步驟404。
步驟404:設(shè)備A查找自身配置的IPSec對等體信息,發(fā)起一個(gè)IPSec 協(xié)商報(bào)文,該報(bào)文的目的IP地址為IPSec對等體信息即設(shè)備B的公網(wǎng)IP 地址。
步驟405:設(shè)備B接收該報(bào)文,發(fā)現(xiàn)該報(bào)文為IPSec協(xié)商報(bào)文,與設(shè)備 A進(jìn)行IPSec SA協(xié)商過程。
步驟406: IPSec SA協(xié)商成功,設(shè)備A和設(shè)備B建立IPSec SA信息和 IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)。
IPSec SA信息主要包括接口標(biāo)識;路徑MTU; IPSec策略名稱;IPSec 連接ID;封裝模式;隧道信息包括本端地址、對端地址;流信息包括 源地址、源端口號、源協(xié)議類型、目的地址、目的端口號、目的協(xié)議類型; 等等。
設(shè)定本實(shí)施例中,設(shè)備A和設(shè)備B協(xié)商的IPSec連接ID為50,設(shè)定設(shè) 備A、 B的組網(wǎng)如圖5所示,則本實(shí)施例中,設(shè)備A上建立的IPSec SA信 息如下
12接口標(biāo)識IPSecSA; 3各徑MTU: 1500; IPSec策略名稱"IPSec SA 1" ; IPSec連接ID: 50;封裝模式隧道;隧道信息本端地址1.1.1.1, 對端地址1.2.1.1;流信息源地址0.0.0.0/255.255.255.255,源端口號0, 協(xié)議類型IP,目的地址0.0.0.0/255.255.255.255,目的端口號0,協(xié)議 類型IP。
其中,源地址0.0.0.0/255.255.255.255,源端口號0,目的地址 0.0.0.0/255.255.255.255,目的端口號0,用于表示對所有流都加密。 設(shè)備B上建立的IPSec SA信息與設(shè)備A的不同之處如下 本端地址1.2.1.1,對端i也址1.1.1.1。
IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)包括IPSec連接ID, IPSec本端地址,IPSec對端 地址,本端IPSec SA地址,對端IPSec SA地址。 則設(shè)備A上建立的IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)如下
IPSec連接ID: 50, IPSec本端地址:1.1.1.1, IPSec對端地址:1.2.1.1, 本端IPSecSA地址:192.168.0.1,對端IPSecSA地址:192.168.0.2。 設(shè)備B上建立的IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)如下
連接標(biāo)識50, IPSec本端地址1.2.1.1, IPSec對端地址l丄l.l,本 端IPSecSA地址192.168.0.2,對端IPSecSA地址192.168.0.1。
步驟407:設(shè)備A根據(jù)自身建立的IPSec SA信息,對IPSec SA接口上 始發(fā)的報(bào)文進(jìn)行加密封裝后發(fā)送給設(shè)備B。
步驟408:設(shè)備B接收報(bào)文,對該報(bào)文進(jìn)行隧道解封裝、解密處理。
步驟409:設(shè)備A和設(shè)備B通過已建立的IPSec隧道交互動(dòng)態(tài)路由協(xié)議 報(bào)文,建立單播路由表項(xiàng)。
IPSecSA協(xié)商成功,設(shè)備A、 B之間的IPSec隧道建立。
單播路由表項(xiàng)包括目的地址/掩碼,協(xié)議類型,優(yōu)先級、路徑消耗、 下一跳、^接口標(biāo)識。
設(shè)定設(shè)備A、 B的組網(wǎng)如圖5所示,設(shè)備A上建立的單播路由表項(xiàng)為 目的地址/掩碼 10.2.1.1/24,協(xié)議類型開放最短路徑優(yōu)先(OSPF, OpenShortest Path First),優(yōu)先級10,路徑消耗:11,下一跳192.168.0.2, 接口標(biāo)識IPSec SA。
設(shè)備B上建立的單播路由表項(xiàng)為目的地址/掩碼10.1.1.1/24,協(xié)議類 型OSPF,優(yōu)先級10, ^各徑消井毛11,下一刃L 192.168.0.1,接口標(biāo)識 IPSec SA。
步驟410:設(shè)備A要轉(zhuǎn)發(fā)單播數(shù)據(jù)報(bào)文,或者要從自身的非IPSec SA 接口始發(fā)單播數(shù)據(jù)報(bào)文,在自身查找與報(bào)文的目的IP地址對應(yīng)的單播路由表項(xiàng)。
步驟411:設(shè)備A判斷是否查找到,若是,執(zhí)行步驟413;否則,執(zhí)行 步驟412。
步驟412:設(shè)備A將報(bào)文丟棄,本流程結(jié)束。
步驟413:設(shè)備A發(fā)現(xiàn)單播路由表項(xiàng)中的接口為IPSecSA,則根據(jù)單播 路由表項(xiàng)中的下一跳查找IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)。
步驟414:設(shè)備A根據(jù)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID,查找到 IPSec SA,采用該IPSec SA對報(bào)文進(jìn)行加密封裝后發(fā)送給設(shè)備B。
步驟415:設(shè)備B接收報(bào)文,對該報(bào)文進(jìn)行隧道解封裝、解密處理。
同樣,設(shè)備B要轉(zhuǎn)發(fā)單播數(shù)據(jù)報(bào)文,或者要從自身的非IPSec SA接口 始發(fā)單播數(shù)據(jù)報(bào)文時(shí),也要在自身查找與報(bào)文的目的IP地址對應(yīng)的單播路 由表項(xiàng),若未查找到,則丟棄;若查找到,且發(fā)現(xiàn)單播路由表項(xiàng)中的接口為 IPSec SA,則根據(jù)單播路由表項(xiàng)中的下一跳查找IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),然后 根據(jù)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID,查找到IPSec SA,采用該IPSec SA對報(bào)文進(jìn)行加密封裝后發(fā)送給設(shè)備A。
若設(shè)備A、B要轉(zhuǎn)發(fā)組播報(bào)文或廣播報(bào)文,則直接查找自身建立的IPSec 報(bào)文轉(zhuǎn)發(fā)表項(xiàng),根據(jù)每一個(gè)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID,分別 找到對應(yīng)的IPSec SA,分別使用每一個(gè)IPSec SA對報(bào)文進(jìn)行加密封裝,將 得到的每個(gè)報(bào)文分別通過各自的IPSec隧道轉(zhuǎn)發(fā)出去。即對于設(shè)備A,若 設(shè)備A建立了 m ( m為整數(shù)且m > 1 )條IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),則設(shè)備A會(huì)分別使用m個(gè)IPSec SA對報(bào)文進(jìn)行加密封裝,得到m個(gè)加密后的隧道報(bào)文, 將每個(gè)隧道報(bào)文通過各自的IPSec隧道發(fā)送出去。
另外,對于設(shè)備B來說,當(dāng)設(shè)備B的IPSec SA接口上始發(fā)第一個(gè)報(bào)文 時(shí),若此時(shí)設(shè)備B還未與任何設(shè)備IPSec協(xié)商成功,即,設(shè)備B上還未保存 任何IPSec SA信息,則由于設(shè)備B配置的IPSec對等體信息為設(shè)備A的IKE 本地名而非一個(gè)固定的公網(wǎng)IP地址,設(shè)備B無法觸發(fā)IPSec SA協(xié)商,因此, 此時(shí)設(shè)備B會(huì)將該報(bào)文丟棄。
從圖4所示實(shí)施例可以看出,對于設(shè)備A、 B,只要有一方具有固定公 網(wǎng)IP地址,就可建立IPSec連接。例如設(shè)備B具有固定公網(wǎng)IP地址,設(shè) 備A只具有私網(wǎng)IP地址或者其公網(wǎng)IP地址是動(dòng)態(tài)獲取的,則在設(shè)備A上 配置的IPSec對等體信息為設(shè)備B的公網(wǎng)IP地址,而在設(shè)備B上配置的 IPSec對等體信息為設(shè)備A的IKE本地名即可,由于設(shè)備A的IPSec SA接 口上啟動(dòng)了動(dòng)態(tài)路由協(xié)議,這樣,設(shè)備A的IPSec SA接口上始發(fā)的才艮文就 會(huì)觸發(fā)IPSec協(xié)商過程,促4吏設(shè)備A、 B之間建立IPSec隧道??梢姡景l(fā) 明實(shí)施例一在一端設(shè)備的公網(wǎng)地址是動(dòng)態(tài)獲取的、或者網(wǎng)絡(luò)中存在NAT設(shè) 備的情況下,都可以建立IPSec隧道。
圖6為本發(fā)明實(shí)施例二提供的IPSec報(bào)文轉(zhuǎn)發(fā)流程圖,本實(shí)施例針對的
是一對多的組網(wǎng)情形,即對于一個(gè)設(shè)備B來說,其具有多個(gè)IPSec對等體,
將設(shè)備B稱為中心設(shè)備,將設(shè)備B的各IPSec對等體稱為分設(shè)備,且,中心
設(shè)備具有固定公網(wǎng)IP地址,所有分i殳備具有一個(gè)通用IKE本地名,如圖6 所示,其具體步驟如下
步驟601:在中心設(shè)備B和每個(gè)分設(shè)備上分別新增加一個(gè)IPSec SA接 口,分別為每個(gè)IPSecSA接口分配處于同一網(wǎng)段的私網(wǎng)IP地址,將每個(gè)設(shè) 備的IPSec SA接口與公網(wǎng)接口綁定,在每個(gè)設(shè)備的IPSec SA接口上啟用動(dòng) 態(tài)路由協(xié)議,在每個(gè)分設(shè)備上配置的IPSec對等體信息為中心設(shè)備的公網(wǎng)IP 地址,在中心設(shè)備B上配置的IPSec對等體信息為分設(shè)備的通用IKE本地名, 在每個(gè)設(shè)備的IPSec SA接口上配置IPSec提議。
15所有分設(shè)備具有一個(gè)通用IKE本地名,該通用IKE本地名可以預(yù)先設(shè)定。
步驟602: —個(gè)分設(shè)備(設(shè)為設(shè)備A)的IPSec SA接口始發(fā)一個(gè)報(bào)文。
由于分設(shè)備的IPSec SA接口上啟用了動(dòng)態(tài)路由協(xié)議,因此,分設(shè)備的 IPSec SA接口上發(fā)出的報(bào)文或者為組播報(bào)文或者為廣播報(bào)文。
步驟603:分設(shè)備A判斷自身是否建立了 IPSec SA信息,若是,執(zhí)行 步驟607;否則,執(zhí)行步驟604。
步驟604:分設(shè)備A查找自身配置的IPSec對等體信息,發(fā)起一個(gè)IPSec 協(xié)商報(bào)文,報(bào)文的目的IP地址為IPSec對等體信息即中心設(shè)備B的公網(wǎng) IP地址,協(xié)議類型為IPSec。
步驟605:中心設(shè)備B接收該報(bào)文,發(fā)現(xiàn)該報(bào)文為IPSec協(xié)商報(bào)文,與 分設(shè)備A進(jìn)行IPSec SA協(xié)商過程。
步驟606: IPSec SA協(xié)商成功,分設(shè)備A和中心設(shè)備B建立IPSec SA 信息和IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)。
設(shè)定設(shè)備A、 B的組網(wǎng)如圖7所示,則設(shè)備A、 B上建立的IPSec SA信 息、IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)與步驟406相同。
步驟607:分設(shè)備A根據(jù)自身建立的IPSecSA信息,對IPSec SA接口 上始發(fā)的報(bào)文進(jìn)行加密封裝后發(fā)送給中心設(shè)備B。
步驟608:中心設(shè)備B接收報(bào)文,對該報(bào)文進(jìn)行隧道解封裝、解密處理。
步驟609:分i殳備A和中心設(shè)備B通過已建立的IPSec隧道交互動(dòng)態(tài)鴻, 由協(xié)議報(bào)文,建立單播路由表項(xiàng)。
設(shè)定設(shè)備A、 B的組網(wǎng)如圖7所示,則設(shè)備A、 B上建立的單播路由表 項(xiàng)與步驟409相同。
步驟610: —個(gè)分設(shè)備C要轉(zhuǎn)發(fā)單播數(shù)據(jù)報(bào)文,或者要從非IPSec SA 接口始發(fā)單播數(shù)據(jù)報(bào)文,在自身查找與報(bào)文的目的IP地址對應(yīng)的單播路由表項(xiàng)。
步驟611:分設(shè)備C判斷是否查找到,若是,執(zhí)行步驟613;否則,執(zhí)行步驟612。
步驟612:分設(shè)備C將報(bào)文丟棄,本流程結(jié)束。
步驟613:分設(shè)備C發(fā)現(xiàn)單播路由表項(xiàng)中的接口為IPSecSA,則根據(jù)表 項(xiàng)中的下一跳查找IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)。
步驟614:分設(shè)備C根據(jù)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID,查找 到IPSec SA,采用該IPSec SA對報(bào)文進(jìn)行加密封裝后發(fā)送給中心設(shè)備B。
步驟615:中心設(shè)備B接收報(bào)文,對該報(bào)文進(jìn)行隧道解封裝、解密處理。
可見,對于每個(gè)分設(shè)備來說,該分設(shè)備上只會(huì)建立一條IPSec報(bào)文轉(zhuǎn)發(fā) 表項(xiàng)和一條IPSec SA信息,而對于中心設(shè)備來說,針對每臺分設(shè)備,該中 心設(shè)備會(huì)建立一條IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)和一條IPSec SA信息。
當(dāng)中心設(shè)備要轉(zhuǎn)發(fā)單播數(shù)據(jù)報(bào)文,或者從自身的非IPSec SA接口上始 發(fā)單播數(shù)據(jù)報(bào)文時(shí),查找與該報(bào)文的目的IP地址對應(yīng)的單播路由表項(xiàng),若 發(fā)現(xiàn)單播路由表項(xiàng)中的接口為IPSec SA,則根據(jù)單播路由表項(xiàng)中的下一跳查 找IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),根據(jù)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID,查找 到對應(yīng)的IPSec SA信息,根據(jù)該IPSec SA信息對才艮文進(jìn)行加密封裝后發(fā)送 出去。
若中心設(shè)備和任意一個(gè)分設(shè)備要轉(zhuǎn)發(fā)組播報(bào)文或廣播報(bào)文,則直接查找 自身建立的IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),根據(jù)每一個(gè)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec 連接ID,分別找到對應(yīng)的IPSec SA,分別使用每一個(gè)IPSec SA對報(bào)文進(jìn)行 加密封裝,將得到的每個(gè)報(bào)文分別通過各自的IPSec隧道轉(zhuǎn)發(fā)出去。即對 于設(shè)備B,若設(shè)備B建立了 m (m為整數(shù)且m》1 )條IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng), 則設(shè)備B會(huì)分別使用m個(gè)IPSec SA對報(bào)文進(jìn)行加密封裝,得到m個(gè)加密后 的隧道報(bào)文,將每個(gè)隧道報(bào)文通過各自的IPSec隧道發(fā)送出去。
另外,對于中心設(shè)備B來說,當(dāng)設(shè)備B的IPSec SA接口上始發(fā)第一個(gè) 報(bào)文時(shí),若此時(shí)設(shè)備B還未與任何分設(shè)備IPSec協(xié)商成功,即,設(shè)備B上還 未保存任何IPSec SA信息,則由于設(shè)備B配置的IPSec對等體信息為設(shè)備 A的IKE本地名,設(shè)備B無法觸發(fā)IPSec SA協(xié)商,因此,此時(shí)設(shè)備B會(huì)將該報(bào)文丟棄。
從圖6所示實(shí)施例可以看出對于一對多的組網(wǎng),由于中心設(shè)備上配置 的IPSec對等體信息為所有分設(shè)備的通用IKE本地名,因此,中心設(shè)備上 只需建立一個(gè)IPSec SA4妄口即可。
從圖4、 6所示實(shí)施例可以看出本發(fā)明同樣適用于兩端設(shè)備都具有固 定的公網(wǎng)IP地址的情形,此時(shí),任意一端設(shè)備都可以發(fā)起IPSec協(xié)商過程。
圖7為本發(fā)明具體實(shí)施例二的一個(gè)應(yīng)用示例,如圖7所示,設(shè)備B為 中心設(shè)備,其固定公網(wǎng)IP地址為1.2.1.1,設(shè)備A、 C為分設(shè)備,在設(shè)備A、 B、 C上分別增加一個(gè)IPSec SA接口 ,將設(shè)備A、 B、 C的IPSecSA接口分 別與公網(wǎng)接口綁定,設(shè)定設(shè)備A、 B、 C的IPSec SA接口的IP地址為 192.168.0.1、 192.168.0.2、 192.168.0.3,在設(shè)備A、 C上配置的IPSec對等體 信息為設(shè)備B的公網(wǎng)IP地址,在設(shè)備B上配置的IPSec對等體信息為 設(shè)備A、 C的通用IKE本地名,
在設(shè)備A、 B、 C上的IPSec SA接口上啟動(dòng)動(dòng)態(tài)路由協(xié)議,則設(shè)備A的 IPSec SA接口上始發(fā)第一個(gè)組播報(bào)文或廣播報(bào)文時(shí),設(shè)備A、B開始IPSec SA 協(xié)商過程,協(xié)商成功,設(shè)備A、 B上建立IPSec SA信息和IPSec報(bào)文轉(zhuǎn)發(fā)表 項(xiàng),此后,設(shè)備A、 B交互動(dòng)態(tài)路由協(xié)議報(bào)文,建立單播路由表項(xiàng);同樣, 當(dāng)設(shè)備C的IPSec SA接口上始發(fā)第一個(gè)組播報(bào)文或廣播報(bào)文時(shí),設(shè)備C與 設(shè)備B開始IPSec SA協(xié)商過程,協(xié)商成功,設(shè)備C、 B上建立IPSec SA信 息和IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),此后,設(shè)備C、 B交互動(dòng)態(tài)路由協(xié)議報(bào)文,建立 單播路由表項(xiàng)。
i殳備A上建立的IPSec SA信息如下
接口標(biāo)識IPSec SA,路徑MTU: 1500, IPSec策略名稱"IPSec SA 1" , IPSec連接ID: 50,封裝模式隧道,隧道本端地址1.1.1.1,對端地 址1.2.1.1,流源地址0.0.0.0/255.255.255.255,源端口號0,協(xié)議類型 IP,目的地址0.0.0.0/255.255.255.255,目的端口號0,協(xié)議類型IP。
設(shè)備A上建立的IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)如下IPSec連接ID: 50, IPSec本端地址:1.1.1.1, IPSec對端地址:1.2.1.1, 本端IPSecSA地址192.168.0.1,對端IPSecSA地址192.168.0.2。
設(shè)備A上建立的單播路由表項(xiàng)如下
目的地址/掩碼10.1.1.1/24,協(xié)議號OSPF,優(yōu)先級10,路徑消耗 11,下一跳192.168.0.2, 4妄口標(biāo)識IPSec SA。
設(shè)備C上建立的IPSec SA信息如下
接口標(biāo)識IPSecSA,路徑MTU: 1500, IPSec策略名稱"IPSec SA 1" , IPSec連接ID: 51,封裝模式隧道,隧道本端地址1.3.1.1,隧道對 端地址1.2.1.1,流源地址0.0.0.0/255.255.255.255,源端口號0,協(xié)議 類型IP,目的地址0.0.0.0/255.255.255.255,目的端口號0,協(xié)議類型 IP。
設(shè)備C上建立的IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)如下
IPSec連4妄ID: 51, IPSec本端地址1.3.1.1, IPSec對端i也址1.2.1.1, 本端IPSecSA地址192.168.0.3,對端IPSecSA地址192.168.0.2。
設(shè)備C上建立的單播路由表項(xiàng)如下
目的地址/掩碼10.3.1.1/24,協(xié)議號OSPF,優(yōu)先級10,路徑消耗 11,下一跳192.168.0.2,接口標(biāo)識IPSec SA。
設(shè)備B上建立了兩條IPSecSA信息,分別為
接口標(biāo)識IPSecSA,路徑MTU: 1500, IPSec策略名稱"IPSec SA 1" , IPSec連接ID: 50,封裝模式隧道,隧道本端地址1.2.1.1,對端地 址1.1.1.1,流源地址0.0.0.0/255.255.255.255,源端口號0,協(xié)議類型 IP,目的地址0.0.0.0/255.255.255.255,目的端口號0,協(xié)議類型IP。
接口標(biāo)識IPSecSA,路徑MTU: 1500, IPSec策略名稱"IPSecSA 1" , IPSec連接ID: 51,封裝才莫式隧道,隧道本端地址1.2.1.1,對端地 址1.3.1.1,流源地址0.0.0.0/255.255.255.255,源端口號0,協(xié)議類型
19IP,目的地址0.0.0.0/255.255.255.255,目的端口號0,協(xié)議類型IP。
設(shè)備B上建立兩條IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),分別如下
IPSec連接ID: 50, IPSec本端地址:1.2.1.1, IPSec對端地址:1.1.1.1, 本端IPSecSA地址:192.168.0.2,對端IPSecSA地址192.168.0.1。
IPSec連接ID: 51, IPSec本端地址:1.2.1.1, IPSec對端地址:1.3.1.1, 本端IPSecSA地址192.168.0.2,對端IPSecSA地址192.168.0.3。
設(shè)備B上建立兩條單播路由表項(xiàng),分別如下
目的地址/掩碼10.1.1.1/24,協(xié)議號OSPF,優(yōu)先級10,路徑消耗 11,下一跳:192.168.0.1,接口標(biāo)識:IPSec SA。
目的地址/掩碼10.3.1.1/24,協(xié)議號OSPF,優(yōu)先級10,路徑消耗 11,下一跳:192.168.0.3,才妻口標(biāo)識:IPSec SA。
當(dāng)設(shè)備A要轉(zhuǎn)發(fā)一個(gè)單播數(shù)據(jù)報(bào)文時(shí),先查單播路由表項(xiàng),發(fā)現(xiàn)接口 標(biāo)識為IPSec SA,則根據(jù)單播路由表項(xiàng)中的下一跳192.168.0.2,在IPSec 報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中查找到IPSec連接ID: 50,然后使用50對應(yīng)的IPSec SA對 報(bào)文進(jìn)行加密封裝后發(fā)送出去。
當(dāng)設(shè)備B的IPSec SA接口上始發(fā)一個(gè)報(bào)文時(shí),設(shè)備B先看自身是否保 存了IPSecSA信息,若保存了,則分別采用每個(gè)IPSec SA對該報(bào)文進(jìn)行加 密封裝,然后通過各自的IPSec隧道發(fā)送出去。即若設(shè)備B上針對設(shè)備A、 C分別建立了 IPSec SA,則設(shè)備B先采用設(shè)備A對應(yīng)的IPSecSA對報(bào)文進(jìn) 行加密封裝后通過設(shè)備B、 A之間的IPSec隧道發(fā)送出去,然后采用設(shè)備C 對應(yīng)的IPSec SA對報(bào)文進(jìn)行加密封裝后通過設(shè)備B、 C之間的IPSec隧道發(fā) 送出去。
當(dāng)設(shè)備B要轉(zhuǎn)發(fā)一個(gè)單播數(shù)據(jù)報(bào)文或者從非IPSec SA接口上始發(fā)一個(gè) 單播數(shù)據(jù)報(bào)文時(shí),設(shè)備B先根據(jù)目的IP地址查找單播路由表項(xiàng),若發(fā)現(xiàn)單
20播路由表項(xiàng)中的接口為IPSec SA,則根據(jù)單播路由表項(xiàng)中的下一跳查找 IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),然后根據(jù)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID,使 用該IPSec連接ID對應(yīng)的IPSec SA對報(bào)文進(jìn)行加密封裝后發(fā)送出去。
圖8為本發(fā)明實(shí)施例提供的IPSec報(bào)文轉(zhuǎn)發(fā)裝置的組成圖,該裝置應(yīng)用在 IPSec對等體具有固定公網(wǎng)IP地址的設(shè)備上,如圖8所示,其主要包括IPSec 接口配置模塊81、 IPSec協(xié)商模塊82和報(bào)文轉(zhuǎn)發(fā)模塊83,其中
IPSec接口配置模塊81:在本設(shè)備上增加一個(gè)IPSec SA接口 ,將該IPSec SA 接口與公網(wǎng)接口綁定,為該lPSec-SA接口分配私網(wǎng)IP地址,該私網(wǎng)IP地址與 IPSec對等體的IPSec SA接口的私網(wǎng)IP地址處于同一網(wǎng)段內(nèi),在本設(shè)備上配置 的IPSec對等體信息為對端設(shè)備的固定公網(wǎng)IP地址,在本設(shè)備的IPSec SA接口 上啟用動(dòng)態(tài)路由協(xié)議,在該IPSec SA接口上配置IPSec提議,將IPSec SA接口 的配置信息發(fā)送給IPSec協(xié)商模塊82。
IPSec協(xié)商模塊82:當(dāng)發(fā)現(xiàn)IPSec SA接口上始發(fā)一個(gè)報(bào)文時(shí),判斷自身是 否建立了 IPSec SA信息,若是,分別使用各IPSec SA信息對報(bào)文進(jìn)行加密封 裝,將封裝后的各報(bào)文通過各自的IPSec隧道轉(zhuǎn)發(fā)給對端設(shè)備;否則,與對端 設(shè)備進(jìn)行IPSec SA協(xié)商,協(xié)商成功,建立IPSec SA信息和IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng), 所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)包括IPSec連接ID, IPSec本端地址,IPSec對端地 址,本端IPSec SA地址,對端IPSec SA地址,使用建立的IPSec SA信息對IPSec SA接口上始發(fā)的報(bào)文進(jìn)行加密封裝后發(fā)送給對端設(shè)備。
報(bào)文轉(zhuǎn)發(fā)模塊83:將要發(fā)送一個(gè)報(bào)文,根據(jù)IPSec協(xié)商模塊82建立的所述 IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)該報(bào)文。
如圖9所示,報(bào)文轉(zhuǎn)發(fā)模塊83可包括表項(xiàng)查找模塊831和封裝模塊832, 其中
表項(xiàng)查找模塊831:將要發(fā)送一個(gè)報(bào)文,若為單播報(bào)文,則根據(jù)報(bào)文的目 的IP地址查找單播路由表項(xiàng),根據(jù)單播路由表項(xiàng)中的下一跳查找IPSec報(bào)文轉(zhuǎn) 發(fā)表項(xiàng),將IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID發(fā)送給封裝模塊832;若為 組播或廣播報(bào)文,則將所有IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID發(fā)送給封裝模塊832。
封裝模塊832:根據(jù)表項(xiàng)查找模塊831發(fā)來的IPSec連接ID找到IPSec SA, 使用找到的IPSec SA對報(bào)文進(jìn)行加密封裝,將封裝后的報(bào)文通過對應(yīng)的IPSec 隧道發(fā)送出去。
以下為本發(fā)明實(shí)施例提供的另一 IPSec報(bào)文轉(zhuǎn)發(fā)裝置,該裝置應(yīng)用在具有 固定公網(wǎng)IP地址的設(shè)備上,其主要包括
IPSec接口配置模塊在本設(shè)備上增加一個(gè)IPSec SA接口 ,將該IPSec SA 接口與公網(wǎng)接口綁定,為該IPSec SA接口分配私網(wǎng)IP地址,該私網(wǎng)IP地址與 IPSec對等體的IPSec SA接口的私網(wǎng)IP地址處于同一網(wǎng)段內(nèi),在本設(shè)備上配置 的IPSec對等體信息為對端設(shè)備的IKE本地名,在本設(shè)備的IPSec SA接口上啟 用動(dòng)態(tài)路由協(xié)議,在IPSec SA接口上配置IPSec提議,將IPSec SA接口的配置 信息發(fā)送給IPSec協(xié)商模塊。
IPSec協(xié)商模塊接收對端設(shè)備發(fā)來的IPSec協(xié)議報(bào)文,與對端設(shè)備進(jìn)行 IPSec SA協(xié)商,協(xié)商成功,建立IPSec SA信息和IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),所述IPSec 報(bào)文轉(zhuǎn)發(fā)表項(xiàng)包括IPSec連接ID, IPSec本端地址,IPSec對端地址,本端IPSec SA地址,對端IPSec SA地址。
報(bào)文轉(zhuǎn)發(fā)模塊從IPSec SA接口上始發(fā)報(bào)文,查找本設(shè)備已建立的IPSec SA,判斷是否查找到,若是,分別采用各IPSec SA對報(bào)文加密封裝,將封 裝后的各報(bào)文通過各自的IPSec隧道發(fā)送出去;否則,丟棄該報(bào)文;將要轉(zhuǎn) 發(fā)一個(gè)單播報(bào)文或者從自身的非IPSec SA接口上始發(fā)單播數(shù)據(jù)報(bào)文時(shí),查 找與該報(bào)文的目的IP地址對應(yīng)的單播路由表項(xiàng),若發(fā)現(xiàn)單播路由表項(xiàng)中的 接口為IPSec SA,則根據(jù)單播路由表項(xiàng)中的下一跳查找IPSec協(xié)商模塊建立 的IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),根據(jù)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID,查找 到對應(yīng)的IPSec SA信息,根據(jù)該IPSec SA信息對報(bào)文進(jìn)行加密封裝后發(fā)送 出去;要轉(zhuǎn)發(fā)組播報(bào)文或廣播報(bào)文,則直接查找IPSec協(xié)商模塊建立的IPSec 報(bào)文轉(zhuǎn)發(fā)表項(xiàng),根據(jù)每一個(gè)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接ID,分別 找到對應(yīng)的IPSec SA,分別使用每一個(gè)IPSec SA對報(bào)文進(jìn)行加密封裝,將
22得到的每個(gè)報(bào)文分別通過各自的IPSec隧道轉(zhuǎn)發(fā)出去。
以上所述僅為本發(fā)明的過程及方法實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種IP安全報(bào)文轉(zhuǎn)發(fā)方法,應(yīng)用在至少包含兩個(gè)設(shè)備的組網(wǎng)中,其中,第一設(shè)備具有固定公網(wǎng)IP地址,其特征在于,在每個(gè)設(shè)備上增加一個(gè)IP安全聯(lián)盟IPSec SA接口,為每個(gè)IPSec SA接口分配處于同一網(wǎng)段的IP地址;將每個(gè)設(shè)備的IPSec SA接口與公網(wǎng)接口綁定,在非第一設(shè)備上配置的IPSec對等體信息為第一設(shè)備的公網(wǎng)IP地址,在每個(gè)設(shè)備的IPSec SA接口上啟用動(dòng)態(tài)路由協(xié)議;該方法包括非第一設(shè)備的IPSec SA接口上始發(fā)報(bào)文,與第一設(shè)備進(jìn)行IPSec SA協(xié)商,協(xié)商成功,雙方設(shè)備建立IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)至少包括IPSec連接標(biāo)識、對端設(shè)備的IPSec SA接口的IP地址;設(shè)備根據(jù)所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)對報(bào)文進(jìn)行加密封裝并轉(zhuǎn)發(fā)出去。
2、 如權(quán)利要求1所述的方法,其特征在于,所述非第一設(shè)備的IPSec SA 接口上始發(fā)報(bào)文之后、與第 一設(shè)備進(jìn)行IPSec協(xié)商之前進(jìn)一步包括非第一設(shè)備判斷自身是否已建立IPSec SA,若是,直接采用該IPSec SA對 報(bào)文加密封裝后發(fā)送出去;否則,執(zhí)行所述與第一設(shè)備進(jìn)行IPSec SA協(xié)商的動(dòng) 作。
3、 如權(quán)利要求1或2所述的方法,其特征在于,所述設(shè)備根據(jù)所述IPSec 報(bào)文轉(zhuǎn)發(fā)表項(xiàng)對報(bào)文進(jìn)行加密封裝并轉(zhuǎn)發(fā)出去包括設(shè)備要轉(zhuǎn)發(fā)一個(gè)單播報(bào)文,根據(jù)報(bào)文的目的IP地址查找單播路由表項(xiàng),將 單播路由表項(xiàng)中的下一跳與IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的對端設(shè)備的IPSec SA接口 的IP地址匹配,若匹配上,則根據(jù)IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接標(biāo)識查 找到IPSec SA,使用該IPSec SA對該報(bào)文進(jìn)行加密封裝后轉(zhuǎn)發(fā)出去;或者,設(shè)備要轉(zhuǎn)發(fā)一個(gè)組播報(bào)文或廣播報(bào)文,則根據(jù)各IPSec報(bào)文轉(zhuǎn)發(fā)表 項(xiàng)中的IPSec連接標(biāo)識查找到IPSec SA,分別使用各IPSec SA對該報(bào)文進(jìn)行加 密封裝,將各封裝后的報(bào)文通過各自的IPSec隧道轉(zhuǎn)發(fā)出去。
4、如權(quán)利要求1或2所述的方法,其特征在于,所述非第一設(shè)備不具有固定公網(wǎng)IP地址,且所有非第一設(shè)備具有一個(gè)通用IKE本地名,所述方法進(jìn)一步包括在第一設(shè)備上配置IPSec對等體信息為所有非第一 設(shè)備的通用IKE本地名。
5、 如權(quán)利要求1或2所述的方法,其特征在于,所述組網(wǎng)為一對多的組網(wǎng), 所述第一設(shè)備為中心設(shè)備。
6、 如權(quán)利要求5所述的方法,其特征在于,所述方法進(jìn)一步包括中心設(shè) 備的IPSec SA接口上始發(fā)報(bào)文,在自身查找已建立的IPSec SA,判斷是否查找 到,若是,分別采用各IPSecSA對報(bào)文加密封裝,將封裝后的各報(bào)文通過各自 的IPSec隧道發(fā)送出去;否則,丟棄該才艮文。
7、 如權(quán)利要求1或2所述的方法,其特征在于,所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng) 進(jìn)一步包括IPSec本端地址、IPSec對端地址、本端IPSec SA地址,其中,IPSec 本端地址為本"i殳備的/仝網(wǎng)IP;也址,IPSec對端地址為對端i殳備的爿厶網(wǎng)IPi也址, 本端IPSec SA地址為本設(shè)備的IPSec SA接口的IP地址。
8、 一種IPSec報(bào)文轉(zhuǎn)發(fā)裝置,應(yīng)用在IPSec對等體具有固定公網(wǎng)IP地址的 設(shè)備上,其特征在于,該裝置包括IPSec接口配置模塊,在本設(shè)備上增加一個(gè)IPSecSA接口,將該IPSec SA 接口與公網(wǎng)接口綁定,該IPSec SA接口的IP地址與IPSec對等體的IPSec SA 接口的IP地址處于同一網(wǎng)段內(nèi),在本設(shè)備上配置的IPSec對等體信息為對端設(shè) 備的固定公網(wǎng)IP地址,在本設(shè)備的IPSec SA接口上啟用動(dòng)態(tài)路由協(xié)議;IPSec協(xié)商模塊,發(fā)現(xiàn)IPSec SA接口上始發(fā)報(bào)文,與對端設(shè)備進(jìn)行IPSec SA 協(xié)商,協(xié)商成功,建立IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),所述IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)至少包 括IPSec連接標(biāo)識、對端設(shè)備的IPSec SA接口的IP地址;報(bào)文轉(zhuǎn)發(fā)模塊,將要發(fā)送一個(gè)報(bào)文,根據(jù)IPSec協(xié)商模塊建立的所述IPSec 報(bào)文對報(bào)文進(jìn)行加密封裝并轉(zhuǎn)發(fā)出去。
9、 如權(quán)利要求8所述的裝置,其特征在于,所述報(bào)文轉(zhuǎn)發(fā)模塊包括 表項(xiàng)查找模塊,將要發(fā)送一個(gè)報(bào)文,若為單播報(bào)文,則根據(jù)報(bào)文的目的IP地址查找單播路由表項(xiàng),將單播路由表項(xiàng)中的下一跳與IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的對端設(shè)備的IPSec SA接口的IP地址匹配,若匹配上,將IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng) 中的IPSec連接標(biāo)識發(fā)送給封裝模塊;若為組播或廣播報(bào)文,則將所有IPSec 報(bào)文轉(zhuǎn)發(fā)表項(xiàng)中的IPSec連接標(biāo)識發(fā)送給封裝模塊;封裝模塊,根據(jù)IPSec連接標(biāo)識找到IPSec SA,使用找到的IPSec SA對報(bào) 文進(jìn)行加密封裝,將封裝后的報(bào)文通過對應(yīng)的IPSec隧道發(fā)送出去。
10、 一種IPSec報(bào)文轉(zhuǎn)發(fā)裝置,應(yīng)用在具有固定公網(wǎng)IP地址的設(shè)備上,其 特征在于,該裝置包括IPSec接口配置模塊,在本設(shè)備上增加一個(gè)IPSec SA接口 ,將該IPSec SA 接口與公網(wǎng)接口綁定,該IPSec SA接口的IP地址與IPSec對等體的IPSec SA 接口的IP地址處于同一網(wǎng)段內(nèi),在本設(shè)備上配置的IPSec對等體信息為對端設(shè) 備的IKE本地名,在本設(shè)備的IPSec SA接口上啟用動(dòng)態(tài)路由協(xié)議;IPSec協(xié)商模塊,接收對端設(shè)備發(fā)來的IPSec協(xié)議4艮文,與對端設(shè)備進(jìn)行 IPSec SA協(xié)商,協(xié)商成功,建立IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng),所述IPSec報(bào)文轉(zhuǎn)發(fā)表 項(xiàng)至少包括IPSec連接標(biāo)識、對端設(shè)備的IPSec SA接口的IP地址;報(bào)文轉(zhuǎn)發(fā)模塊,將要發(fā)送一個(gè)報(bào)文,根據(jù)IPSec協(xié)商模塊建立的所述IPSec 報(bào)文轉(zhuǎn)發(fā)表項(xiàng)對報(bào)文進(jìn)行加密封裝并轉(zhuǎn)發(fā)出去。
11、 如權(quán)利要求IO所述的裝置,其特征在于,所述報(bào)文轉(zhuǎn)發(fā)模塊進(jìn)一步用 于,從IPSec SA接口上始發(fā)報(bào)文,查找本設(shè)備已建立的IPSec SA,判斷是否查 找到,若是,分別采用各IPSecSA對報(bào)文加密封裝,將封裝后的各報(bào)文通過各 自的IPSec隧道發(fā)送出去;否則,丟棄該凈艮文。
全文摘要
本發(fā)明為IP安全報(bào)文轉(zhuǎn)發(fā)方法及裝置。應(yīng)用在至少包含兩個(gè)設(shè)備的組網(wǎng),第一設(shè)備具有固定公網(wǎng)IP地址,在每個(gè)設(shè)備上增加IPSec SA接口,為每個(gè)IPSec SA接口分配同一網(wǎng)段的私網(wǎng)IP地址;將每個(gè)IPSec SA接口與公網(wǎng)接口綁定,在非第一設(shè)備上配置的IPSec對等體信息為第一設(shè)備的公網(wǎng)IP地址,在每個(gè)IPSec SA接口上啟用動(dòng)態(tài)路由協(xié)議;非第一設(shè)備的IPSec SA接口上始發(fā)報(bào)文,與第一設(shè)備進(jìn)行IPSec SA協(xié)商,雙方建立包括IPSec連接標(biāo)識、對端設(shè)備的IPSec SA接口的IP地址的IPSec報(bào)文轉(zhuǎn)發(fā)表項(xiàng);設(shè)備根據(jù)所述轉(zhuǎn)發(fā)表項(xiàng)對報(bào)文進(jìn)行加密封裝。本發(fā)明擴(kuò)大了IPSec隧道的應(yīng)用范圍。
文檔編號H04L12/56GK101499972SQ200910080230
公開日2009年8月5日 申請日期2009年3月16日 優(yōu)先權(quán)日2009年3月16日
發(fā)明者任俊峰, 迪 周 申請人:杭州華三通信技術(shù)有限公司