自定义路线不能在Windows上工作

我的Windows笔记本电脑直接连接到192.168.1.0/24(无线局域网)。 我通过连接到两个networking的路由器访问10.21.0.0/16。 这个configuration路由工作正常。

我有一个VPN,连接到10.0.0.0/8。 VPNnetworking实际上并不使用10.21.0.0/16范围内的任何IP。 所以我应该可以configuration我的路由表,通过无线局域网路由所有的10.21.0.0/16 IP地址,而通过VPN路由表的所有10.0.0.0/8路由器。

我的理解是,如果10.21.0.0的指标低于10.0.0.0,我可以这样做。 自动为VPN(10.0.0.0)分配度量20.我手动为WLAN分配了一个度量标准1.我使用以下命令手动将条目添加到路由表中:

route add 10.21.0.0 mask 255.255.0.0 192.168.1.201 metric 1 

然后为该路线分配一个度量2(这是预期的)。

问题是它不起作用。 我无法在10.21.0.0networking上ping任何计算机。 但是我可以访问10.0.0.0上的其他东西。 我也可以访问192.168.1.0上的东西。

为了debugging,我做了以下。

  1. 在路由器上运行tcpdump(192.168.1.201)。 我可以validation没有数据包的10.21.0.0到达该接口。
  2. 禁用路由器上的iptables。 禁用Windows防火墙。
  3. 在我的笔记本电脑上运行wireshark,尝试查看ping请求转到哪个接口。 但我不能看到他们去任何地方!
  4. ping命令不会收到任何“目标不可达”消息。

这是路由表的相关部分。

 IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.201 192.168.1.18 2 10.0.0.0 255.0.0.0 On-link 10.55.44.203 20 10.21.0.0 255.255.0.0 192.168.1.201 192.168.1.18 2 

更新

根据要求,这里是route print 10.21.0.1的输出

 C:\>route print 10.21.0.1 =========================================================================== Interface List 17...02 50 f2 00 00 05 ......AGN Virtual Network Adapter 16...a0 88 b4 e1 8f 20 ......Intel(R) Centrino(R) Advanced-N 6205 1...........................Software Loopback Interface 1 10...00 00 00 00 00 00 00 e0 Microsoft Teredo Tunneling Adapter 11...00 00 00 00 00 00 00 e0 Microsoft 6to4 Adapter 18...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter 47...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2 =========================================================================== IPv4 Route Table =========================================================================== Active Routes: None Persistent Routes: None IPv6 Route Table =========================================================================== Active Routes: None Persistent Routes: None C:\> 

好的,这里可能是问题所在。 但是,唉,即使为我知道的一个特定的主机添加路由,也是行不通的。

 C:\>route print 10.* =========================================================================== Interface List 17...02 50 f2 00 00 05 ......AGN Virtual Network Adapter 16...a0 88 b4 e1 8f 20 ......Intel(R) Centrino(R) Advanced-N 6205 1...........................Software Loopback Interface 1 10...00 00 00 00 00 00 00 e0 Microsoft Teredo Tunneling Adapter 11...00 00 00 00 00 00 00 e0 Microsoft 6to4 Adapter 18...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter 47...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2 =========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 10.0.0.0 255.0.0.0 On-link 10.76.206.8 20 10.21.0.0 255.255.0.0 192.168.1.201 192.168.1.18 2 10.21.61.1 255.255.255.255 192.168.1.201 192.168.1.18 2 10.76.206.0 255.255.255.0 On-link 10.76.206.8 276 10.76.206.8 255.255.255.255 On-link 10.76.206.8 276 10.76.206.255 255.255.255.255 On-link 10.76.206.8 276 10.255.255.255 255.255.255.255 On-link 10.76.206.8 276 =========================================================================== Persistent Routes: None C:\>ping 10.21.61.1 Pinging 10.21.61.1 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 10.21.61.1: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), 

如果我连接到路由器(192.168.1.201)并运行tcpdump,笔记本电脑所连接的接口上看不到任何数据包到10.21.0.0/16。

你有一个本地networking接口10/8。 Windows不会尝试将数据包路由到10/8子网(10.21 / 16是10/8的子网)。 根本没有路由。

你的路由表看起来正确。 您的VPNnetworkingfilter驱动程序可能不使用路由表,而是直接将目的地为10.21.0.0/16的数据包路由到VPN适配器,甚至丢弃它们。

你可以尝试相同的configuration,但在networking连接属性中禁用VPNfilter驱动程序? 您应该在属性中看到VPN软件的项目,只需取消选中它,然后单击确定即可将其禁用。 下面的图片来自我的电脑,所以没有一个。 如果你没有看到任何VPN相关的项目,VPN软件必须使用路由表,因为我没有看到它如何绕过它没有自己的filter驱动程序。

网络连接属性

为了logging,我在计算机上添加了相同的路由,并使用route print命令得到了类似的结果,所以即使令人惊讶的是10.21.0.1没有匹配,我也不确定它们是否表示有任何问题。 我过滤输出只显示相关的部分。

 C:\>route print 10.* =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 10.0.0.0 255.0.0.0 192.168.1.1 192.168.1.2 1 10.21.0.0 255.255.0.0 192.168.1.1 192.168.1.2 1 Default Gateway: 192.168.1.1 =========================================================================== Persistent Routes: None C:\>route print 10.21.* =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 10.21.0.0 255.255.0.0 192.168.1.1 192.168.1.2 1 Default Gateway: 192.168.1.1 =========================================================================== Persistent Routes: None C:\>route print 10.21.0.1 =========================================================================== Active Routes: Default Gateway: 192.168.1.1 None Persistent Routes: None 

匹配前缀最长的路由始终是首选,所以在这种情况下路由度量不起作用。 该度量仅用于具有相同前缀的两条路由。