由于ACL配置范围太宽导致IPSec业务中断

发布时间:  2014-09-20 浏览次数:  296 下载次数:  0
问题描述
组网结构:
防火墙作为中心节点,所有分支设备和防火墙建立IPSec隧道连接。

IPSec全网出现中断。
处理过程
一线反馈现网IPSec业务已经正常运行了1年,这几天突然出现全网大面积IPSec业务中断。登录中心节点防火墙,查看IPSec信息。
选取其中一个节点查看IPsec sa,信息如下:
HRP_M[MZ_GS_FW_01] display ipsec sa remote 60.165.x1.y1
02:00:40  2012/07/03
  -----------------------------
  ipsec policy name: "pl"
  sequence number: 1
  mode: template
  vpn: public
  -----------------------------
    connection id: 173545
    rule number: 4294967295
    encapsulation mode: tunnel
    tunnel local : 61.178.x2.y2    tunnel remote: 60.165.x1.y1
    flow      source: 10.112.0.0/255.255.0.0 0/0
    flow destination: 172.16.0.0/255.255.0.0 0/0

    [inbound ESP SAs] 
      spi: 2368886412 (0x8d32568c)
      vpn: public  said: 9722  cpuid: 0x0000
      proposal: ESP-ENCRYPT-DES ESP-AUTH-MD5
      sa remaining key duration (bytes/sec): 1887363600/28181
      max received sequence-number: 1211
      udp encapsulation used for nat traversal: Y

    [outbound ESP SAs] 
      spi: 4097 (0x1001)
      vpn: public  said: 9723  cpuid: 0x0000
      proposal: ESP-ENCRYPT-DES ESP-AUTH-MD5
      sa remaining key duration (bytes/sec): 1887331008/28181
      max sent sequence-number: 1641
      udp encapsulation used for nat traversal: Y

和其他的IPSec SA进行对比:
  -----------------------------
  ipsec policy name: "pl"
  sequence number: 1
  mode: template
  vpn: public
  -----------------------------
    connection id: 365
    rule number: 4294967295
    encapsulation mode: tunnel
    tunnel local : 61.178.x2.y2    tunnel remote: 118.182.x3.y3
    flow      source: 10.112.0.0/255.255.0.0 0/0
    flow destination: 172.16.2.80/255.255.255.240 0/0

    [inbound ESP SAs] 
      spi: 2098881415 (0x7d1a6387)
      vpn: public  said: 314  cpuid: 0x0000
      proposal: ESP-ENCRYPT-DES ESP-AUTH-MD5
      sa remaining key duration (bytes/sec): 1887436800/26573
      max received sequence-number: 1
      udp encapsulation used for nat traversal: Y

    [outbound ESP SAs] 
      spi: 4286 (0x10be)
      vpn: public  said: 315  cpuid: 0x0000
      proposal: ESP-ENCRYPT-DES ESP-AUTH-MD5
      sa remaining key duration (bytes/sec): 1887436800/26573
      max sent sequence-number: 1
      udp encapsulation used for nat traversal: Y

发现部分隧道保护流的掩码为16位,它的范围要大于其他隧道保护的流。中心节点在访问各个分支节点的时候,需要查找隧道,查找隧道的唯一依据就是根据保护的流进行查找。

从上图可以看出,假如某分支设备使用隧道2加密报文过来,我们可以正常解密,但是在返回报文的时候,我们也需要查找隧道,由于隧道1包含的范围更宽,因此会命中隧道1,导致将数据报文发给了隧道1对端的分支设备,最终导致业务不通。
而保护的流是两端协商的结果,一般来说,协商出来的流应该是中心节点的子集。在这里主要取决于对端分支设备的ACL配置,每个局点保护流的范围不能有交集,否则就会导致中心节点隧道保护的流出现覆盖的现象,进而导致走错隧道影响业务。
根因
对端新上线的几台设备,都使用了相同的IPSec配置,而且ACL保护流的范围都是172.16.0.0/16网段,导致其他隧道出现业务中断。
解决方案
修改对端设备的ACL,使每个局点保护的流不能相互重叠,可以和以前上线的设备一样,配置成28位掩码的网段。

END