莫让这世间的庸俗扰了清修,尽管三观已被腐蚀,但未来总是光明的。

最近有学生反映在同一无线网下多个学生登陆vpn后只有一位学生可以登陆服务器运行命令。(一个无线网对应一个公网IP)

到网上查资料,结果是防火墙未配置NAT-T功能。

NAT穿越(NAT Traversal,NAT-T)
       Cisco IOS的版本在12.2(13)T以后,可以支持NAT-T技术。以前NAT和IPsec只能以1对1的形式共存,NAT-T打破了这种形式。而且NAT-T支持ESP的传输模式。

NAT-T的基本思想:
    将ESP协议包封装到UDP包中(在原ESP协议的IP包头外添加新的IP头和UDP头)。使得NAT对待它就像对待一个普通的UDP包一样。而且支持ESP的传输模式。

NAT-T的基本原理和执行步骤:

  1.  检测通信中是否存在NAT设备和对方是否支持NAT-TNC

   2.检测对方是否支持NAT-T是通过交换vendor ID载荷来实现的,如果自身支持NAT-T,在IKE开始交互就要发送这种载荷,载荷内容是“RFC 3947”的MD5值,也就是十六进制的“4a131c81070358455c5728f20e95452f”

配置方法

  1. ipsec over tcp

    该方法导致双方使用TCP端口通信,缺省端口是10000,只支持client方式。缺省被禁用,打开方法:crypto isakmp ipsec-over-tcp

    当实际环境中不常规VPN通信或NAT-T,IPSEC OVER UDP的时候使用。

   2.NAT-T

       该方法导致双方最终使用udp 4500端口通信,支持client,L2L 两种方式。缺省是被禁用的。打开方法:crypto isakmp nat-traversal 20 ,缺省keepalives时间20秒 

   3.ipsec over udp

      导致双方使用UDP通信,缺省端口10000,只支持client方式。缺省被禁用。打开方法在组策略中配置hostname(config-group-policy)# ipsec-udp {enable | disable}
hostname(config-group-policy)#ipsec-udp-port 10000

上述三种方法都启用时候的优先级别: over tcp >NAT-T>over udp

我采用的是第二种办法进入configuration>vpn>general>group policy,具体配置见下图