Изменить метрику маршрута windows

Обновлено: 06.07.2024

Компьютер может быть одновременно подключён к нескольким сетям и любую из них использовать для Интернет-доступа. При этом для выхода в глобальную сеть, на самом деле, используется только одна сеть, а другая (или другие) находятся в резерве. Операционная система выбирает то подключение, которое обладает лучшими характеристиками.

Чтобы узнать, какое подключение является лучшим, для каждого из них вычисляется так называемая метрика — условное значение, которое учитывает сразу несколько параметров — скорость сети, потери пакетов и другое.

Смотрим таблицу маршрутизации

Открываем PowerShell и выполняем команду:

Особое внимание надо обратить на строки, выделенные красным и зеленым. Сетевой адрес 0.0.0.0 и маска сети 0.0.0.0 это обозначение маршрута по умолчанию (default route). Это тот маршрут, куда отправляется трафик, для которого явно не прописан другой маршрут.

Посмотрим для примера на строку, которая может быть в списке маршрутов:

В ней есть сетевой адрес 192.168.110.0 с маской подсети 255.255.255.0 — то есть это любые IP-адреса в диапазоне 192.168.110.0—192.168.110.255 . Так вот, для этих адресов явно прописан маршрут — пакеты будут отправлены через интерфейс 192.168.110.2 .

Для выбора Интернет-подключения по умолчанию нужно изменить маршрут по умолчанию.

Изменение маршрута по умолчанию

Вернёмся к ранее полученным данным о маршруте по умолчанию:

Из него следует, что у одного сетевого интерфейса IP-адрес 192.168.110.2 и метрика равна 291, у другого — IP-адрес 192.168.220.2 и метрика равна 317. Выигрывает тот маршрут, у которого значение метрики меньше (чем меньше метрика, тем лучше подключение). Таким образом, при выходе в Интернет, будет использоваться сетевой интерфейс 192.168.110.2 .

Есть два способа изменить маршрут по умолчанию. Первый — изменить значение метрики так, чтобы приоритетным стал другой маршрут. Второй — удалить другие маршруты, оставив только один.

Как установить метрику

Для начала удалим все маршруты по умолчанию:

Теперь добавляем тот, который нужно сделать маршрутом по умолчанию:

Здесь 192.168.220.1 — шлюз того интерфейса, через который будет выход в интернет. На данном этапе уже вернулось интернет-подключение и если достаточного одного подключения, то дальше можно не продолжать.

Чтобы в качестве резервного было активно и второе подключение, но по умолчанию не использовалось — добавляем еще один маршрут по умолчанию:

Здесь 192.168.110.1 — IP-адрес шлюза «резервного» интерфейса. Здесь важно знать, что значение метрики 100 является не абсолютным, а относительным. Указанная величина добавляется к тому значению метрики, которое рассчитывает операционная система. Это значение нужно выбрать так, чтобы в сумме с рассчитанной метрикой получилось больше, чем метрика подключения, которое должно использоваться по умолчанию.

Проверяем, что получилось в итоге:

Создание постоянных маршрутов

По умолчанию, все прописанные маршруты, в том числе значения метрик, будут сброшены при перезагрузке компьютера. С помощью ключа -p можно создавать постоянные маршруты, которые будут сохранены после перезагрузки.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Оглавление

Если у вас Linux, то смотрите статью «Практика настройки сетевых маршрутов: выбор подключения, используемое для Интернета; одновременное использование нескольких подключений для разных целей». В ней же вы найдёте дополнительные трюки для манипуляции сетевыми маршрутами, которые будут работать, в том числе, и на Windows.

Выбор подключения к Интернету

Компьютер может быть подключён сразу к нескольким сетям: например, к проводной сети и к беспроводной; или к двум Wi-Fi сетям; или использовать телефон в качестве модема через Bluetooth и при этом быть подключённым к проводной и Wi-Fi сети; или быть подключённым к четырём Wi-Fi сетям – да что угодно!

