Ip安全报文转发方法及装置的制作方法

文档序号:7699287阅读:160来源:国知局
专利名称:Ip安全报文转发方法及装置的制作方法
技术领域
本发明涉及IP安全技术领域,具体涉及IP安全报文转发方法及装置。
背景技术
IP安全(IPSec, IP Security )是国际互联网工程工作组(IETF, Internet Engineering Task Force )制定的三层隧道加密协议,它为因特网上传输的数 据提供了高质量、可互搡作、基于密码学的安全保证。IPSec策略启用在实 际接口上,对该接口上转发的特定报文进行加密和封装,并发送到IPSec对 等体(IKE-Peer) , IPSec对等体对该报文进行解封装和解密,再将该报文 按照目的IP进行转发。
IPSec基本配置的实现如下通过IPSec,对等体之间即设备及其对端 能够对不同的数据流实施不同的安全保护如认证、加密或两者同时使用, 数据流的区分通过配置访问控制列表(ACL, Access Control List)来进行; 安全保护所用到的安全协议、认证算法和加密算法、封装模式等通过配置 IPSec提议来进行;数据流和IPSec提议的关联即定义对何种数据流实施 何种保护、安全联盟(SA, Security Association)的协商方式、对等体IP地 址的设置即保护路径的起/终点、所需要的密钥和SA的生存周期等通过配 置安全策略来进行;最后在设备接口上实施安全策略即完成了 IPSec的配置, 若通过软件实现,则在接口上应用安全策略即可;若通过加密卡实现,则除 了在接口上应用安全策略,还需将安全策略绑定到加密卡上。
图1给出了基于ACL的IPSec组网图,如图l所示,在两端设备设 备A、 B的公网接口上配置IPSec策略,IPSec策略包含3个要素,IPSec对 等体、加密算法、加密ACL。对于设备A的公网接口上转发或者始发的报文,首先将该报文与已有的IPSEC SA匹配,若匹配到,则使用该IPSec SA 对报文进行加密封装发送到设备B;若未匹配到,则将该报文与加密ACL 匹配,若匹配上,则设备A向设备B发起IPSecSA协商,IPSecSA协商成 功,IPSsec SA建立,使用新建立的IPSec SA对该才艮文进行加密封装后送到 对端设备A。
为保证SA的成功建立,需要将IPSec对等体上的ACL镜像配置,即保 证两端要保护的数据流范围是镜像的。图2给出了一个镜像配置ACL的示 例图。在建立IPSec SA时,对于要加密的流两端最后要协商成镜像方式, 这样,对于组播和广播报文都不可能建立IPSecSA。因为对于组播或广播 报文,其目的地址为组播或广播地址,若要ACL镜像配置,则对端设备的 ACL配置的源地址需要为组播或广播地址,这种报文实际上是不存在的; 另外,对于组播或广播报文,即使两端设备完成了 ACL镜像配置,组播或 广播报文被送到了对端设备,但是由于两端设备的公网接口不在同一网段, 无法建立邻居关系,因此无法实现路由,也就导致IPSec隧道两端不能启用 动态路由和组播协议。
思科(CISCO )公司提出的静态虛拟隧道接口 ( VTI, Virtual Tunnel Interface )使用隧道接口 , VTI上配置了本端和对端的公网IP地址、加密算 法,并指定接口的封装方式为IPSec封装,设备使用隧道接口上配置的对端 的公网IP地址作为IPSec对等体的地址发起IPSec连接。图3为静态VTI 组网图,如图3所示,设备A的隧道接口上配置的对端公网IP地址为1.2.1.1, 则设备A的VTI上有报文始发或者转发时,检查是否有与VTI上配置的对 端公网IP地址对应的IPSec SA,若有,则使用该IPSec SA对该报文进行加 密封装;若没有,则向设备B发起IPSec SA协商,协商成功IPSec SA建立, 设备A使用建立的IPSEC SA对报文进行加密封装后发送到设备B。
设备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的静态VTI为隧道接口 ,两端设备的VTI的IP地址可以配 置在同 一个网段中, 一个设备的VTI上的任何报文都会通过IPSec隧道送到 对端设备的VTI上,这样, 一个VTI上发出的组播或广播报文也会送到对 端设备的VTI,因此,两端设备能建立起动态路由邻居关系,实现路由。
由于CISCO的静态VTI方式继承了 GRE的思想,隧道接口上配置的对 端地址只能是对端设备的公网IP地址,就导致了如下缺点
一、 如果一端的公网IP地址是动态获取的,则该方法不能使用;同时, 如果运营商网络中有网络地址转换(NAT , Network Address Transfering )设 备存在时,该方法也不能使用。
二、 隧道接口上只能配置一个公网IP地址,因此该方法不支持一对多 的组网,如果企业有多个分支需要通过虚拟专网(VPN, Virtual Private Network)接入到总部,则总部需要建立多个隧道接口进行--对应。

