一,地址转换存在的问题及解决方案

ISAKMP/IKE阶段二是通过AH协议和ESP协议实现加密或认证,其区别在于:

AH协议之提供认证,并且对整个三层数据(包括ip包头)实现验证;所以AH不能与NAT设备一起工作,(因为ip包头转化了,发生改变了)

ESP协议同时提供加密和认证,但只认证三层数据的有效载荷(不包括ip包头),所以与NAT可以共存,但是这样却没有是实现ip地址的节省,因为将vpn设备的地址静态转换成公有ip后,该公有ip将无法在被其他私有地址复用。

解决这个问题就需要实现esp协议和PAT一同工作,实现一个公网地址转换内网的所有私有ip,但esp是一个三层协议,由于三层的有效载荷部分完全被加密,PAT修改的是第四层数据包头,缺少需要的tcp或udp包头的端口信息,无法实现转换,所以需要在ip包头和esp包头之间添加新的四层包头信息,这就是NAT-T(NAT穿越)

ip包头 tcp或udp包头 esp头 密文数据 esp尾

管理连接 端口号为500

数据连接 端口号为4500

在PAT设备将端口500和4500静态映射到内网 如下是实验环境

cisco  ipsec  vpn+NAT穿越_cisco

一、asa1的基本配置


asa1(config)#int e0/0


asa1(config-if)#nameif outside


asa1(config-if)#ip add 192.168.2.1 255.255.255.0


asa1(config-if)#no sh


asa1(config-if)#int e0/1


asa1(config-if)#nameif inside


asa1(config-if)#ip add 192.168.1.1 255.255.255.0


asa1(config-if)#no sh


asa1(config)#route outside 0 0 192.168.2.2


asa1(config)# access-list 111 permit icmp any any (asa不允许低级访问高级别,这样便于测试)

asa1(config)#access-group 111 in int outside

二、NAT的配置


ip配置略


nat(config)#int f0/0


nat(config-if)#ip nat inside


nat(config)#int f1/0


nat(config-if)#ip nat outside


nat(config)#access-list 1 permit any


nat(config)#ip nat inside source list 1 int f1/0 overload 端口复用实现PAT


nat(config)#ip nat inside source static udp 192.168.2.1 4500 192.168.3.1 4500 实现数据连接的静态端口映射

nat(config)#ip nat inside source static udp 192.168.2.1 500 192.168.3.1 500 实现管理连接的静态端口映射

nat(config)#ip route 0.0.0.0 0.0.0.0 192.168.3.2


nat(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.1


三、ISP的配置


只需配置ip即可


四、ASA2的基本配置


asa2(config)#int e0/0


asa2(config-if)#nameif outside


asa2(config-if)#ip add 192.168.4.2 255.255.255.0


asa2(config-if)#no sh


asa2(config-if)#int e0/1


asa2(config-if)#nameif inside


asa2(config-if)#ip add 192.168.5.1 255.255.255.0


asa2(config-if)#no sh


asa2(config)#route outside 0 0 192.168.4.1


asa2(config)# access-list 111 permit icmp any any (asa不允许低级访问高级别,这样便于测试)

asa2(config)#access-group 111 in int outside

五、asa1ipsec vpn的配置


asa1(config)#crypto isakmp enable outside


asa1(config)#crypto isakmp policy 1


asa1(config-isakmp-policy)#encrytion aes


asa1(config-isakmp-policy)#hash sha


asa1(config-isakmp-policy)#authentication pre-share


asa1(config-isakmp-policy)#group 1


asa1(config)#isakmp key benet address 192.168.4.2



asa1(config)#access-list vfvpn extended permit ip 192.168.1.0 255.255.255.0 192.168.5.0 255.255.255.0


asa1(config)#crypto ipsec transform-set benet-set esp-aes esp-sha-hmac


asa1(config)#crypto map benet-map 1 match address vfvpn


asa1(config)#crypto map benet-map 1 set peer 192.168.4.2


asa1(config)#crypto map benet-map 1 set trans benet-set


asa1(config)#crypto map benet-map int outside


六、asa2ipsec vpn的配置


asa2(config)#crypto isakmp enable outside


asa2(config)#crypto isakmp policy 1


asa2(config-isakmp-policy)#encrytion aes


asa2(config-isakmp-policy)#hash sha


asa2(config-isakmp-policy)#authentication pre-share


asa2(config-isakmp-policy)#group 1


asa2(config)#isakmp key benet address 192.168.3.1


asa2(config)#access-list vfvpn extended permit ip 192.168.5.0 255.255.255.0 192.168.1.0 255.255.255.0


asa2(config)#crypto ipsec transform-set benet-set esp-aes esp-sha-hmac


asa2(config)#crypto map benet-map 1 match address vfvpn


asa2(config)#crypto map benet-map 1 set peer 192.168.3.1 对等体写nat设备口

asa2(config)#crypto map benet-map 1 set trans benet-set


asa2(config)#crypto map benet-map int outside


验证

nat设备查nat转换表 sh ip nat tr

两台pc可以ping通

NAT-t是自启动的。

这样的可以节省ip地址,即ipsec设备与NAT设备之间的网段可以使用私有地址,也可以保护vpn设备。