Назад | Перейти на главную страницу

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

Мой ноутбук с 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. Запустите wirehark на моем ноутбуке, чтобы проверить, на какой интерфейс отправляются запросы 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 на интерфейсе, к которому подключен ноутбук.

У вас 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

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