Если вы выходите в Интернет, как операционная система выбирает, какое именно из нескольких подключений использовать? Система действует очень мудро – она не пренебрегает ни одним из подключений. И в случае потери связи с одним из них – использует другое.

Но ведь ей в любом случае нужно выбрать, какое подключение использовать в данный момент! И система опять поступает мудро – она использует лучшее подключение. Чтобы узнать, какое подключение является лучшим, для каждого из них вычисляется так называемая Метрика – условное значение, которое учитывает сразу несколько параметров – скорость сети, потери пакетов и другое.

Рассмотрим реальный пример. Мой компьютер подключён к двум Wi-Fi сетям. Чтобы узнать характеристики маршрутов, откроем командную строку Windows, для этого нажмите Win+x, и выберите Windows PowerShell (Администратор). В открывшемся окне командной строки наберите команду


Особое внимание обратите на строки:

Сетевой адрес 0.0.0.0 и маска сети 0.0.0.0 это обозначение маршрута по умолчанию (default route). Это тот маршрут, куда отправляется трафик, для которого явно не прописан другой маршрут.

Например, там же мы можем увидеть строку

В ней есть сетевой адрес 192.168.56.0 с маской подсети 255.255.255.0 – то есть это любые IP адреса в диапазоне 192.168.56.0-192.168.56.255. Так вот, для этих адресов явно прописан маршрут – они будут отправлены в 192.168.56.1.

Но если будет запрошен любой другой IP, который отсутствует в таблице (т.е. для которого не указан конкретный маршрут), то он будет отправлен по маршруту по умолчанию – это то, что указано для сети 0.0.0.0 с маской 0.0.0.0. Самым типичным трафиком, отправляемым по default route является Интернет-трафик (а также трафик в другие локальные сети, к которым ваш компьютер непосредственно не подключён – но для домашних сетей это редкая ситуация).

Для выбора Интернет-подключения по умолчанию нужно изменить маршрут по умолчанию.

Изменение маршрута по умолчанию в Windows

Вернёмся к ранее полученным данным о маршруте по умолчанию:


Из него следует, что у одного из моих интерфейсов IP адрес 192.168.0.49 и у него метрика равна 55, у другого сетевого интерфейса IP 192.168.1.43 и метрика равна 70. Выигрывает тот маршрут, у которого значение метрики меньше (чем меньше метрика, тем лучше подключение).

Таким образом, если я будут выходить в Интернет, то будет использоваться сетевой интерфейс 192.168.0.49.


Я получил, что мой IP 109.126.249.183, а мой локальный IP 192.168.0.49. В командной строке Windows делаю трассировку:


Как можно увидеть по первой строке, я действительно выхожу в интернет через шлюз 192.168.0.1.

Итак, способов изменить маршрут по умолчанию сразу несколько. Например, можно изменить значение метрики так, чтобы приоритетным стал другой маршрут. Второй вариант – удалить другие маршруты, оставив только один.

Как установить метрику для сетевых подключений в Windows

Чтобы было понятно, покажу на конкретном примере. У меня два сетевых интерфейса с IP адресами:

  • 192.168.0.49 (имеет шлюз 192.168.0.1) – используется по умолчанию
  • 192.168.1.43 (имеет шлюз 192.168.1.1) – хочу чтобы он использовался по умолчанию

Для этого удаляю все маршруты по умолчанию:

Теперь добавляю тот, который я хочу сделать маршрутом по умолчанию, командой вида:

В ней ШЛЮЗ нужно заменить на IP адрес шлюза (роутера) того интерфейса, через который вы хотите выходить в Интернет. Для меня это:

На данном этапе уже вернулось Интернет-подключение и если вам достаточного одного подключения, то можно не продолжать.

Тем не менее, я хочу чтобы в качестве резервного у меня было активно и второе подключение, но чтобы оно по умолчанию не использовалось.

