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


8

我的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客户端使用比我的所有其他路由更低的度量标准的catch-all路由,并且这通过隧道路由所有互联网流量。 我尝试将默认的互联网路线指标更改为较低的值:

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

但没有改变。

然后我尝试删除VPN的“全能”路线,上面是公制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 Client在连接时会覆盖所有设置,所以它没有帮助。

修复必须来自我的方面,因为另一方的民众需要几天的时间来回应。

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

- 更新(2013-12-24) -

谢谢 mbrownnyc 小费,我检查过这个问题 Rohitab 并发现FortiSSL Client用手表查看路线表 NotifyRouteChange IP Helper API调用。

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

Routes with metrics favoring my Wifi adapter

然而,当我运行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网络的任何方面我不知道哪个可以支持某个路线,即使路线打印的指标另有说法?


您的VPN客户端是否应该强制执行该策略?该公司可能有一个安全策略,要求您不要使用拆分隧道,并规避该策略将是一个安全风险。
Ryan Ries

恰恰相反。我现在可以访问该公司的合作伙伴的IP限制网络服务,因为我的网络流量通过他们的互联网IP地址发出。这是一个非常懒惰的配置,因为“我将通过VPN隧道传输一切,所以我永远不必在路由表中添加另一个IP或子网”。

@Juliano避免拆分隧道的目的是防止用户进入一个隧道,然后访问另一个隧道上的数据。我希望你能够访问你正在通过网络访问的网络,如果你在网络上,你将拥有相同的访问权限。但是,您不希望使用拆分隧道来授予对该世界的访问权限。
BillThor

2
实际上,如果我在该网络上,我将能够设置我的路线和指标,优先考虑我想要的互联网连接(3g / 4g即。)。我有这个选择,因为我不会受到一个可笑的限制性VPN客户端的限制。从理论上讲,防止分离隧道听起来没问题,但它比我实际上在网络上的情况更加限制了我。你们正在为安全实施提供理由,这会伤害我,而不是帮助我找到出路,这就是手头的问题。我该如何绕过这个?

还有界面指标: ncpa.cpl > NIC属性> 这篇关于多宿主Windows的博客文章 。
mbrownnyc

Answers:


2

请注意,我没有使用常规网络表示法来解决此问题(例如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

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

网络堆栈应该正确对待:

  • “包含目标地址”的路由将处理数据包(路由告诉网络堆栈发送目的地的数据包) this IPthis 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许可证,这是相当容易配置和免费的[我认为])。

[/咆哮]


当我尝试将VPN的0.0.0.0路由度量更改为高于互联网路由的值时,FortiSSL客户端将我的互联网路由设置为更高的度量标准。
Juliano

“after”表上有两个默认网关路由。 VPN为0.0.0.0,wifi卡为0.0.0.0。我删除了VPN的默认网关但留下了wifi卡的一个,这应该像以前一样,但它打破了一切。无论是fortissl做什么到堆栈,以防止人们做我正在尝试做的事情,或者我做错了。
Juliano

它们是不同的接口,因此您应该能够分别调整路由的路由成本。如果客户观看路由表,那么没有任何东西可以帮助你。 Cisco VPN客户端配置了可在系统上控制的PRF文件。 Fortigate SSL客户端可能是相同的,无论是注册表还是文件。我只是不确定设置在哪里。稍微捅一下,你可能会找到允许你配置客户端的东西。此外,“支持拆分隧道”是在Fortigate单元上配置“服务器端”/。
mbrownnyc

看看: HKEY_CURRENT_USER\Software\Fortinet\SslvpnClientTunnel 应该很有趣。请回复你找到的内容。或回答并标记为 community wiki 这样你就可以帮助他人。
mbrownnyc

1
太糟糕了。不确定你的情况,但值得提出拆分隧道的请求吗?否则,看起来你将不得不用rohitab或MSFT的弯路来劫持一些API调用。这可能是一个有趣的周末项目!
mbrownnyc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.