Skip to main content


cisco ipsec vpn+NAT穿越

2013-10-27 22:52 浏览:

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

  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静态映射到内网 如下是实验环境

151717872.jpg

  一、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设备。