方案二:先上拓扑图

场景描述:

R2为总公司的出口路由器,R3是分公司的出口路由器,R1为总公司内部的一台路由器。现在有需求要在R1和R3之间做一条IPSEC ***隧道,以供两端内网用户互相访问。为了防止NAT对***数据包的破坏,在R3(分公司)上可以使用扩展ACl来区分流量(做法见方案一),但是R1的***数据包,必须要经过R2,必须要进行一次地址转换。

解决方案:

思路:R3和R1直接建立IPsec关系肯定是不行的,但是我可以跟你R1做过NAT之后的地址来建立IPsec关系,这样的话就可以不破坏***封装过的包了。

可以有两种做法:

做法一:两端指对端的时候都是静态

配置要点:

在R1上指R3公网地址,R3上指R2的公网地址。

在中间NAT设备上面增加两条静态的nat条目,如:

 

r2(config)#ip nat inside sou sta esp 192.168.12.1 int e0/0

r2(config)#ip nat inside sou sta udp 192.168.12.1 500 int e0/0 500

这两条静态NAT就能够保证,***数据包经过R2 NAT之后都是同一个地址,同一个端口号,这样就相当于R1、R3直接建立关系了。

方案二:

R1端指R3公网地址(静态),R3上指动态的(cry isk key 123 add 0.0.0.0 0.0.0.),然后在R2上不需要做任何设置即可。

动态指对端的方法见配置文件:

 

crypto isakmp policy 10

 encr 3des

 authentication pre-share

 group 2

crypto isakmp key 123 address 0.0.0.0 0.0.0.0//原来指对端固定的IP地址,现在不知道具体地址是什么(经过了NAT设备),要改成0.0.0.0/0

crypto isakmp nat keepalive 10//做Nat穿透,每10秒发送一个keepalive报文保持nat设备上的相应会话不超时,使得两端IPsec通道一直保持畅通,不会终端

!

crypto ipsec transform-set *** esp-3des esp-md5-hmac 

!

crypto dynamic-map dmap 10//和静态的不一样,这里要建一个动态的map

 set security-association lifetime seconds 86400

 set transform-set *** 

 match address ***

!

crypto map *** 10 ipsec-isakmp dynamic dmap //这里调用那个动态的map

然后应用到接口即可。

测试的时候要先用R1带源地址去pingR3,这样就能够建立IPsec通道了,