发明内容
本发明提供IPSec报文转发方法及装置,以扩大IPSec隧道的应用范围。 本发明的技术方案是这样实现的
一种IP安全报文转发方法,应用在至少包含两个设备的组网中,其中,第 一设备具有固定公网IP地址,在每个设备上增加一个IP安全联盟IPSec SA接 口 ,为每个IPSec SA接口分配处于同一网段的IP地址;将每个设备的IPSec SA 接口与公网接口绑定,在非第一设备上配置的IPSec对等体信息为第一设备的 公网IP地址,在每个设备的IPSec SA接口上启用动态路由协议;该方法包括
非第 一设备的IPSec SA接口上始发报文,与第一设备进行IPSec SA协商, 协商成功,双方设备建立IPSec报文转发表项,所述IPSec报文转发表项至少 包括IPSec连接标识、对端设备的IPSec SA接口的IP地址;
设备根据所述IPSec报文转发表项对报文进行加密封装并转发出去。
所述非第 一设备的IPSec SA接口上始发报文之后、与第 一设备进行IPSec 协商之前进一步包括
非第一设备判断自身是否已建立IPSec SA,若是,直接采用该IPSec SA对 报文加密封装后发送出去;否则,执行所述与第一设备进行IPSec SA协商的动 作。
所述设备根据所述IPSec报文转发表项对报文进行加密封装并转发出去包

设备要转发一个单播报文,根据报文的目的IP地址查找单播路由表项,将 单播路由表项中的下一跳与IPSec报文转发表项中的对端设备的IPSec SA接口 的IP地址匹配,若匹配上,则冲艮据IPSec才艮文转发表项中的IPSec连接标识查 找到IPSec SA,使用该IPSec SA对该报文进行加密封装后转发出去;
或者,设备要转发一个组播报文或广播报文,则根据各IPSec报文转发表 项中的IPSec连接标识查找到IPSec SA,分别使用各IPSec SA对该报文进行加 密封装,将各封装后的报文通过各自的IPSec隧道转发出去。
8所述非第一设备不具有固定公网IP地址,且所有非第一设备具有一个通用
IKE本地名,
所述方法进一步包括在第一设备上配置IPSec对等体信息为所有非第一 设备的通用IKE本地名。
所述组网为 一对多的组网,所述第一设备为中心设备。
所述方法进一步包括中心设备的IPSec SA接口上始发报文,在自身查找 已建立的IPSec SA,判断是否查找到,若是,分别采用各IPSec SA对报文加密 封装,将封装后的各报文通过各自的IPSec隧道发送出去;否则,丢弃该报文。
所述IPSec报文转发表项进一步包括IPSec本端地址、IPSec对端地址、 本端IPSec SA地址,其中,IPSec本端地址为本设备的公网IP地址,IPSec对 端地址为对端设备的公网IP地址,本端IPSec SA地址为本设备的IPSec SA接 口的IP地址。
一种IPSec报文转发装置,应用在IPSec对等体具有固定公网IP地址的设 备上,该装置包括
IPSec接口配置才莫块,在本设备上增加一个IPSec SA接口 ,将该IPSec SA 接口与公网接口绑定,该IPSec SA接口的IP地址与IPSec对等体的IPSec SA 接口的IP地址处于同 一网段内,在本设备上配置的IPSec对等体信息为对端设 备的固定公网IP地址,在本设备的IPSec SA接口上启用动态路由协议;
IPSec协商模块,发现IPSec SA接口上始发报文,与对端设备进行IPSec SA 协商,协商成功,建立IPSec报文转发表项,所述IPSec报文转发表项至少包 括IPSec连接标识、对端设备的IPSec SA接口的IP地址;
报文转发模块,将要发送一个报文,根据IPSec协商模块建立的所述IPSec 报文对报文进行加密封装并转发出去。
所述报文转发模块包括
表项查找模块,将要发送一个报文,若为单播报文,则根据报文的目的IP 地址查找单播路由表项,将单播路由表项中的下一跳与IPSec报文转发表项中 的对端设备的IPSec SA接口的IP地址匹配,若匹配上,将IPSec报文转发表项
9中的IPSec连接标识发送给封装模块;若为组播或广播报文,则将所有IPSec 报文转发表项中的IPSec连接标识发送给封装模块;
封装模块,根据IPSec连接标识找到IPSec SA,使用找到的IPSec SA对报 文进行加密封装,将封装后的报文通过对应的IPSec隧道发送出去。
一种IPSec报文转发装置,应用在具有固定公网IP地址的设备上,该装置 包括
IPSec接口配置模块,在本设备上增加一个IPSec SA接口 ,将该IPSec SA 接口与公网接口绑定,该IPSec SA接口的IP地址与IPSec对等体的IPSec SA 接口的IP地址处于同一网段内,在本设备上配置的IPSec对等体信息为对端设 备的IKE本地名,在本设备的IPSec SA接口上启用动态路由协议;
IPSec协商模块,接收对端设备发来的IPSec协议报文,与对端设备进行 IPSec SA协商,协商成功,建立IPSec报文转发表项,所述IPSec报文转发表 项至少包括IPSec连接标识、对端设备的IPSec SA接口的IP地址;
报文转发模块,将要发送一个报文,根据IPSec协商模块建立的所述IPSec 报文转发表项对报文进行加密封装并转发出去。
所述报文转发模块进一步用于,从IPSec SA接口上始发报文,查找本 设备已建立的IPSec SA,判断是否查找到,若是,分别采用各IPSec SA对 报文加密封装,将封装后的各报文通过各自的IPSec隧道发送出去;否则, 丟弃该纟艮文。
与现有技术相比,本发明对于至少包含两个设备且第 一设备具有固定公
网IP地址的组网,在每个设备上增加一个IPSec SA接口,将每个设备的
IPSec SA接口与公网接口绑定,为每个IPSec SA接口分配处于同 一 网段的
私网IP地址;在非第一设备上配置的IPSec对等体信息为第一设备的公网
IP地址,在每个设备的IPSec SA接口上启用动态路由协议;当非第一设备
的IPSec SA接口上始发报文时,与第一设备进行IPSec SA协商,协商成功,
双方设备建立IPSec报文转发表项,所述IPSec报文转发表项至少包括IPSec
连接标识、对端设备的IPSec SA接口的IP地址;设备根据所述IPSec报文转发表项转发报文。本发明适用于动态路由协议和组播协议,且对于一端设 备的公网IP地址是动态荻取的或者网络中包含NAT设备的情况,都可以建
立IPSec连接,扩大了 IPSec隧道的应用范围;
另外,本发明中,将具有公网IP地址的设备上的IPSec对等体信息配 置为对端设备的通用IKE本地名,这样,对于一对多的组网,只需在中心设 备上配置一个IPSec SA接口即可。


