无法使用 VPN 客户端更改路由

无法使用 VPN 客户端更改路由

我的 VPN 连接强制所有互联网流量通过隧道,这非常慢。我希望能够只通过隧道传输某些 IP 地址,并在我这边(客户端)执行此操作。

我正在使用 VPN 连接FortiSSL 客户端,在建立连接之前,路由表如下所示:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.101     40
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.0.0    255.255.255.0         On-link     192.168.0.101    276
    192.168.0.101  255.255.255.255         On-link     192.168.0.101    276
    192.168.0.255  255.255.255.255         On-link     192.168.0.101    276
    192.168.119.0    255.255.255.0         On-link     192.168.119.1    276
    192.168.119.1  255.255.255.255         On-link     192.168.119.1    276
  192.168.119.255  255.255.255.255         On-link     192.168.119.1    276
    192.168.221.0    255.255.255.0         On-link     192.168.221.1    276
    192.168.221.1  255.255.255.255         On-link     192.168.221.1    276
  192.168.221.255  255.255.255.255         On-link     192.168.221.1    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link     192.168.119.1    276
        224.0.0.0        240.0.0.0         On-link     192.168.221.1    276
        224.0.0.0        240.0.0.0         On-link     192.168.0.101    276
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link     192.168.119.1    276
  255.255.255.255  255.255.255.255         On-link     192.168.221.1    276
  255.255.255.255  255.255.255.255         On-link     192.168.0.101    276

连接后如下所示:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.101   4265
          0.0.0.0          0.0.0.0         On-link        172.16.0.1     21
        127.0.0.0        255.0.0.0         On-link         127.0.0.1   4531
        127.0.0.1  255.255.255.255         On-link         127.0.0.1   4531
  127.255.255.255  255.255.255.255         On-link         127.0.0.1   4531
       172.16.0.1  255.255.255.255         On-link        172.16.0.1    276
      192.168.0.0    255.255.255.0         On-link     192.168.0.101   4501
    192.168.0.101  255.255.255.255         On-link     192.168.0.101   4501
    192.168.0.255  255.255.255.255         On-link     192.168.0.101   4501
    192.168.119.0    255.255.255.0         On-link     192.168.119.1   4501
    192.168.119.1  255.255.255.255         On-link     192.168.119.1   4501
  192.168.119.255  255.255.255.255         On-link     192.168.119.1   4501
    192.168.221.0    255.255.255.0         On-link     192.168.221.1   4501
    192.168.221.1  255.255.255.255         On-link     192.168.221.1   4501
  192.168.221.255  255.255.255.255         On-link     192.168.221.1   4501
   200.250.246.74  255.255.255.255      192.168.0.1    192.168.0.101   4245
        224.0.0.0        240.0.0.0         On-link         127.0.0.1   4531
        224.0.0.0        240.0.0.0         On-link     192.168.119.1   4502
        224.0.0.0        240.0.0.0         On-link     192.168.221.1   4502
        224.0.0.0        240.0.0.0         On-link     192.168.0.101   4502
        224.0.0.0        240.0.0.0         On-link        172.16.0.1     21
  255.255.255.255  255.255.255.255         On-link         127.0.0.1   4531
  255.255.255.255  255.255.255.255         On-link     192.168.119.1   4501
  255.255.255.255  255.255.255.255         On-link     192.168.221.1   4501
  255.255.255.255  255.255.255.255         On-link     192.168.0.101   4501
  255.255.255.255  255.255.255.255         On-link        172.16.0.1    276

VPN 客户端设置了一个捕获所有路由,其度量值低于我所有其他路由,这会将所有互联网流量路由通过隧道。我尝试将默认互联网路由的度量值更改为较低的值:

C:\Windows\system32>route change 0.0.0.0 mask 0.0.0.0 192.168.0.1 metric 10 if 13
OK!

但什么都没改变。

然后我尝试删除 VPN 的“catch-all”路由,即上面度量为 21 的路由:

C:\Windows\system32>route delete 0.0.0.0 mask 0.0.0.0 if 50
OK!

它打破了一切:

C:\Windows\system32>ping 8.8.8.8

Pinging 8.8.8.8 with 32 bytes of data:
PING: transmit failed. General failure.

我也尝试更改适配器上的度量,但是 FortiSSL 客户端在连接时会覆盖所有设置,所以没有帮助。

解决方案必须由我这边来承担,因为另一边的人需要几天的时间才能做出回应。

如果有帮助的话,我正在运行 Windows 7 x64。

-- 更新 (2013-12-24) --

谢谢布朗尼的提示,我检查了这个问题罗希塔布并发现 FortiSSL 客户端通过NotifyRouteChangeIP Helper API 调用监视路由表。

我在通话前设置了一个断点NotifyRouteChange,并使用选项“跳过通话”成功阻止 FortiSSL 重置路由指标,现在我有:

具有有利于我的 Wifi 适配器的指标的路由

然而,当我运行 tracert 时,我的路由仍然通过 VPN 出去:

C:\Windows\system32>tracert www.google.com

Tracing route to www.google.com [173.194.118.83]
over a maximum of 30 hops:

  1    45 ms    47 ms    45 ms  Jurema [172.16.0.1]

我不知道 Windows 网络是否有任何方面可以支持某条路线,即使路线打印的指标表明并非如此?

答案1

请注意,我在这里没有使用常规的网络符号进行寻址(例如 CIDR 或甚至host/mask符号,以免让提问者感到困惑)。

不要删除您的“默认网关”路由(0.0.0.0 mask 0.0.0.0),这样您的网络堆栈就不知道将大多数数据包发送到哪里,而是尝试将 VPN 路由的度量提高到低于默认路由的度量(在本例中4265)。

连接 Fortigate 客户端后:

route change 0.0.0.0 mask 0.0.0.0 172.16.0.1 metric 4266 if N

fortissl其中 N 是开头返回的接口的接口号route print

网络堆栈应该正确处理这个问题:

  • “包含目标地址”的路由将处理数据包(该路由告诉网络堆栈发送发往的数据包以this IP进行this gateway进一步路由)。
  • 所有带有目标 IP 的数据包都172.16.*.*将发送到 VPN;因为 Windows 网络堆栈知道,如果某个接口上附加了地址,则该接口就是您访问该地址范围内其他 IP 的方式。如果您发布“子网掩码”,我可以更清楚地了解该范围172.16.0.1

您必须确定需要通过 VPN 访问的资源的 IP 地址。您可以nslookup [hostname of resource]在连接时使用,无需调整路由,轻松完成此操作。

[咆哮]

我不反对通过 VPN 进行拆分隧道,特别是考虑到您提到的使用问题。如果您的 IT 部门认为拆分隧道是一种安全机制,那么他们需要重新考虑他们正在做的事情:

  • VPN 客户端对资源的访问应该被隔离并受到严格限制,就像通过 Internet 访问一样(因为您无法完全控制的资产比您可以完全控制的资产具有更高的风险)。
  • 他们应该为 VPN 客户端集成网络访问控制机制。这样他们就可以在客户端机器上执行某些策略(例如“防病毒定义是否是最新的?”等等)。
  • 考虑使用如下刚性解决方案Fortigate SSL VPN 虚拟桌面(使用 SSL VPN 许可证,配置起来相当容易,而且免费 [我认为])。

[/咆哮]

相关内容