如何实现双动态链路vpn主备自动切换

发布时间:  2014-09-12 浏览次数:  501 下载次数:  0
问题描述
如图
告警信息
处理过程
根因
1、 假定USG2130为总部的防火墙;USG2110为分支防火墙。

2、 总部两个公网接口分别为200.0.0.1,201.0.0.1;其中200.0.0.1跑3G链路业务,201.0.0.1跑X-LINK链路。

具体配置如下:

基本的IP地址配置省略

3、 分支防火墙USG2110的3G接口配置为dialer1,另一个pppoe接口dialer2为拨号动态获取公网IP。

具体配置如下:

基本的接口配置省略

4、 在USG2110上起一个loopback接口,ip为10.0.0.1;另配置一个tunnel口

具体配置如下:

interface Tunnel1

ip address 172.16.16.1 255.255.255.0

tunnel-protocol gre

source 10.0.0.1

destination 201.0.0.1

keepalive period 3

5、 在USG2130上起一个tunnel接口

具体配置如下:

interface Tunnel1

ip address 172.16.16.2 255.255.255.0

tunnel-protocol gre

source 201.0.0.1

destination 10.0.0.1

keepalive period 3

6、GRE配置有keepalive保活,IKE配置有dpd保活。

具体配置如下:


USG2110上配置的路由:

1、 ip route-static 0.0.0.0 0.0.0.0 dialer1 70 //备用链路的路由

2、 ip route-static 0.0.0.0 0.0.0.0 Dialer 2 //主链路路由

3、 ip route-static 192.168.2.0 255.255.255.0 Tunnel 1 //走主链路时,报文需要GRE封装,再IPSEC加密

4、 ip route-static 192.168.2.0 255.255.255.0 dialer1 70 //主链路down时,可以走备用链路

5、 ip route-static 200.0.0.1 255.255.255.255 dialer1 //走备用链路时,防止IKE协商时从dialer2出去


IPSEC ACL配置:

acl number 3010

rule 5 permit ip source 10.0.0.1 0 destination 201.0.0.1 0

acl number 3011

rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
建议与总结
方案说明:

1、 在USG2110防火墙上的tunnel接口由于源接口(loopback接口)up状态,且到目的地的路由2存在,因而开始发送GRE的保活报文,该保活报文会命中IPSEC的ACL规则,触发IPSEC隧道建立起来(走路由2)。

2、 当分支的的用户想访问总部时,会走路由3,报文首先经过GRE封装。经过GRE封装的报文在转发时,会命令ACL3010,报文经过IPSEC封装后,会走路由2。到达USG2130的报文经过IPSEC解密之后,再经过GRE解封装,转发到目的主机。同理,返回分支的报文通过查找会话,知道如何返回。

3、 假定某个时间点,由于X-LINK链路不稳定,导致路由不通。一定会引发GRE keepalive报文保活失败,同时IKE dpd保活也会失败。当GRE keepalive报文保活失败,GRE接口会down掉,引起路由3失效(注:由于IKE DPD保活的作用,一段时间后,IPSEC隧道由于保活失败也会自动清除掉),后续访问总部的报文此时会走路由4,触发3G接口拨号获取到公网IP,由于命中ACL3011,会触发3G链路的IKE开始协商,由于走3G链路的Peer的IP为200.0.0.1,则一定会走路由5(注:当X-LINK链路中间出现问题时,dialer2接口不会down,链路2现样会有效,可能会出现到200.0.0.1目的的走路路由2,引起路由不可达问题),协商成功后所有的流量切换到备用链路。(风险:当主链路down掉后,没有流量访问总部,则3G备链路的IPSEC隧道不会协商起来。解决方案:让3G链路一直处于UP状态,这样就可以快速触发3G链路的IPSEC隧道的建立)。若一断时间后,主链路恢复正常,路由3生效,同理,会触发主链路的隧道建立起来,至此流量切换主链路。

END