Windows 7 中的持久路由和 VPN 连接问题

Windows 7 中的持久路由和 VPN 连接问题

我家里的 PC 和办公室之间有 VPN 连接。办公室网络有防火墙,安全区在 192.168.0.*,DMZ 在 10.0.0.*

从外部来看,www.mycompany.com 路由到公共 IP - 比如 1.2.3.4。我们的防火墙将其 NAT 到 10.0.0.4。从办公室 LAN 内部来看,我们使用域控制器上的 DNS 记录将 www.mycompany.com 直接解析到 10.0.0.4,因为我们无法路由到我们自己的防火墙的公共接口。

当我从家里连接 VPN 时,我会通过 DHCP 获得分配的 192.168.0.* IP,但由于我没有使用 VPN 作为默认网关,所以除非我手动添加路由,否则我无法路由到 10.0.0.* 地址。

我已经创建了一条持久路由,以通过安全防火墙区域上的默认网关传递 10.0.0.* 子网的流量:

route add -p 10.0.0.0 mask 255.255.255.0 192.168.0.1

问题就在这里。当我重新启动时,路由仍然出现在路由表中 - 很好。如果我随后连接 VPN,路由会出现,但不起作用 - 我无法路由到 10.0.0.0 子网上的任何东西。但是,如果我在连接 VPN 后删除并重新添加路由,它就可以正常工作。

我不知道为什么会这样。前后配置相同 - 相同的 IP,相同的路由表 - 但是如果我创建路由然后连接,它会失败;如果我连接 VPN 然后创建路由,它会成功。

寻找任何关于如何稳定配置或在 VPN 连接时自动创建路由的提示?

答案1

说实话,有几个原因导致它无法正常工作。不过现在我们先不谈这个。

不要向 IP 地址添加任意路由,而是尝试添加具有指定“接口”的路由。

即当连接到 VPN 时如果你执行以下操作:

route print

并在列表中查找“接口”,它应该有一个分配给 VPN 接口的编号。

19...00 0e 2e 65 ca 61 ......Realtek RTL8139/810x 系列快速以太网网卡
 12...00 26 55 44 95 3c ......Broadcom NetXtreme 千兆以太网
 28...00 00 00 00 00 00 ......MyVPN 接口
  1..............................软件环回接口1
 13...00 00 00 00 00 00 00 e0 Microsoft ISATAP 适配器
 11...00 00 00 00 00 00 00 e0 Microsoft Teredo 隧道适配器

在我的示例中... #28 是我的 vpn。因此,添加路由时...请执行以下操作:

route add -p 10.0.0.0 mask 255.255.255.0 192.168.0.1 if 28

这是什么应该为您做的是添加路由...仅当该接口处于开启状态时。它仍将位于“持久路由”中...但直到该接口处于开启状态时才会真正添加到路由表中...并且当接口关闭时它会再次被删除。

答案2

如果您有多个 VPN,您可能会遇到这样的问题:当它们以随机顺序连接时,它们的接口 ID 会发生变化。在这种情况下,正常ROUTE -P ADD 10.0.0.0 MASK 255.255.0.0 10.0.0.1 IF 42操作不起作用。下次 VPN 连接时,它可能具有不同的接口号。

Powershell 有一个可用的 cmdlet,可以在 VPN 连接上添加路由,并在 VPN 断开连接时再次删除它们:添加 VpnConnectionRoute. 无需指定接口 ID 即可工作。

基本语法如下:

Add-VpnConnectionRoute -ConnectionName "VPN Connection Name" -DestinationPrefix 10.0.0.0/16

输入该命令后,在VPN连接/断开连接时将自动创建/删除路由。

相关内容