Пользовательский маршрут не работает на окнах

Мой ноутбук с 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.

Чтобы отладить это, я сделал следующее.

  1. Запустите tcpdump на маршрутизаторе (192.168.1.201). Я могу убедиться, что на этот интерфейс не поступают пакеты для 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 на интерфейсе, к которому подключен ноутбук.

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

Маршрут с самым длинным совпадающим префиксом всегда предпочтителен, поэтому метрика маршрута в этом случае не действует. Метрика используется только при наличии двух маршрутов с одинаковым префиксом.

Другие вопросы по тегам