

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS Client VPN 客户端路由强制执行
<a name="cvpn-working-cre"></a>

客户端路由强制执行有助于在通过 VPN 连接的设备上强制执行管理员定义的路由。此功能可确保已连接客户端的网络流量不会无意中发送到 VPN 隧道之外，从而帮助改善您的安全状况。

客户端路由强制执行监控已连接设备的主路由表，并根据客户端 VPN 端点中配置的网络路由，确保出站网络流量流向 VPN 隧道。这包括在检测到与 VPN 隧道冲突的路由时修改设备上的路由表。客户端路由强制同时支持 IPv4 和 IPv6 地址系列。

## 要求
<a name="requirements-cre"></a>

客户端路由强制仅适用于以下 AWS 提供的 Client VPN 版本：
+ Windows 版本 5.2.0 或更高版本（IPv4 支持）
+ macOS 版本 5.2.0 或更高版本（支持）IPv4 
+ Ubuntu 版本 5.2.0 或更高版本（支持）IPv4 
+ Windows 版本 5.3.0 或更高版本（IPv6 支持）
+ macOS 版本 5.3.0 或更高版本（支持）IPv6 
+ Ubuntu 版本 5.3.0 或更高版本（支持）IPv6 

对于双堆栈端点，“客户端路由强制” 设置同时应用于两个堆栈 IPv4 和 IPv6 堆栈。不可能仅为一个堆栈启用客户端路由强制执行设置。

## 路由冲突
<a name="route-conflict-cre"></a>

当客户端连接到 VPN 时，系统会对客户端的本地路由表和端点的网络路由进行比较。如果两个路由表条目之间存在网络重叠，则会发生路由冲突。网络重叠的一个示例是：
+ `172.31.0.0/16`
+ `172.31.1.0/24`

在本示例中，这些 CIDR 数据块构成路由冲突。例如，`172.31.0.0/16` 可能是 VPN 隧道 CIDR。由于 `172.31.1.0/24` 前缀更长，因此更具体，它通常会拥有优先级，并有可能将 `172.31.1.0/24` IP 范围内的 VPN 流量重定向到另一个目标。这可能会导致意外的路由行为。但是，启用客户端路由强制执行功能后，后一个 CIDR 将被删除。使用此功能时，应考虑潜在的路由冲突。

全隧道 VPN 连接通过 VPN 连接引导所有网络流量。因此，如果启用了客户端路由强制执行功能，则连接到 VPN 的设备将无法访问本地网络（LAN）资源。如果需要访问本地 LAN，请考虑使用拆分隧道模式而不是全隧道模式。有关拆分隧道的更多信息，请参阅 [拆分隧道 Client VPN](split-tunnel-vpn.md)。

## 注意事项
<a name="considerations-cre"></a>

在激活客户端路由强制执行功能之前，应考虑以下信息。
+ 在连接时，如果检测到路由冲突，此功能将更新客户端的路由表，将流量引导到 VPN 隧道。在建立连接之前存在并被此功能删除的路由将恢复。
+ 此功能仅针对主路由表强制执行，不适用于其他路由机制。例如，强制执行不适用于以下情况：
  + 基于策略的路由
  + 接口范围内的路由
+ 客户端路由强制执行在 VPN 隧道打开时对其进行保护。隧道断开连接后或客户端重新连接时不会提供任何保护。

### OpenVPN 指令对客户端路由强制执行的影响
<a name="considerations-openvpn"></a>

OpenVPN 配置文件中的一些自定义指令与客户端路由强制执行有特定的交互：
+ `route` 指令 
  + 向 VPN 网关添加路由时。例如，将路由 `192.168.100.0 255.255.255.0` 添加到 VPN 网关。

    与任何其他 VPN 路由一样，添加到 VPN 网关的路由也由客户端路由强制执行监控。系统将检测并删除其中的任何冲突路由。
  + 向非 VPN 网关添加路由时。例如，添加路由 `192.168.200.0 255.255.255.0 net_gateway`。

    添加到非 VPN 网关的路由将被排除在客户端路由强制执行之外，因为它们会绕过 VPN 隧道。允许其中存在冲突路由。在示例中，客户端路由强制执行将不对上述路由进行监控。
  + 与 IPv4 路由类似， IPv6 添加到 VPN 网关的路由由客户端路由强制监控，而添加到非 VPN 网关的路由则不受监控。

### 忽略的路由
<a name="cre-ignored"></a>

客户端路由强制将忽略到以下 IPv4 网络的路由：
+ `127.0.0.0/8` - 为本地主机预留
+ `169.254.0.0/16` - 为链路本地地址预留
+ `224.0.0.0/4` - 为组播预留
+ `255.255.255.255/32` - 为广播预留

客户端路由强制将忽略到以下 IPv6 网络的路由：
+ `::1/128` - 为环回预留 
+ `fe80::/10` - 为链路本地地址预留 
+ `ff00::/8` - 为组播预留 

**Topics**
+ [要求](#requirements-cre)
+ [路由冲突](#route-conflict-cre)
+ [注意事项](#considerations-cre)
+ [激活客户端路由强制执行](activate-cre.md)
+ [停用客户端路由强制执行](deactivate-cre.md)
+ [对 IPv6 客户端路由强制执行进行故障排除](cre-ipv6-troubleshooting.md)