新进化论

道生一,一生二,二生三,三生万物。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
IPSec NAT-T

一 IPSec NAT-T技术
在建立IPsec通道时,如果通道路径上有NAT设备也不会影响第一阶段的IKE SA的协商和第二阶段IPSec SA的协商,因为通常将IKE的数据包封装在UDP数据包中,
但是,在完成第二阶段协商后, IPsec数据包上的NAT会导致通道失败,(也就是说IPsec的通道可以建立,但是真正的User的数据无法传输)
原因可能有多个,但是最关键的原因就是:
1.
对于IPsec-ESP来说,NAT设备不能找到要做端口转换的port和src IP address的位置(因为它已经被加密了)
2.
对外IPsec-AH协议,NAT设备虽然可以看到port和Src IP and Dst IP address,但不可以修改,如果一修改整个IPsec数据包的完整性验证就会失败。IPsec 数据包就会被丢弃。

二 IPsec和NAT和平共处的解决方法:NAT-T
在 IPsec第一阶段IKE SA协商过程中,两端支持NAT-T的VPN 设备会在IPSec 协商路径上检测是否有NAT设备,
1.
如果没有NAT设备,IPSec数据包正常发送,接着进入IKE第二阶段
2.
如果监测到NAT设备,就给要发送出去的IPSec数据包再添加一层UDP封装。可以解决认证检查失败的问题。NAT设备将其作为 UDP 封包处理,更改 UDP 包头中的源端口,不修改 AH 或 ESP 中的 SPI 包头。对端的VPN设备将剥开UDP 层并处理 IPSec 封包,这样处理就会通过认证检查,因为对认证过的内容并没有做任何更改。
1.
启用NAT-T之后,也只要两端的VPN Gateway之间存在NAT设备时才会激活。
2.
要使用NAT-T功能,两端的VPN Peer都必须支持。

三 配置方法
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
posted on 2010-08-12 13:21  岌岌可危  阅读(1267)  评论(0编辑  收藏  举报