Пользовательский маршрут не работает на окнах
Мой ноутбук с 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.
Чтобы отладить это, я сделал следующее.
- Запустите tcpdump на маршрутизаторе (192.168.1.201). Я могу убедиться, что на этот интерфейс не поступают пакеты для 10.21.0.0.
- Отключите iptables на маршрутизаторе. Отключить брандмауэр Windows.
- Запустите Wireshark на моем ноутбуке, чтобы узнать, к какому интерфейсу отправляются запросы ping. Но я не вижу, чтобы они никуда уходили!!
- Команда 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 на интерфейсе, к которому подключен ноутбук.
2 ответа
У вас есть 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
Маршрут с самым длинным совпадающим префиксом всегда предпочтителен, поэтому метрика маршрута в этом случае не действует. Метрика используется только при наличии двух маршрутов с одинаковым префиксом.