Для его добавления используется команда следующего вида:

Обратите внимание, что вместо ШЛЮЗ нужно вписать IP адрес шлюза «резервного» интерфейса. Также значение является не абсолютным, а относительным. Помните об этом, что указанная величина ДОБАВЛЯЕТСЯ к тому значению метрики, которое рассчитывает операционная система. Значение 100 можно поменять на другое (например, 50). Но выбирайте его так, чтобы значение в сумме с рассчитанной метрикой было больше, чем метрика подключения, которое мы хотим использовать по умолчанию.


Как видим, в маршрутах по умолчанию по-прежнему доступно два сетевых интерфейса. Но теперь интерфейс 192.168.0.49 имеет очень большое значение метрики, поэтому по умолчанию будет применяться сетевой интерфейс 192.168.1.43.


Как видим, поменялся и внешний IP (был 109.126.249.183, а стал 213.167.219.207) и локальный (был 192.168.0.49, а стал 192.168.1.43).

В командной строке Windows делаю трассировку:


Как можно увидеть по первой строке, я действительно выхожу в интернет через шлюз 192.168.1.1.

Особенности применения команды route CHANGE в Windows

Необходимо отметить пару моментов в поведении команды route, которые является контринтуитивными (мы ждём одного результата, а получаем другой, неожиданный результат).

Маршруты, в том числе маршрут по умолчанию, можно не удалять/добавлять, а изменять с помощью команды route CHANGE. Но помните об особенности этой команды, если у вас установлено два или более маршрута по умолчанию: она удалит ВСЕ маршруты и впишет один новый, который указан с этой командой! На первый взгляд это неочевидно, но если подумать, то становится понятно, почему она действует именно таким образом.

Хотя об этом уже было сказано выше, значение метрики является ОТНОСИТЕЛЬНЫМ! То значение, которое вы устанавливаете для метрики, добавляется к рассчитываемому системой значению. При этом оно постоянно плавает: то есть система регулярно пересчитывает значения метрики, но к каждому полученному числу добавляет то, которое вы указали с командой route ADD.

Создание постоянных маршрутов, сохраняющихся после перезагрузки

По умолчанию, все прописанные маршруты, в том числе значения метрик, будут сброшены при перезагрузке компьютера.

С помощью ключа -p можно создавать постоянный маршруты, которые будут сохранены после перезагрузке.

Пример команды добавления постоянного маршрута:

Часть if <interface_ID> является опциональной для всех команд.

Номера интерфейсов можно посмотреть командой route print (в самом верху вывода):


Номера интерфейсов идут в первом столбике – перед MAC-адресами.

Кроме опции -p, команда route имеет ещё несколько опций, рассмотрим их.

Подсказку по параметрам командной строки можно получить используя встроенную справку ( route /? ):

-f - Очистка таблиц маршрутов от записей всех шлюзов. При указании одной из команд таблицы очищаются до выполнения команды.

-p - При использовании с командой ADD задает сохранение маршрута при перезагрузке системы. По умолчанию маршруты не сохраняются при перезагрузке. Пропускается для остальных команд, изменяющих соответствующие постоянные маршруты. Этот параметр не поддерживается в Windows 95.

-4 - Обязательное использование протокола IPv4.

-6 - Обязательное использование протокола IPv6.

command - Одна из следующих команд:

- PRINT - Печать маршрута
- ADD - Добавление маршрута
- DELETE - Удаление маршрута
- CHANGE - Изменение существующего маршрута

destination - Адресуемый узел.

MASK - Указывает, что следующий параметр интерпретируется как маска сети.

netmask - Значение маски подсети для записи данного маршрута. Если этот параметр не задан, по умолчанию используется значение 255.255.255.255.

interface - Номер интерфейса для указанного маршрута.

