Мой ноутбук с Windows напрямую подключен к 192.168.1.0/24 (беспроводная сеть). Я получаю доступ к 10.21.0.0/16 через маршрутизатор, подключенный к обеим сетям. Маршрутизация отлично работает с этой конфигурацией.
У меня есть VPN, которая подключается к 10.0.0.0/8. Сеть VPN фактически не использует IP-адреса в диапазоне 10.21.0.0/16. Таким образом, я должен иметь возможность настроить свою таблицу маршрутизации для маршрутизации всех IP-адресов 10.21.0.0/16 через беспроводную сеть, а всех остальных 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. Но я могу получить доступ к другим вещам на 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
Маршрут с самым длинным совпадающим префиксом всегда является предпочтительным, поэтому метрика маршрута в этом случае не действует. Метрика используется только при наличии двух маршрутов с одинаковым префиксом.