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

Windows Vista и 7 не соблюдают метрику таблицы маршрутизации?

У меня есть таблица маршрутов ниже на машине Vista, я вижу ту же проблему и на Windows 7.

Если я пингую 193.181.14.10, я ожидаю, что ОС будет соблюдать метрику, и выберу либо

0.0.0.0          0.0.0.0       10.1.1.254     172.20.22.14      3

или

0.0.0.0          0.0.0.0      172.20.22.1     172.20.22.14      3

Оказывается, он действительно решил использовать

0.0.0.0          0.0.0.0       10.1.1.254        10.1.1.55     30

маршрут. Так что, если я удалю этот маршрут из таблицы, он сработает. Под работой я имею в виду, что пакеты отправляются через интерфейс 172.20.22.14, а не через интерфейс 10.1.1.55.

Я что-то упускаю или это ошибка ОС?

IPv4 Route Table  
===========================================================================  
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0       10.1.1.254     172.20.22.14      3
          0.0.0.0          0.0.0.0       10.1.1.254        10.1.1.55     30
          0.0.0.0          0.0.0.0      172.20.22.1     172.20.22.14      3
         10.1.1.0    255.255.255.0         On-link         10.1.1.55     30
         10.1.1.0    255.255.255.0         On-link      172.20.22.14      3
         10.1.1.1  255.255.255.255         On-link         10.1.1.55     30
         10.1.1.1  255.255.255.255         On-link      172.20.22.14      3
        10.1.1.55  255.255.255.255         On-link         10.1.1.55     30
        10.1.1.55  255.255.255.255         On-link      172.20.22.14      3
       10.1.1.255  255.255.255.255         On-link         10.1.1.55     30
       10.1.1.255  255.255.255.255         On-link      172.20.22.14      3
      61.27.12.22  255.255.255.255       10.1.1.254        10.1.1.55      2
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      172.20.22.0    255.255.255.0         On-link      172.20.22.14      3
     172.20.22.14  255.255.255.255         On-link      172.20.22.14      3
    172.20.22.255  255.255.255.255         On-link      172.20.22.14      3
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link         10.1.1.55     30
        224.0.0.0        240.0.0.0         On-link      172.20.22.14      3
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link         10.1.1.55     30
  255.255.255.255  255.255.255.255         On-link      172.20.22.14      3
===========================================================================
Persistent Routes:
  None

У меня такая же проблема с Server 2008. Я разместил здесь подробный вопрос. Windows Server 2008 игнорирует постоянный маршрут с более низкой метрикой.

Похоже, Microsoft пошла своим путем, когда переработала новую реализацию стека TCP.

Решение, предложенное техподдержкой Microsoft, состоит в том, чтобы настроить сетевую карту на игнорирование всех правил маршрутизации по умолчанию и воссоздать все правила маршрутизации вручную в виде постоянных маршрутов. Это отстой, но это может быть единственный выход.

Чтобы игнорировать маршруты по умолчанию:

netsh interface ipv4 set interface [ID] ignoredefaultroutes=enabled

Чтобы получить идентификатор своей сетевой карты:

netsh interface ipv4 show interface

Это может помочь: https://superuser.com/a/455968/253137

Вкратце: Центр управления сетями и общим доступом, Изменить настройки адаптера, Дополнительно, Дополнительные настройки, а затем переместить адаптер для 172.20.22.14 вверх в списке.

netsh interface ipv4 set interface "Local Area Connection" metric=999