IPSec-NAT技术详解

在NAT技术和IPsec技术的应用都非常广泛。但从本质上来说,两者是存在着矛盾的。
1.从IPsec的角度上说,IPsec要保证数据的安全,因此它会加密和校验数据。
2.从NAT的观点来看,为了完成地址转换,势必会修改IP地址。

    IPSec提供了端到端的IP通信的安全性,但在NAT环境下对IPSec的支持有限,AH协议是肯定不能进行NAT的了,这和AH设计的理念是相违背的;ESP协议在NAT环境下最多只能有一个***主机能建立***通道,无法实现多台机器同时在NAT环境下进行ESP通信。关于IPSec在NAT环境下的需求问题在RFC3715中进行了描述。

     NAT穿越(NAT Traversal,NAT-T)就是为解决这个问题而提出的,RFC3947,3948中定义,在RFC4306中也加入了NAT-T的说明,但并没废除RFC3947,3948,只是不区分阶段1和阶段2。该方法将ESP协议包封装到UDP包中(在原ESP协议的IP包头外添加新的IP头和UDP头),使之可以在NAT环境下使用的一种方法,这样在NAT的内部网中可以有多个IPSec主机建立***通道进行通信。

    AH封装:AH封装的校验从IP头开始,如果NAT将IP的头部改动,AH的校验就会失败,因此我们得出结论,AH是无法与NAT共存的。ESP封装的传输模式:对于NAT来说,ESP封装比AH的优势在于,无论是加密还是完整性的校验,IP头部都没有被包括进去。但是还是有新的问题,对于ESP的传输模式,NAT 无法更新上层校验和。TCP 和 UDP 报头包含一个校验和,它整合了源和目标 IP 地址和端口号的值。
    当NAT改变了某个包的IP地址和(或)端口号时,它通常要更新TCP或UDP校验和。当TCP或UDP校验和使用了ESP来加密时,它就无法更新这个校验和。由于地址或端口已经被NAT更改,目的地的校验和检验就会失败。虽然UDP校验和是可选的,但是TCP校验和却是必需的。
    ESP封装的隧道模式:从ESP隧道模式的封装中,我们可以发现,ESP隧道模式将整个原始的IP包整个进行了加密,且在ESP的头部外面新加了一层
IP头部,所以NAT如果只改变最前面的IP地址对后面受到保护的部分是不会有影响的。因此,IPsec只有采用ESP的隧道模式来封装数据时才能与NAT共存。
由于完整性校验牵涉到IP头部,所以NAT无法对其修改,不兼容。
ESP的传输模式,因为TCP部分被加密,NAT无法对TCP校验和进行修改,不兼容。
ESP的隧道模式,由于NAT改动外部的IP而不能改动被加密的原始IP,使得只有这种情况下才能与NAT共存。


NAT穿越(NAT TraversalNAT-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当实际环境中不常规***通信或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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值