一,地址转换存在的问题及解决方案
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静态映射到内网 如下是实验环境
一、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
五、asa1的ipsec 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
六、asa2的ipsec 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设备。