METRIC - Определение метрики, т.е. цены для адресуемого узла. Чем ниже значение метрики, тем выше приоритет узла при построении маршрута.

Поиск всех символических имен узлов проводится в файле сетевой базы данных NETWORKS. Поиск символических имен шлюзов проводится в файле базы данных имен узлов HOSTS.

Для команд PRINT и DELETE можно указать узел и шлюз с помощью подстановочных знаков или опустить параметр "шлюз".

Если адресуемый узел содержит подстановочные знаки * или ?, он используется в качестве шаблона, и печатаются только соответствующие ему маршруты. Знак '*' соответствует любой строке, а '?' - одному знаку.

Примеры: 157.*.1, 157.*, 127.*, *224*.

Соответствие шаблону поддерживает только команда PRINT.

Недопустимое значение MASK вызывает ошибку, если (УЗЕЛ & МАСКА) != УЗЕЛ.

Например:
route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1 - Добавление маршрута завершится ошибкой, поскольку указан недопустимый параметр маски. (Узел & Маска) != Узел.

route PRINT - отобразить таблицу маршрутов
route PRINT -4 - отобразить таблицу маршрутов только для IPv4
route PRINT -6 - отобразить таблицу маршрутов только для IPv6
route PRINT 157* - отобразить таблицу маршрутов только для узлов, начинающихся со 157

Если сетевой интерфейс (IF) не задан, то производится попытка найти лучший интерфейс для указанного шлюза.

route ADD 3ffe::/32 3ffe::1 - добавить новый маршрут для узла с IPv6

route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2 - изменить существующий маршрут для узла IPv4

Параметр CHANGE используется только для изменения шлюза или метрики.

route DELETE 157.0.0.0 - удалить маршрут для IPv4.

route DELETE 3ffe::/32 - удалить маршрут для IPV6

Примеры использования команды ROUTE

route print - отобразить текущую таблицу маршрутов.

Пример отображаемой таблицы:

===========================================================================
Список интерфейсов
24. 00 50 ba 5d 0c c4 . D-Link DFE-538TX 10/100 адаптер
13. 00 19 db ce 97 9c . Сетевая карта Realtek RTL8169/8110 Family NIC
1. Software Loopback Interface 1
17. 00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP
12. 00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
===========================================================================

IPv4 таблица маршрута

===========================================================================
Активные маршруты:

Сетевой адрес
0.0.0.0
127.0.0.0
.
224.0.0.0
Маска сети
0.0.0.0
255.0.0.0
.
240.0.0.0
Адрес шлюза
192.168.0.1
On-link
.
On-link
Интерфейс
192.168.0.2
127.0.0.1
.
192.168.0.2
Метрика
266
306
.
266
===========================================================================

Постоянные маршруты:

Сетевой адрес
0.0.0.0
Маска
0.0.0.0
Адрес шлюза
192.168.0.1
Метрика
По умолчанию
===========================================================================

Постоянные маршруты:
Отсутствует

Список интерфейсов - отображаются идентификаторы ( ID ), физические ( MAC ) адреса и названия сетевых адаптеров. В примере:
24 - идентификатор интерфейса
00 50 ba 5d 0c c4 - MAC-адрес сетевого адаптера
D-Link DFE-538TX 10/100 адаптер - название сетевого адаптера.

Сетевой адрес (Network Destination) - IP-адрес, адрес сети, или адрес 0.0.0.0 используемый для шлюза по умолчанию ( Default Gateway ). Это конечная точка маршрута

Маска сети ( Netmask ) - маска сети.

Адрес шлюза ( Gateway ) - IP-адрес шлюза, через который будет выполняться отправка пакета для достижения конечной точки.

В Windows Vista / Windows 7 / 8 и более поздних версиях, для адресов, достижимых локально, в данной колонке отображается On-link . Другими словами, значение On-link в колонке "Шлюз" означает, что шлюз не используется, адрес назначения достижим напрямую, без маршрутизации.

