自定义路线不适用于 Windows

Mic*_*son 4 windows vpn tcpip routing

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

我有一个连接到 10.0.0.0/8 的 VPN。VPN 网络实际上不使用 10.21.0.0/16 范围内的任何 IP。所以我应该能够配置我的路由表,通过无线局域网路由所有 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
Run Code Online (Sandbox Code Playgroud)

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

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

为了调试这个,我做了以下工作。

  1. 在路由器 (192.168.1.201) 上运行 tcpdump。我可以验证没有 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
Run Code Online (Sandbox Code Playgroud)

更新

根据要求,这里是输出 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:\>
Run Code Online (Sandbox Code Playgroud)

很好的捕获,这可能是问题所在。但是,即使为我知道已启动的特定主机添加路由,也不起作用。

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),
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*s S 5

您在本地网络接口上有 10/8。Windows 不会尝试将数据包路由到 10/8 子网(10.21/16 是 10/8 子网);根本不涉及路由。