AWS Client VPN 客户端路由强制执行
客户端路由强制执行有助于在通过 VPN 连接的设备上强制执行管理员定义的路由。此功能可确保已连接客户端的网络流量不会无意中发送到 VPN 隧道之外,从而帮助改善您的安全状况。
客户端路由强制执行监控已连接设备的主路由表,并根据客户端 VPN 端点中配置的网络路由,确保出站网络流量流向 VPN 隧道。这包括在检测到与 VPN 隧道冲突的路由时修改设备上的路由表。客户端路由强制执行同时支持 IPv4 和 IPv6 地址系列。
要求
客户端路由强制执行仅适用于以下 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 堆栈。不可能仅为一个堆栈启用客户端路由强制执行设置。
路由冲突
当客户端连接到 VPN 时,系统会对客户端的本地路由表和端点的网络路由进行比较。如果两个路由表条目之间存在网络重叠,则会发生路由冲突。网络重叠的一个示例是:
172.31.0.0/16172.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。
注意事项
在激活客户端路由强制执行功能之前,应考虑以下信息。
在连接时,如果检测到路由冲突,此功能将更新客户端的路由表,将流量引导到 VPN 隧道。在建立连接之前存在并被此功能删除的路由将恢复。
此功能仅针对主路由表强制执行,不适用于其他路由机制。例如,强制执行不适用于以下情况:
-
基于策略的路由
-
接口范围内的路由
-
客户端路由强制执行在 VPN 隧道打开时对其进行保护。隧道断开连接后或客户端重新连接时不会提供任何保护。
OpenVPN 指令对客户端路由强制执行的影响
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 路由类似,添加到 VPN 网关的 IPv6 路由由客户端路由强制执行监控,而添加到非 VPN 网关的路由则不受监控。
-
忽略的路由
客户端路由强制执行将忽略到以下 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- 为组播预留