图1为现有的基于ACL的IPSec组网图2为现有的镜像配置ACL的示例图3为现有的静态VTI的组网图4为本发明实施例一提供的IPSec报文转发流程图5为本发明实施例一的应用示例图6为本发明实施例二提供的IPSec报文转发流程图7为本发明实施例二的应用示例图8为本发明实施例提供的IPSec报文转发装置的组成图9为本发明实施例提供的报文转发模块的组成图。
具体实施例方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。 图4为本发明实施例一提供的IPSec报文转发流程图,本实施例针对的 是一对一的组网情形,即对于一个设备A来说,其只有一个IPSec对等体 设备B,且,设定设备B具有固定公网IP地址,如图4所示,其具体步骤 如下
步骤401:分别在设备A、 B上新增加一个IPSec SA接口 ,分别为设备 A、 B的IPSec SA接口分配处于同一网段的私网IP地址,将设备A、 B的 IPSec SA接口与公网接口绑定,在设备A、 B的IPSec SA接口上启用动态路由协议,在设备A上配置IPSec对等体信息为设备B的公网IP地址,在 设备B上配置IPSec对等体信息为设备A的IKE本地名(IKE Local Name ), 在设备A、 B的IPSec SA接口上配置IPSec提议。
IPSec SA接口实际上为一个虚拟接口 ,将其与公网接口绑定后,公网接 口接收到的或者要发送的报文都会转到该IPSec SA接口上来处理。
图5为本发明实施例一的一个应用示例,如图5所示,设定设备B的 公网IP地址为1.2.1.1,设定设备A的IPSec SA接口的IP地址为192.168.0.1, 设定设备B的IPSec SA接口的IP地址为192.168.0.2。
步骤402:设备A的IPSecSA接口始发一个报文。
由于设备A的IPSec SA接口启用了动态路由协议,因此,设备A的IPSec SA接口上始发的报文或者为组播报文或者为广播报文。
步骤403:设备A判断自身是否建立了 IPSec SA信息,若是,执行步 骤407;否则,执行步骤404。
步骤404:设备A查找自身配置的IPSec对等体信息,发起一个IPSec 协商报文,该报文的目的IP地址为IPSec对等体信息即设备B的公网IP 地址。
步骤405:设备B接收该报文,发现该报文为IPSec协商报文,与设备 A进行IPSec SA协商过程。
步骤406: IPSec SA协商成功,设备A和设备B建立IPSec SA信息和 IPSec报文转发表项。
IPSec SA信息主要包括接口标识;路径MTU; IPSec策略名称;IPSec 连接ID;封装模式;隧道信息包括本端地址、对端地址;流信息包括 源地址、源端口号、源协议类型、目的地址、目的端口号、目的协议类型; 等等。
设定本实施例中,设备A和设备B协商的IPSec连接ID为50,设定设 备A、 B的组网如图5所示,则本实施例中,设备A上建立的IPSec SA信 息如下
12接口标识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, 协议类型IP,目的地址0.0.0.0/255.255.255.255,目的端口号0,协议 类型IP。
其中,源地址0.0.0.0/255.255.255.255,源端口号0,目的地址 0.0.0.0/255.255.255.255,目的端口号0,用于表示对所有流都加密。 设备B上建立的IPSec SA信息与设备A的不同之处如下 本端地址1.2.1.1,对端i也址1.1.1.1。
IPSec报文转发表项包括IPSec连接ID, IPSec本端地址,IPSec对端 地址,本端IPSec SA地址,对端IPSec SA地址。 则设备A上建立的IPSec报文转发表项如下
IPSec连接ID: 50, IPSec本端地址:1.1.1.1, IPSec对端地址:1.2.1.1, 本端IPSecSA地址:192.168.0.1,对端IPSecSA地址:192.168.0.2。 设备B上建立的IPSec报文转发表项如下
连接标识50, IPSec本端地址1.2.1.1, IPSec对端地址l丄l.l,本 端IPSecSA地址192.168.0.2,对端IPSecSA地址192.168.0.1。
步骤407:设备A根据自身建立的IPSec SA信息,对IPSec SA接口上 始发的报文进行加密封装后发送给设备B。
步骤408:设备B接收报文,对该报文进行隧道解封装、解密处理。
步骤409:设备A和设备B通过已建立的IPSec隧道交互动态路由协议 报文,建立单播路由表项。
IPSecSA协商成功,设备A、 B之间的IPSec隧道建立。
单播路由表项包括目的地址/掩码,协议类型,优先级、路径消耗、 下一跳、^接口标识。
设定设备A、 B的组网如图5所示,设备A上建立的单播路由表项为 目的地址/掩码 10.2.1.1/24,协议类型开放最短路径优先(OSPF, OpenShortest Path First),优先级10,路径消耗:11,下一跳192.168.0.2, 接口标识IPSec SA。
设备B上建立的单播路由表项为目的地址/掩码10.1.1.1/24,协议类 型OSPF,优先级10, ^各径消井毛11,下一刃L 192.168.0.1,接口标识 IPSec SA。
步骤410:设备A要转发单播数据报文,或者要从自身的非IPSec SA 接口始发单播数据报文,在自身查找与报文的目的IP地址对应的单播路由表项。
步骤411:设备A判断是否查找到,若是,执行步骤413;否则,执行 步骤412。
步骤412:设备A将报文丢弃,本流程结束。
步骤413:设备A发现单播路由表项中的接口为IPSecSA,则根据单播 路由表项中的下一跳查找IPSec报文转发表项。
步骤414:设备A根据IPSec报文转发表项中的IPSec连接ID,查找到 IPSec SA,采用该IPSec SA对报文进行加密封装后发送给设备B。
步骤415:设备B接收报文,对该报文进行隧道解封装、解密处理。
同样,设备B要转发单播数据报文,或者要从自身的非IPSec SA接口 始发单播数据报文时,也要在自身查找与报文的目的IP地址对应的单播路 由表项,若未查找到,则丢弃;若查找到,且发现单播路由表项中的接口为 IPSec SA,则根据单播路由表项中的下一跳查找IPSec报文转发表项,然后 根据IPSec报文转发表项中的IPSec连接ID,查找到IPSec SA,采用该IPSec SA对报文进行加密封装后发送给设备A。
若设备A、B要转发组播报文或广播报文,则直接查找自身建立的IPSec 报文转发表项,根据每一个IPSec报文转发表项中的IPSec连接ID,分别 找到对应的IPSec SA,分别使用每一个IPSec SA对报文进行加密封装,将 得到的每个报文分别通过各自的IPSec隧道转发出去。即对于设备A,若 设备A建立了 m ( m为整数且m > 1 )条IPSec报文转发表项,则设备A会分别使用m个IPSec SA对报文进行加密封装,得到m个加密后的隧道报文, 将每个隧道报文通过各自的IPSec隧道发送出去。
另外,对于设备B来说,当设备B的IPSec SA接口上始发第一个报文 时,若此时设备B还未与任何设备IPSec协商成功,即,设备B上还未保存 任何IPSec SA信息,则由于设备B配置的IPSec对等体信息为设备A的IKE 本地名而非一个固定的公网IP地址,设备B无法触发IPSec SA协商,因此, 此时设备B会将该报文丢弃。
从图4所示实施例可以看出,对于设备A、 B,只要有一方具有固定公 网IP地址,就可建立IPSec连接。例如设备B具有固定公网IP地址,设 备A只具有私网IP地址或者其公网IP地址是动态获取的,则在设备A上 配置的IPSec对等体信息为设备B的公网IP地址,而在设备B上配置的 IPSec对等体信息为设备A的IKE本地名即可,由于设备A的IPSec SA接 口上启动了动态路由协议,这样,设备A的IPSec SA接口上始发的才艮文就 会触发IPSec协商过程,促4吏设备A、 B之间建立IPSec隧道。可见,本发 明实施例一在一端设备的公网地址是动态获取的、或者网络中存在NAT设 备的情况下,都可以建立IPSec隧道。
图6为本发明实施例二提供的IPSec报文转发流程图,本实施例针对的
是一对多的组网情形,即对于一个设备B来说,其具有多个IPSec对等体,
将设备B称为中心设备,将设备B的各IPSec对等体称为分设备,且,中心
设备具有固定公网IP地址,所有分i殳备具有一个通用IKE本地名,如图6 所示,其具体步骤如下
步骤601:在中心设备B和每个分设备上分别新增加一个IPSec SA接 口,分别为每个IPSecSA接口分配处于同一网段的私网IP地址,将每个设 备的IPSec SA接口与公网接口绑定,在每个设备的IPSec SA接口上启用动 态路由协议,在每个分设备上配置的IPSec对等体信息为中心设备的公网IP 地址,在中心设备B上配置的IPSec对等体信息为分设备的通用IKE本地名, 在每个设备的IPSec SA接口上配置IPSec提议。
15所有分设备具有一个通用IKE本地名,该通用IKE本地名可以预先设定。
步骤602: —个分设备(设为设备A)的IPSec SA接口始发一个报文。
由于分设备的IPSec SA接口上启用了动态路由协议,因此,分设备的 IPSec SA接口上发出的报文或者为组播报文或者为广播报文。
步骤603:分设备A判断自身是否建立了 IPSec SA信息,若是,执行 步骤607;否则,执行步骤604。
步骤604:分设备A查找自身配置的IPSec对等体信息,发起一个IPSec 协商报文,报文的目的IP地址为IPSec对等体信息即中心设备B的公网 IP地址,协议类型为IPSec。
步骤605:中心设备B接收该报文,发现该报文为IPSec协商报文,与 分设备A进行IPSec SA协商过程。
步骤606: IPSec SA协商成功,分设备A和中心设备B建立IPSec SA 信息和IPSec报文转发表项。
设定设备A、 B的组网如图7所示,则设备A、 B上建立的IPSec SA信 息、IPSec报文转发表项与步骤406相同。
步骤607:分设备A根据自身建立的IPSecSA信息,对IPSec SA接口 上始发的报文进行加密封装后发送给中心设备B。
步骤608:中心设备B接收报文,对该报文进行隧道解封装、解密处理。
步骤609:分i殳备A和中心设备B通过已建立的IPSec隧道交互动态鴻, 由协议报文,建立单播路由表项。
设定设备A、 B的组网如图7所示,则设备A、 B上建立的单播路由表 项与步骤409相同。
步骤610: —个分设备C要转发单播数据报文,或者要从非IPSec SA 接口始发单播数据报文,在自身查找与报文的目的IP地址对应的单播路由表项。
步骤611:分设备C判断是否查找到,若是,执行步骤613;否则,执行步骤612。
步骤612:分设备C将报文丢弃,本流程结束。
步骤613:分设备C发现单播路由表项中的接口为IPSecSA,则根据表 项中的下一跳查找IPSec报文转发表项。
步骤614:分设备C根据IPSec报文转发表项中的IPSec连接ID,查找 到IPSec SA,采用该IPSec SA对报文进行加密封装后发送给中心设备B。
步骤615:中心设备B接收报文,对该报文进行隧道解封装、解密处理。
可见,对于每个分设备来说,该分设备上只会建立一条IPSec报文转发 表项和一条IPSec SA信息,而对于中心设备来说,针对每台分设备,该中 心设备会建立一条IPSec报文转发表项和一条IPSec SA信息。
当中心设备要转发单播数据报文,或者从自身的非IPSec SA接口上始 发单播数据报文时,查找与该报文的目的IP地址对应的单播路由表项,若 发现单播路由表项中的接口为IPSec SA,则根据单播路由表项中的下一跳查 找IPSec报文转发表项,根据IPSec报文转发表项中的IPSec连接ID,查找 到对应的IPSec SA信息,根据该IPSec SA信息对才艮文进行加密封装后发送 出去。
若中心设备和任意一个分设备要转发组播报文或广播报文,则直接查找 自身建立的IPSec报文转发表项,根据每一个IPSec报文转发表项中的IPSec 连接ID,分别找到对应的IPSec SA,分别使用每一个IPSec SA对报文进行 加密封装,将得到的每个报文分别通过各自的IPSec隧道转发出去。即对 于设备B,若设备B建立了 m (m为整数且m》1 )条IPSec报文转发表项, 则设备B会分别使用m个IPSec SA对报文进行加密封装,得到m个加密后 的隧道报文,将每个隧道报文通过各自的IPSec隧道发送出去。
另外,对于中心设备B来说,当设备B的IPSec SA接口上始发第一个 报文时,若此时设备B还未与任何分设备IPSec协商成功,即,设备B上还 未保存任何IPSec SA信息,则由于设备B配置的IPSec对等体信息为设备 A的IKE本地名,设备B无法触发IPSec SA协商,因此,此时设备B会将该报文丢弃。
从图6所示实施例可以看出对于一对多的组网,由于中心设备上配置 的IPSec对等体信息为所有分设备的通用IKE本地名,因此,中心设备上 只需建立一个IPSec SA4妄口即可。
从图4、 6所示实施例可以看出本发明同样适用于两端设备都具有固 定的公网IP地址的情形,此时,任意一端设备都可以发起IPSec协商过程。
图7为本发明具体实施例二的一个应用示例,如图7所示,设备B为 中心设备,其固定公网IP地址为1.2.1.1,设备A、 C为分设备,在设备A、 B、 C上分别增加一个IPSec SA接口 ,将设备A、 B、 C的IPSecSA接口分 别与公网接口绑定,设定设备A、 B、 C的IPSec SA接口的IP地址为 192.168.0.1、 192.168.0.2、 192.168.0.3,在设备A、 C上配置的IPSec对等体 信息为设备B的公网IP地址,在设备B上配置的IPSec对等体信息为 设备A、 C的通用IKE本地名,
在设备A、 B、 C上的IPSec SA接口上启动动态路由协议,则设备A的 IPSec SA接口上始发第一个组播报文或广播报文时,设备A、B开始IPSec SA 协商过程,协商成功,设备A、 B上建立IPSec SA信息和IPSec报文转发表 项,此后,设备A、 B交互动态路由协议报文,建立单播路由表项;同样, 当设备C的IPSec SA接口上始发第一个组播报文或广播报文时,设备C与 设备B开始IPSec SA协商过程,协商成功,设备C、 B上建立IPSec SA信 息和IPSec报文转发表项,此后,设备C、 B交互动态路由协议报文,建立 单播路由表项。
i殳备A上建立的IPSec SA信息如下
接口标识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,协议类型 IP,目的地址0.0.0.0/255.255.255.255,目的端口号0,协议类型IP。
设备A上建立的IPSec报文转发表项如下IPSec连接ID: 50, IPSec本端地址:1.1.1.1, IPSec对端地址:1.2.1.1, 本端IPSecSA地址192.168.0.1,对端IPSecSA地址192.168.0.2。
设备A上建立的单播路由表项如下
目的地址/掩码10.1.1.1/24,协议号OSPF,优先级10,路径消耗 11,下一跳192.168.0.2, 4妄口标识IPSec SA。
设备C上建立的IPSec SA信息如下
接口标识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,协议 类型IP,目的地址0.0.0.0/255.255.255.255,目的端口号0,协议类型 IP。
设备C上建立的IPSec报文转发表项如下
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。
设备C上建立的单播路由表项如下
目的地址/掩码10.3.1.1/24,协议号OSPF,优先级10,路径消耗 11,下一跳192.168.0.2,接口标识IPSec SA。
设备B上建立了两条IPSecSA信息,分别为
接口标识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,协议类型 IP,目的地址0.0.0.0/255.255.255.255,目的端口号0,协议类型IP。
接口标识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,协议类型
19IP,目的地址0.0.0.0/255.255.255.255,目的端口号0,协议类型IP。
设备B上建立两条IPSec报文转发表项,分别如下
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。
设备B上建立两条单播路由表项,分别如下
目的地址/掩码10.1.1.1/24,协议号OSPF,优先级10,路径消耗 11,下一跳:192.168.0.1,接口标识:IPSec SA。
目的地址/掩码10.3.1.1/24,协议号OSPF,优先级10,路径消耗 11,下一跳:192.168.0.3,才妻口标识:IPSec SA。
当设备A要转发一个单播数据报文时,先查单播路由表项,发现接口 标识为IPSec SA,则根据单播路由表项中的下一跳192.168.0.2,在IPSec 报文转发表项中查找到IPSec连接ID: 50,然后使用50对应的IPSec SA对 报文进行加密封装后发送出去。
当设备B的IPSec SA接口上始发一个报文时,设备B先看自身是否保 存了IPSecSA信息,若保存了,则分别采用每个IPSec SA对该报文进行加 密封装,然后通过各自的IPSec隧道发送出去。即若设备B上针对设备A、 C分别建立了 IPSec SA,则设备B先采用设备A对应的IPSecSA对报文进 行加密封装后通过设备B、 A之间的IPSec隧道发送出去,然后采用设备C 对应的IPSec SA对报文进行加密封装后通过设备B、 C之间的IPSec隧道发 送出去。
当设备B要转发一个单播数据报文或者从非IPSec SA接口上始发一个 单播数据报文时,设备B先根据目的IP地址查找单播路由表项,若发现单
20播路由表项中的接口为IPSec SA,则根据单播路由表项中的下一跳查找 IPSec报文转发表项,然后根据IPSec报文转发表项中的IPSec连接ID,使 用该IPSec连接ID对应的IPSec SA对报文进行加密封装后发送出去。
图8为本发明实施例提供的IPSec报文转发装置的组成图,该装置应用在 IPSec对等体具有固定公网IP地址的设备上,如图8所示,其主要包括IPSec 接口配置模块81、 IPSec协商模块82和报文转发模块83,其中
IPSec接口配置模块81:在本设备上增加一个IPSec SA接口 ,将该IPSec SA 接口与公网接口绑定,为该lPSec-SA接口分配私网IP地址,该私网IP地址与 IPSec对等体的IPSec SA接口的私网IP地址处于同一网段内,在本设备上配置 的IPSec对等体信息为对端设备的固定公网IP地址,在本设备的IPSec SA接口 上启用动态路由协议,在该IPSec SA接口上配置IPSec提议,将IPSec SA接口 的配置信息发送给IPSec协商模块82。
IPSec协商模块82:当发现IPSec SA接口上始发一个报文时,判断自身是 否建立了 IPSec SA信息,若是,分别使用各IPSec SA信息对报文进行加密封 装,将封装后的各报文通过各自的IPSec隧道转发给对端设备;否则,与对端 设备进行IPSec SA协商,协商成功,建立IPSec SA信息和IPSec报文转发表项, 所述IPSec报文转发表项包括IPSec连接ID, IPSec本端地址,IPSec对端地 址,本端IPSec SA地址,对端IPSec SA地址,使用建立的IPSec SA信息对IPSec SA接口上始发的报文进行加密封装后发送给对端设备。
报文转发模块83:将要发送一个报文,根据IPSec协商模块82建立的所述 IPSec报文转发表项转发该报文。
如图9所示,报文转发模块83可包括表项查找模块831和封装模块832, 其中
表项查找模块831:将要发送一个报文,若为单播报文,则根据报文的目 的IP地址查找单播路由表项,根据单播路由表项中的下一跳查找IPSec报文转 发表项,将IPSec报文转发表项中的IPSec连接ID发送给封装模块832;若为 组播或广播报文,则将所有IPSec报文转发表项中的IPSec连接ID发送给封装模块832。
封装模块832:根据表项查找模块831发来的IPSec连接ID找到IPSec SA, 使用找到的IPSec SA对报文进行加密封装,将封装后的报文通过对应的IPSec 隧道发送出去。
以下为本发明实施例提供的另一 IPSec报文转发装置,该装置应用在具有 固定公网IP地址的设备上,其主要包括
IPSec接口配置模块在本设备上增加一个IPSec SA接口 ,将该IPSec SA 接口与公网接口绑定,为该IPSec SA接口分配私网IP地址,该私网IP地址与 IPSec对等体的IPSec SA接口的私网IP地址处于同一网段内,在本设备上配置 的IPSec对等体信息为对端设备的IKE本地名,在本设备的IPSec SA接口上启 用动态路由协议,在IPSec SA接口上配置IPSec提议,将IPSec SA接口的配置 信息发送给IPSec协商模块。
IPSec协商模块接收对端设备发来的IPSec协议报文,与对端设备进行 IPSec SA协商,协商成功,建立IPSec SA信息和IPSec报文转发表项,所述IPSec 报文转发表项包括IPSec连接ID, IPSec本端地址,IPSec对端地址,本端IPSec SA地址,对端IPSec SA地址。
报文转发模块从IPSec SA接口上始发报文,查找本设备已建立的IPSec SA,判断是否查找到,若是,分别采用各IPSec SA对报文加密封装,将封 装后的各报文通过各自的IPSec隧道发送出去;否则,丢弃该报文;将要转 发一个单播报文或者从自身的非IPSec SA接口上始发单播数据报文时,查 找与该报文的目的IP地址对应的单播路由表项,若发现单播路由表项中的 接口为IPSec SA,则根据单播路由表项中的下一跳查找IPSec协商模块建立 的IPSec报文转发表项,根据IPSec报文转发表项中的IPSec连接ID,查找 到对应的IPSec SA信息,根据该IPSec SA信息对报文进行加密封装后发送 出去;要转发组播报文或广播报文,则直接查找IPSec协商模块建立的IPSec 报文转发表项,根据每一个IPSec报文转发表项中的IPSec连接ID,分别 找到对应的IPSec SA,分别使用每一个IPSec SA对报文进行加密封装,将
22得到的每个报文分别通过各自的IPSec隧道转发出去。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1、一种IP安全报文转发方法,应用在至少包含两个设备的组网中,其中,第一设备具有固定公网IP地址,其特征在于,在每个设备上增加一个IP安全联盟IPSec SA接口,为每个IPSec SA接口分配处于同一网段的IP地址;将每个设备的IPSec SA接口与公网接口绑定,在非第一设备上配置的IPSec对等体信息为第一设备的公网IP地址,在每个设备的IPSec SA接口上启用动态路由协议;该方法包括非第一设备的IPSec SA接口上始发报文,与第一设备进行IPSec SA协商,协商成功,双方设备建立IPSec报文转发表项,所述IPSec报文转发表项至少包括IPSec连接标识、对端设备的IPSec SA接口的IP地址;设备根据所述IPSec报文转发表项对报文进行加密封装并转发出去。
2、 如权利要求1所述的方法,其特征在于,所述非第一设备的IPSec SA 接口上始发报文之后、与第 一设备进行IPSec协商之前进一步包括非第一设备判断自身是否已建立IPSec SA,若是,直接采用该IPSec SA对 报文加密封装后发送出去;否则,执行所述与第一设备进行IPSec SA协商的动 作。
3、 如权利要求1或2所述的方法,其特征在于,所述设备根据所述IPSec 报文转发表项对报文进行加密封装并转发出去包括设备要转发一个单播报文,根据报文的目的IP地址查找单播路由表项,将 单播路由表项中的下一跳与IPSec报文转发表项中的对端设备的IPSec SA接口 的IP地址匹配,若匹配上,则根据IPSec报文转发表项中的IPSec连接标识查 找到IPSec SA,使用该IPSec SA对该报文进行加密封装后转发出去;或者,设备要转发一个组播报文或广播报文,则根据各IPSec报文转发表 项中的IPSec连接标识查找到IPSec SA,分别使用各IPSec SA对该报文进行加 密封装,将各封装后的报文通过各自的IPSec隧道转发出去。
4、如权利要求1或2所述的方法,其特征在于,所述非第一设备不具有固定公网IP地址,且所有非第一设备具有一个通用IKE本地名,所述方法进一步包括在第一设备上配置IPSec对等体信息为所有非第一 设备的通用IKE本地名。
5、 如权利要求1或2所述的方法,其特征在于,所述组网为一对多的组网, 所述第一设备为中心设备。
6、 如权利要求5所述的方法,其特征在于,所述方法进一步包括中心设 备的IPSec SA接口上始发报文,在自身查找已建立的IPSec SA,判断是否查找 到,若是,分别采用各IPSecSA对报文加密封装,将封装后的各报文通过各自 的IPSec隧道发送出去;否则,丢弃该才艮文。
7、 如权利要求1或2所述的方法,其特征在于,所述IPSec报文转发表项 进一步包括IPSec本端地址、IPSec对端地址、本端IPSec SA地址,其中,IPSec 本端地址为本"i殳备的/仝网IP;也址,IPSec对端地址为对端i殳备的爿厶网IPi也址, 本端IPSec SA地址为本设备的IPSec SA接口的IP地址。
8、 一种IPSec报文转发装置,应用在IPSec对等体具有固定公网IP地址的 设备上,其特征在于,该装置包括IPSec接口配置模块,在本设备上增加一个IPSecSA接口,将该IPSec SA 接口与公网接口绑定,该IPSec SA接口的IP地址与IPSec对等体的IPSec SA 接口的IP地址处于同一网段内,在本设备上配置的IPSec对等体信息为对端设 备的固定公网IP地址,在本设备的IPSec SA接口上启用动态路由协议;IPSec协商模块,发现IPSec SA接口上始发报文,与对端设备进行IPSec SA 协商,协商成功,建立IPSec报文转发表项,所述IPSec报文转发表项至少包 括IPSec连接标识、对端设备的IPSec SA接口的IP地址;报文转发模块,将要发送一个报文,根据IPSec协商模块建立的所述IPSec 报文对报文进行加密封装并转发出去。
9、 如权利要求8所述的装置,其特征在于,所述报文转发模块包括 表项查找模块,将要发送一个报文,若为单播报文,则根据报文的目的IP地址查找单播路由表项,将单播路由表项中的下一跳与IPSec报文转发表项中的对端设备的IPSec SA接口的IP地址匹配,若匹配上,将IPSec报文转发表项 中的IPSec连接标识发送给封装模块;若为组播或广播报文,则将所有IPSec 报文转发表项中的IPSec连接标识发送给封装模块;封装模块,根据IPSec连接标识找到IPSec SA,使用找到的IPSec SA对报 文进行加密封装,将封装后的报文通过对应的IPSec隧道发送出去。
10、 一种IPSec报文转发装置,应用在具有固定公网IP地址的设备上,其 特征在于,该装置包括IPSec接口配置模块,在本设备上增加一个IPSec SA接口 ,将该IPSec SA 接口与公网接口绑定,该IPSec SA接口的IP地址与IPSec对等体的IPSec SA 接口的IP地址处于同一网段内,在本设备上配置的IPSec对等体信息为对端设 备的IKE本地名,在本设备的IPSec SA接口上启用动态路由协议;IPSec协商模块,接收对端设备发来的IPSec协议4艮文,与对端设备进行 IPSec SA协商,协商成功,建立IPSec报文转发表项,所述IPSec报文转发表 项至少包括IPSec连接标识、对端设备的IPSec SA接口的IP地址;报文转发模块,将要发送一个报文,根据IPSec协商模块建立的所述IPSec 报文转发表项对报文进行加密封装并转发出去。
11、 如权利要求IO所述的装置,其特征在于,所述报文转发模块进一步用 于,从IPSec SA接口上始发报文,查找本设备已建立的IPSec SA,判断是否查 找到,若是,分别采用各IPSecSA对报文加密封装,将封装后的各报文通过各 自的IPSec隧道发送出去;否则,丢弃该净艮文。
全文摘要
本发明为IP安全报文转发方法及装置。应用在至少包含两个设备的组网,第一设备具有固定公网IP地址,在每个设备上增加IPSec SA接口,为每个IPSec SA接口分配同一网段的私网IP地址;将每个IPSec SA接口与公网接口绑定,在非第一设备上配置的IPSec对等体信息为第一设备的公网IP地址,在每个IPSec SA接口上启用动态路由协议;非第一设备的IPSec SA接口上始发报文,与第一设备进行IPSec SA协商,双方建立包括IPSec连接标识、对端设备的IPSec SA接口的IP地址的IPSec报文转发表项;设备根据所述转发表项对报文进行加密封装。本发明扩大了IPSec隧道的应用范围。
文档编号H04L12/56GK101499972SQ200910080230
公开日2009年8月5日 申请日期2009年3月16日 优先权日2009年3月16日
发明者任俊峰, 迪 周 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1