本文出自 “见证成长” 博客,请务必保留此出处http://nanjingfm.blog.51cto.com/2121842/847244
NAT和ipsec本身是一对矛盾体,但是现实生活中又时经常用到的,现在总结出三种解决方案供大家参考:(在定义第二阶段交换集的时候使用ESP的封装方式,不能使用HA方式)
方案一:
情景描述:总公司和分公司在出口设备上都做了NAT,现在两个公司又要在出口设备上起用IPsecVPN以方便两边内网用户可以互相访问。
解决方案:在两边配置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 vpn
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了。