NAT穿越

**

NAT穿越

**

1.1 NAT概述

NAT(Network Address Translation)地址转换是为了缓解日益紧张的Internet公网IP地址匮乏的问题而采用的一种将内部私有网络IP地址映射为外网IP地址的技术标准。
主要分为静态NAT,动态NAT和网路地址端口转换NAPT三种类型。NAPT的基本工作原理:NAT设备接收到内部主机的数据包,将该包的内部IP地址和TCP/UDP端口号转换为自身的公网IP地址和特定的端口号,然后将数据包送往目标主机;与此同时,将此映射关系存表。当NAT收到目标主机的应答后,查表,修改目标主机IP地址和端口号并回送给相应的客户端。

1.2 NAT穿越概念的由来:

IPSec提供了端到端的IP通信的安全性,但在NAT环境下对IPSec的支持是有限的。从IPSec的角度上说,IPSec要保证数据的安全,因此要采用加密和数据校验。从NAT角度看,为了完成地址转换一定会改变其IP地址。当NAT改变了某个包的IP地址或端口号时,它通常要更新TCP或UDP的校验和。结合IPSec封装的几种模式,NAT和IPSec存在很多矛盾和不兼容。于是有了NAT穿越的概念。下面结合IPSec的封装模式和NAT概念来分析NAT和IPSec的交互情况。

1.3 NAT穿越的影响:

1. 从NAT与IPSec封装方式交互性考虑:

AH封装:
NAT穿越_第1张图片
NAT穿越_第2张图片
AH类型的校验是从IP头开始的,而NAT为了完成地址转换,一定会使IP改变,所以AH类型不支持NAT。

ESP封装:
ESP 封装的传输模式:
NAT穿越_第3张图片
虽然ESP封装在加密和完整性校验时并没有把IP头部包括在内,但是对于ESP的传输模式,需要对TCP/UDP校验和进行加密,而NAT如果改变了某个包的IP地址或者端口号都会使这个校验和造成变化,所以对于传输模式的ESP封装也是不支持NAT的。

ESP封装的隧道模式:
NAT穿越_第4张图片
从ESP隧道模式的封装中,我们可以发现,ESP隧道模式将整个原始的IP包整个进行了加密,且在ESP的头部外面新加了一层IP 头部,所以NAT如果只改变最前面的IP地址对后面受到保护的部分是不会有影响的。所以IPSec采用ESP隧道模式是支持NAT的。

2. 从IKE协商的安全角度考虑:

(1) IKE作为协商协议,采用NAT穿越的通信双方会在IKE协商的两个阶段协商是否支持NAT穿越,会引起安全问题。
(2)采用NAT穿越,由于NAT一定会涉及IP地址的转换,从上述的封装方式与NAT的交互情况看,一旦采用NAT穿越就必然放弃基于IP地址的验证机制。

3. 从UDP封装的角度考虑:

在一些系统中,ESP-UDP可能会引发DOS攻击,特别使用普通操作系统的UDP功能。

你可能感兴趣的:(NAT穿越)