申明:第一次发博文,以下内容纯属个人经验总结,若有不妥当之处欢迎大家指点交流,QQ:765390765。

NAT和ipsec本身是一对矛盾体,但是现实生活中又时经常用到的,现在总结出三种解决方案供大家参考:(在定义第二阶段交换集的时候使用ESP的封装方式,不能使用HA方式)

方案一:

情景描述:总公司和分公司在出口设备上都做了NAT,现在两个公司又要在出口设备上起用IPsec***以方便两边内网用户可以互相访问。

解决方案:在两边配置NAT的时候使用扩展的ACL来匹配流量(此目的是区分IPSEC和NAT的流量,效果就是两端互访的时候不需要经过NAT,自然IPsec的数据包就不会被破坏了):

    以总公司端配置为例:

原先我们配置NAT的时候使用标准ACL:

ip access-list st nat

permit 1.1.1.0 0.0.0.255

配置IPSEC的ACL时候使用扩展的ACL:

ip acccess-list ex ***

permit ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255

由以上两条acl可以看出,当总公司内网用户(1.1.1.0/24)访问分公司内网(2.2.2.0/24)的时候,两条ACL都能够匹配到。通过实际验证,这种数据流量是不进入IPsec隧道的,直接NAT之后扔到公网上了,所以我们要做的就是区分出不同需求的流量。

比如我们在定义nat的ACl的时候可以这样定义(使用扩展的):

ip access-list ex nat

deny ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255

permit ip 1.1.1.0 0.0.0.255 any

IPSEC的ACl保持不变,这样的一个小小改变就能够使得去往分公司的流量统统走IPSEC隧道,而其他流量走NAT了。