Интерфейс ( Interface ) - IP-адрес сетевого интерфейса, через который выполняется доставка пакета конечной точке маршрута.

Метрика ( metric ) - значение метрики (1-9999). Метрика представляет собой числовое значение, позволяющее оптимизировать доставку пакета получателю, если конечная точка маршрута может быть достижима по нескольким разным маршрутам. Чем меньше значение метрики, тем выше приоритет маршрута.

route print 192.* - отобразить таблицу маршрутов только для адресов, начинающихся с 192.

route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 - установить в качестве шлюза по умолчанию (основного шлюза) адрес 192.168.1.1

route -p add 10.0.0.0 mask 255.0.0.0 10.0.0.1 - добавить маршрут для подсети 10.0.0.0/255.0.0.0 и запомнить его в реестре . Это постоянный статический маршрут. Если маршрут добавлен без использования параметра -p то он сохраняется только до перезагрузки системы (до перезапуска сетевого системного программного обеспечения). Если же, при добавлении маршрута искользовался данный параметр, то информация о маршруте записывается в реестр Windows (раздел HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes ) и будет использоваться постоянно при активации сетевых интерфейсов.

route delete 10.0.0.0 mask 255.0.0.0 - удалить маршрут для подсети 10.0.0.0/255.0.0.0 .

route add 10.10.10.10 192.168.1.158 - добавить маршрут для узла с IP-адресом 10.10.10.10 . Если маска в команде не задана, то подразумевается ее значение равное 255.255.255.255 , т.е конечная точка назначения является одиночным IP-адресом узла.

route delete 10.10.10.10 - удалить маршрут созданный предыдущей командой

route change 10.0.0.0 mask 255.0.0.0 10.10.10.1 - изменить адрес шлюза для существующего маршрута к сети 10.0.0.0/255.0.0.0 на значение 10.10.10.1 Допускается использование данной команды только для изменения адреса шлюза и метрики.

route -f - очистить таблицу маршрутов. После перезагрузки системы, или при перезапуске сетевых подключений таблица маршрутов будет восстановлена исходя из текущей сетевой конфигурации компьютера. При выполнении команды route -f из таблицы удаляются все маршруты, которые удовлетворяют условиям:

- не относятся к петлевому интерфейсу ( интерфейсу с IP 127.0.0.1 и маской -255.0.0.0)
- не являются маршрутами для многоадресной (multicast) рассылки (IP 224.0.0.1 маска 255.0.0.0)
- не являются узловыми маршрутами (когда маска равна 255.255.255.255) .

При обработке таблицы маршрутов, статические маршруты имеют высший приоритет, по сравнению с маршрутом, использующим для достижения конечной точки шлюз по умолчанию.

Привет, %username% ! Поскольку часто приходится настраивать ВПНы на чужих машинах и предоставлять доступ к каки-либо ресурсам нашей сети, а чаще всего это просто конкретные машины, то надо записать себе шпаргалку по добавлению статических маршрутов в ОСях семейства Windows (XP/7/8/8.1). Все элементарно и просто.

-f - Очищает таблицу маршрутизации от всех записей, которые не являются узловыми маршрутами (маршруты с маской подсети 255.255.255.255 ), сетевым маршрутом замыкания на себя (маршруты с конечной точкой 127.0.0.0 и маской подсети 255.0.0.0 ) или маршрутом многоадресной рассылки (маршруты с конечной точкой 224.0.0.0 и маской подсети 240.0.0.0 ). При использовании данного параметра совместно с одной из команд (таких, как add , change или delete ) таблица очищается перед выполнением команды.

-p - При использовании данного параметра с командой add указанный маршрут добавляется в реестр и используется для инициализации таблицы IP-маршрутизации каждый раз при запуске протокола TCP/IP. По умолчанию добавленные маршруты не сохраняются при запуске протокола TCP/IP. При использовании параметра с командой print выводит на экран список постоянных маршрутов. Все другие команды игнорируют этот параметр. Постоянные маршруты хранятся в реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes

команда - Указывает команду, которая будет запущена на удаленной системе.

Список допустимых параметров:

конечная_точка - Определяет конечную точку маршрута. Конечной точкой может быть сетевой IP-адрес (где разряды узла в сетевом адресе имеют значение 0), IP-адрес маршрута к узлу, или значение 0.0.0.0 для маршрута по умолчанию.

mask <маска_сети> Указывает маску сети (также известной как маска подсети) в соответствии с точкой назначения. Маска сети может быть маской подсети соответствующей сетевому IP-адресу, например 255.255.255.255 для маршрута к узлу или 0.0.0.0 . для маршрута по умолчанию. Если данный параметр пропущен, используется маска подсети 255.255.255.255 . Конечная точка не может быть более точной, чем соответствующая маска подсети. Другими словами, значение разряда 1 в адресе конечной точки невозможно, если значение соответствующего разряда в маске подсети равно 0.

шлюз - Указывает IP-адрес пересылки или следующего перехода, по которому доступен набор адресов, определенный конечной точкой и маской подсети. Для локально подключенных маршрутов подсети, адрес шлюза — это IP-адрес, назначенный интерфейсу, который подключен к подсети. Для удаленных маршрутов, которые доступны через один или несколько маршрутизаторов, адрес шлюза — непосредственно доступный IP-адрес ближайшего маршрутизатора.

metric <метрика> - Задает целочисленную метрику стоимости маршрута (в пределах от 1 до 9999) для маршрута, которая используется при выборе в таблице маршрутизации одного из нескольких маршрутов, наиболее близко соответствующего адресу назначения пересылаемого пакета. Выбирается маршрут с наименьшей метрикой. Метрика отражает количество переходов, скорость прохождения пути, надежность пути, пропускную способность пути и средства администрирования.

if <интерфейс> - Указывает индекс интерфейса, через который доступна точка назначения. Для вывода списка интерфейсов и их соответствующих индексов используйте команду route print . Значения индексов интерфейсов могут быть как десятичные, так и шестнадцатеричные. Перед шестнадцатеричными номерами вводится 0х . В случае, когда параметр if пропущен, интерфейс определяется из адреса шлюза.

/? - Отображает справку в командной строке.

Чтобы вывести на экран все содержимое таблицы IP-маршрутизации, введите команду:

Чтобы вывести на экран маршруты из таблицы IP-маршрутизации, которые начинаются с *10.* , введите команду:

Чтобы добавить маршрут по умолчанию с адресом стандартного шлюза 192.168.12.1 , введите команду:

Чтобы добавить маршрут к конечной точке 10.41.0.0 с маской подсети 255.255.0.0 и следующим адресом перехода 10.27.0.1 , введите команду:

Чтобы добавить постоянный маршрут к конечной точке 10.41.0.0 с маской подсети 255.255.0.0 и следующим адресом перехода 10.27.0.1 , введите команду:

Чтобы добавить маршрут к конечной точке 10.41.0.0 с маской подсети 255.255.0.0 и следующим адресом перехода 10.27.0.1 и метрикой 7 , введите команду:

Чтобы добавить маршрут к конечной точке 10.41.0.0 с маской подсети 255.255.0.0 и следующим адресом перехода 10.27.0.1 и использованием индекса интерфейса 0х3 , введите команду:

Чтобы удалить маршрут к конечной точке 10.41.0.0 с маской подсети 255.255.0.0 , введите команду:

Чтобы удалить все маршруты из таблицы IP-маршрутизации, которые начинаются с *10.* , введите команду:

Чтобы изменить следующий адрес перехода для маршрута с конечной точкой 10.41.0.0 и маской подсети 255.255.0.0 с 10.27.0.1 на 10.27.0.25 , введите команду:

Читайте также: