跳到主要内容

3. Requirements for IPsec-NAT Compatibility (IPsec-NAT 兼容性要求)

3. Requirements for IPsec-NAT Compatibility (IPsec-NAT 兼容性要求)

IPsec-NAT 兼容性解决方案的目标是扩展可用 IPsec 功能的范围, 超越第 2.3 节中描述的 NAT 兼容 IPsec 隧道模式解决方案中可用的功能。

在评估 IPsec-NAT 不兼容性解决方案时, 应牢记以下标准:

部署 (Deployment)

由于 IPv6 将解决经常导致在 IPv4 中使用 NA(P)T 的地址稀缺问题, 因此 IPsec-NAT 兼容性问题是一个过渡性问题, 需要在 IPv6 广泛部署之前的时间框架内解决。因此, 为了有用, IPsec-NAT 兼容性解决方案必须在比 IPv6 更短的时间范围内可部署。

由于 IPv6 部署需要对路由器和主机进行更改, 因此需要对路由器和主机都进行更改的潜在 IPsec-NAT 兼容性解决方案将在与 IPv6 大致相同的时间范围内可部署。因此, IPsec-NAT 兼容性解决方案应该仅需要更改主机, 而不需要更改路由器。

除其他事项外, 这意味着 IPsec-NAT 兼容性解决方案不应该要求主机与 NA(P)T 之间的通信, 因为这将需要更改 NA(P)T, 以及主机与 NA(P)T 实现之间的互操作性测试。为了在短期内实现部署, 解决方案必须与已部署基础设施内的现有路由器和 NA(P)T 产品配合使用。

协议兼容性 (Protocol Compatibility)

IPsec NAT 穿越解决方案不应该解决在未使用 IPsec 保护时无法穿越 NA(P)T 的协议的问题。因此, 即使有 IPsec NAT 穿越解决方案可用, 某些协议仍可能需要 ALG。

安全性 (Security)

由于 NA(P)T 方向性具有安全功能, IPsec NA(P)T 穿越解决方案不应允许来自任何 IP 地址的任意传入 IPsec 或 IKE 流量被 NA(P)T 后面的主机接收, 尽管一旦建立双向 IKE 和 IPsec 通信, 应该维护映射状态。

远程办公场景 (Telecommuter Scenario)

由于 IPsec 的主要用途之一是远程访问企业内网, NA(P)T 穿越解决方案必须支持通过 IPsec 隧道模式或 L2TP over IPsec 传输模式 [RFC3193] 的 NA(P)T 穿越。这包括支持远程客户端和 VPN 网关之间多个 NA(P)T 的穿越。

客户端可能具有可路由地址, 而 VPN 网关可能位于至少一个 NA(P)T 后面, 或者客户端和 VPN 网关都可能位于一个或多个 NA(P)T 后面。远程办公人员可能使用相同的私有 IP 地址, 每个人都在自己的 NA(P)T 后面, 或者许多远程办公人员可能驻留在同一 NA(P)T 后面的专用网络上, 每个人都有自己唯一的私有地址, 连接到同一 VPN 网关。由于 IKE 使用 UDP 端口 500 作为目的端口, 因此不需要启用在同一外部 IP 地址后面运行的多个 VPN 网关。

网关到网关场景 (Gateway-to-Gateway Scenario)

在网关到网关场景中, 可能在企业网络和互联网之间插入私有地址网络 (DMZ)。在这种设计中, 连接企业网络部分的 IPsec 安全网关可能驻留在 DMZ 中, 并在其外部 (DMZ) 接口上具有私有地址。NA(P)T 将 DMZ 网络连接到互联网。

端到端场景 (End-to-End Scenario)

NAT-IPsec 解决方案必须通过 IPsec 实现安全的主机到主机 TCP/IP 通信, 以及主机到网关通信。专用网络上的主机必须能够建立一个或多个受 IPsec 保护的 TCP 连接或 UDP 会话到另一个主机, 它们之间有一个或多个 NA(P)T。例如, NA(P)T 可能部署在连接到企业网络的分支机构内, 企业网络还有一个额外的 NA(P)T 连接到互联网。同样, NA(P)T 可能部署在企业网络 LAN 或 WAN 内, 以将无线或远程位置客户端连接到企业网络。这可能需要对主机上的 TCP 和 UDP 流量进行特殊处理。

在它们之间有一个或多个 NA(P)T 的情况下建立到另一个主机的 SCTP 连接可能会带来特殊挑战。SCTP 支持多宿主。如果使用多个 IP 地址, 这些地址作为 SCTP 数据包的一部分在关联建立期间传输 (在 INIT 和 INIT-ACK 块中)。如果仅使用单宿主 SCTP 端点, [RFC2960] 第 3.3.2.1 节指出:

  注意, 在 INIT 和 INIT-ACK 中不使用任何 IP 地址参数是使关联更有可能跨 NAT 盒工作的替代方案。

这意味着除非必要, 否则不应将 IP 地址放入 SCTP 数据包中。如果存在 NAT 并且包含 IP 地址, 则关联建立将失败。最近提出了 [AddIP], 它允许在建立关联后修改 IP 地址。修改消息在 SCTP 数据包中也有 IP 地址, 因此也会受到 NAT 的不利影响。

防火墙兼容性 (Firewall Compatibility)

由于防火墙被广泛部署, NAT-IPsec 兼容性解决方案必须使防火墙管理员能够创建简单的静态访问规则来允许或拒绝 IKE 和 IPsec NA(P)T 穿越流量。例如, 这意味着应该避免 IKE 或 IPsec 目的端口的动态分配。

可扩展性 (Scaling)

IPsec-NAT 兼容性解决方案应该能够在由数千名远程办公人员组成的安装中部署。在这种情况下, 不可能假设一次只有一个主机与给定目的地通信。因此, IPsec-NAT 兼容性解决方案必须解决重叠 SPD 条目和传入数据包解复用的问题。

模式支持 (Mode Support)

至少, IPsec-NAT 兼容性解决方案必须支持 [RFC2409] 和 [RFC2401] 中要求支持的 IKE 和 IPsec 模式的穿越。例如, IPsec 网关必须支持 ESP 隧道模式 NA(P)T 穿越, IPsec 主机必须支持 IPsec 传输模式 NA(P)T 穿越。AH 的目的是保护 IP 头部内的不可变字段 (包括地址), 而 NA(P)T 转换地址, 使 AH 完整性检查失效。因此, NA(P)T 和 AH 从根本上不兼容, 并且不要求 IPsec-NAT 兼容性解决方案支持 AH 传输或隧道模式。

向后兼容性和互操作性 (Backward Compatibility and Interoperability)

IPsec-NAT 兼容性解决方案必须与现有的 IKE/IPsec 实现互操作, 以便它们可以在没有 NA(P)T 的情况下通信。这意味着 IPsec-NAT 兼容性解决方案必须向后兼容 [RFC2401] 中定义的 IPsec 和 [RFC2409] 中定义的 IKE。此外, 它应该能够检测 NA(P)T 的存在, 以便仅在必要时使用 NA(P)T 穿越支持。这意味着必须能够确定现有的 IKE 实现不支持 NA(P)T 穿越, 以便可以进行标准的 IKE 对话, 如 [RFC2407]、[RFC2408] 和 [RFC2409] 中所述。请注意, 虽然这意味着向端口 500 发起 IKE, 但对特定源端口没有要求, 因此可能使用或不使用 UDP 源端口 500。

安全性 (Security)

IPsec-NAT 兼容性解决方案不得引入额外的 IKE 或 IPsec 安全漏洞。例如, 可接受的解决方案必须证明它不会引入新的拒绝服务或欺骗漏洞。IKE 必须被允许按照 [RFC2408] 中描述的方式以双向方式重新密钥。