双电信ADSL实现链路冗余和IPSec VPN

发布时间:  2014-09-12 浏览次数:  7992 下载次数:  1278
问题描述
客户原来使用1条电信ADSL上网,由于带宽不够,另外增加一条电信的ADSL。客户使用一条ADSL链路时, 上网、IPSecVPN都正常。但是同时使用两条线路时,IPSecVPN隧道建立不起来,用户上网相当的慢,丢包现象严重。
告警信息
处理过程
1使用一条ADSL链路,测试上网、IPSec均正常,表明每一条链路的网络基础配置正确,IPSec配置正确。
2、查看默认路由配置。
ip route-static 0.0.0.0 0.0.0.0 Dialer1 
 ip route-static 0.0.0.0 0.0.0.0 Dialer2
考虑到由于属于同一运营商,两条等价默认路由会造成数据来回路径不一致的问题,修改为
ip route-static 0.0.0.0 0.0.0.0 Dialer1 
 ip route-static 0.0.0.0 0.0.0.0 Dialer2  preference  65
连接两条ADSL链路,网络稳定情况好转。
  1. 查看NAT策略,修改为双链路互备。
原NAT策略:
acl number 3001
 description nat_dia1
 rule 0 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.0.0 0.0.0.255  //拒绝IPSec流量
 rule 2 deny ip source 192.168.2.0 0.0.0.255 destination 192.168.0.0 0.0.0.255
 rule 3 permit ip source 192.168.1.0 0.0.0.255
 
acl number 3002
 description nat_dia2
 rule 0 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.0.0 0.0.0.255  //拒绝IPSec流量
 rule 2 deny ip source 192.168.2.0 0.0.0.255 destination 192.168.0.0 0.0.0.255
 rule 3 permit ip source 192.168.2.0 0.0.0.255
 
firewall interzone trust untrust
 nat outbound 3001 interface Dialer1
 
firewall interzone trust untrust10
 nat outbound 3002 interface Dialer2
 
    该NAT策略使192.168.1.0网段通过Dialer1做地址转换上网,使192.168.2.0网段通过Dialer2做地址转换上网。但是如果一根线断了,就会有一个网段的用户上不了网。为了实现链路冗余互为备份,修改用于NAT的ACL为:
acl number 3001
 description nat_dia1
 rule 0 deny ip source 192.168.0.0 0.0.3.255 destination 192.168.0.0 0.0.0.255 //对ipsec流量不做地址转换
rule 3 permit ip  source 192.168.1.0 0.0.0.255
rule 4  permit ip  source 192.168.2.0 0.0.0.255            //允许两个网段通过,实现链路冗余
 
acl number 3002
 description nat_dia2
 rule 0 deny ip source 192.168.0.0 0.0.3.255 destination 192.168.0.0 0.0.0.255 //对ipsec流量不做地址转换
rule 3 permit  ip  source 192.168.1.0 0.0.0.255   
rule 4 permit  ip  source 192.168.2.0 0.0.0.255         //允许两个网段通过,实现链路冗余
 
4、查看策略路由和配置,修改策略路由,并强制IPSec流量仅走Dialer2。
原配置:
interface Vlanif1
ip address 10.10.1.1 255.255.255.0    
undo ip fast-forwarding qff
ip policy route-policy 123
 
acl number 3003
rule 3 permit ip source 192.168.1.0 0.0.0.255
 
route-policy 123 permit node 5
 if-match acl 3003
 apply output-interface Dialer2
该策略路由强行1网段走Dilar 2,但不排除2网段也走Dilar 2的可能性。所以修改策略路由使分流更清晰明了。
修改后的策略路由
interface Vlanif1
ip address 10.10.1.1 255.255.255.0
undo ip fast-forwarding qff
ip policy route-policy 123
 
acl number 3003
rule 0 permit ip source 192.168.0.0 0.0.3.255 destination 192.168.0.0 0.0.0.255
rule 5 permit ip source 192.168.1.0 0.0.0.255
 acl number 3004
rule 5 permit ip source 192.168.2.0 0.0.0.255
 
route-policy 123 permit node 5
 if-match acl 3003
 apply output-interface Dialer2
route-policy 123 permit node 10
if-match acl 3004
 apply output-interface Dialer1
 
5、修改security ACL 3000,并使两端成镜像。
acl number 3000
rule 0 permit ip source 192.168.0.0 0.0.3.255 destination 192.168.0.0 0.0.0.255
 
6、测试两网段用户上网,正常;测试两网段用户访问VPN,正常。
根因
  1. 策略路由设置问题。
  2. 路由设置错误。
  3. NAT策略配置问题。
建议与总结
  1. 如果双链路为同一ISP,只有两条默认路由时,必须将默认路由配置为不同优先级;
  2. 该方案实现了在2条链路正常时,通过策略路由实现分流;当1条链路断开后,能确保所有网段通过NAT上网。这里需要注意配置做NAT的ACL需要将所有网段都包含进去,最简单的规则是先拒绝IPSec流量,然后rule permit ip。
  3. 为了确保IPSec正常,本例比较保守的只允许通过Dialer2口与中心建立隧道。如果修改中心和分支的security acl,并将IPSec策略应用于两个dialer口,还可以实现分支IPSec链路冗余。当两条链路正常时,通过策略路由,所有感兴趣流量通过Dialer2口,由Dialer2口与中心建立隧道,当Dialer2口所有链路down时,根据默认路由会选择Dialer1口建立隧道。修改方法如下:
interface Dialer1
ipsec policy map1
 
interface Dialer2
ipsec policy map1

END