私のWindowsラップトップは192.168.1.0/24(無線LAN)に直接接続されています。両方のネットワークに接続されているルーターを介して10.21.0.0/16にアクセスします。この構成では、ルーティングは正常に機能します。
10.0.0.0/8に接続するVPNがあります。 VPNネットワークは、実際には10.21.0.0/16の範囲のIPを使用しません。したがって、すべての10.21.0.0/16 IPを無線LAN経由でルーティングし、他のすべての10.0.0.0/8をVPN経由でルーティングするようにルーティングテーブルを構成できるはずです。
私の理解では、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.0ネットワーク上のどのマシンにもpingを実行できません。しかし、私は10.0.0.0の他のものにアクセスできます。 192.168.1.0のものにもアクセスできます。
これをデバッグするために、私は次のことを行いました。
ルーティングテーブルの関連セクションは次のとおりです。
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へのパケットが表示されません。
ローカルネットワークインターフェイスに10/8があります。 Windowsはパケットを10/8サブネットにルーティングしようとしません(10.21/16は10/8のサブネットです)。ルーティングはまったく含まれていません。
ルーティングテーブルは正しいようです。 VPNネットワークフィルタードライバーがルーティングテーブルを使用せずに、10.21.0.0/16宛てのパケットをVPNアダプターに直接ルーティングするか、ドロップする可能性があります。
ネットワーク接続のプロパティでVPNフィルタードライバーを無効にして、同じ構成を試すことはできますか?プロパティにVPNソフトウェアの項目が表示されているはずです。チェックを外し、[OK]をクリックして無効にします。下の画像は私のコンピューターからのものなので、コンピューターにはありません。 VPN関連のアイテムも表示されない場合は、VPNソフトウェアがルーティングテーブルを使用する必要があります。これは、独自のフィルタードライバーなしでルーティングテーブルをバイパスする方法がわからないためです。
ちなみに、コンピューターに同じルートを追加し、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
一致するプレフィックスが最も長いルートが常に優先されるため、この場合、ルートメトリックは効果がありません。メトリックは、同じプレフィックスを持つ2つのルートがある場合にのみ使用されます。