由于历史的原因,部署带 Internet 协议安全的第二层隧道协议(L2TP/IPSec)的问题之一在于无法定位网络地址转换(NAT)之后的 IPSec 对话方。 Internet 服务提供商和小型办公/家庭办公(SOHO)网络通常使用 NAT 来共享单个公共 IP 地址。 虽然 NAT 有助于节省剩余的 IP 地址空间,但是它们也给诸如 IPSec 之类的端对端协议带来了问题。
一种称为 IPSec NAT 穿越(NAT-T)的新技术正在由 Internet 工程任务组的IPSec 网络工作组标准化。 IPSec NAT-T 是在标题为 “UOSec 包的 UDP 封装”(draft-ietf-ipsec-udp-encaps-02.txt)和“IKE中的 NAT 穿越协商”(draft-ietf-ipsec-nat-t-ike-02.txt)的 Internet 草案中描述的。 IPSec NAT-T 对协商过程进行了修改,并且定义了发送受 IPSec 保护的数据的不同方法。
在 IPSec 协商过程中,支持 IPSec NAT-T的对话双方会自动确定:
-
发起 IPSec 对话的一方(通常是一个客户端计算机)和响应 IPSec 对话的一方(通常是一个服务器)是否都能执行 IPSec NAT-T。
-
它们之间的路径中是否存在任何 NAT。
如果这两个条件同时为真,那么双方将使用 IPSec NAT-T 来通过 NAT 发送受 IPSec 保护的流量。 如果其中一方不支持 IPSec NAT-T,则执行常规的 IPSec 协商(在前两个消息之后)和 IPSec 保护。 如果双方都支持 IPSec NAT-T,但是它们之间不存在 NAT,则执行常规的 IPSec 保护。
IPSec NAT-T 受Windows Server 2003、Microsoft L2TP/IPSec VPN Client(一个免费的 Web 下载组件,它支持运行 Windows 98、Windows Millennium Edition 和 Windows NT 4.0 Workstation 的计算机创建 L2TP/IPSec 连接)以及L2TP/IPSec NAT-T Update for Windows XP and Windows 2000(一个免费的 Web下载组件,它支持运行Windows 2000和Windows XP的计算机创建 L2TP/IPSec 连接)的支持。
本专栏研究与通过 NAT 使用 IPSec 相关联的问题,以及这些问题如何通过 IPSec NAT-T 来得到解决,以及用于快速模式和主模式的 Internet 密钥交换(IKE)协商中的结果变更。
注意: IPSec NAT-T 是仅为 ESP 流量定义的。