Оглавление
1. Выбор подключения к Интернету
2. Изменение маршрута по умолчанию в Windows
3. Как установить метрику для сетевых подключений в Windows
4. Особенности применения команды route CHANGE в Windows
5. Создание постоянных маршрутов, сохраняющихся после перезагрузки
6. Справка по команде ROUTE
Если у вас Linux, то смотрите статью «Практика настройки сетевых маршрутов: выбор подключения, используемое для Интернета; одновременное использование нескольких подключений для разных целей». В ней же вы найдёте дополнительные трюки для манипуляции сетевыми маршрутами, которые будут работать, в том числе, и на Windows.
Особенности применения команды route CHANGE в Windows
Необходимо отметить пару моментов в поведении команды route, которые является контринтуитивными (мы ждём одного результата, а получаем другой, неожиданный результат).
Маршруты, в том числе маршрут по умолчанию, можно не удалять/добавлять, а изменять с помощью команды route CHANGE. Но помните об особенности этой команды, если у вас установлено два или более маршрута по умолчанию: она удалит ВСЕ маршруты и впишет один новый, который указан с этой командой! На первый взгляд это неочевидно, но если подумать, то становится понятно, почему она действует именно таким образом.
Хотя об этом уже было сказано выше, значение метрики является ОТНОСИТЕЛЬНЫМ! То значение, которое вы устанавливаете для метрики, добавляется к рассчитываемому системой значению. При этом оно постоянно плавает: то есть система регулярно пересчитывает значения метрики, но к каждому полученному числу добавляет то, которое вы указали с командой route ADD.
Выбор подключения к Интернету
Компьютер может быть подключён сразу к нескольким сетям: например, к проводной сети и к беспроводной; или к двум Wi-Fi сетям; или использовать телефон в качестве модема через Bluetooth и при этом быть подключённым к проводной и Wi-Fi сети; или быть подключённым к четырём Wi-Fi сетям – да что угодно!
Если вы выходите в Интернет, как операционная система выбирает, какое именно из нескольких подключений использовать? Система действует очень мудро – она не пренебрегает ни одним из подключений. И в случае потери связи с одним из них – использует другое.
Но ведь ей в любом случае нужно выбрать, какое подключение использовать в данный момент! И система опять поступает мудро – она использует лучшее подключение. Чтобы узнать, какое подключение является лучшим, для каждого из них вычисляется так называемая Метрика – условное значение, которое учитывает сразу несколько параметров – скорость сети, потери пакетов и другое.
Рассмотрим реальный пример. Мой компьютер подключён к двум Wi-Fi сетям. Чтобы узнать характеристики маршрутов, откроем командную строку Windows, для этого нажмите Win+x, и выберите Windows PowerShell (Администратор). В открывшемся окне командной строки наберите команду
Особое внимание обратите на строки:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.49 55
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.43 70
Сетевой адрес 0.0.0.0 и маска сети 0.0.0.0 это обозначение маршрута по умолчанию (default route). Это тот маршрут, куда отправляется трафик, для которого явно не прописан другой маршрут.
Например, там же мы можем увидеть строку
192.168.56.0 255.255.255.0 On-link 192.168.56.1 281
В ней есть сетевой адрес 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 является Интернет-трафик (а также трафик в другие локальные сети, к которым ваш компьютер непосредственно не подключён – но для домашних сетей это редкая ситуация).
Для выбора Интернет-подключения по умолчанию нужно изменить маршрут по умолчанию.
Справка по команде ROUTE
Чтобы было понятно, покажу на конкретном примере. У меня два сетевых интерфейса с IP адресами:
Для этого удаляю все маршруты по умолчанию:
route DELETE 0.0.0.0
Теперь добавляю тот, который я хочу сделать маршрутом по умолчанию, командой вида:
route ADD 0.0.0.0 MASK 0.0.0.0 ШЛЮЗ
В ней ШЛЮЗ нужно заменить на IP адрес шлюза (роутера) того интерфейса, через который вы хотите выходить в Интернет. Для меня это:
route ADD 0.0.0.0 MASK 0.0.0.0 192.168.1.1
На данном этапе уже вернулось Интернет-подключение и если вам достаточного одного подключения, то можно не продолжать.
Тем не менее, я хочу чтобы в качестве резервного у меня было активно и второе подключение, но чтобы оно по умолчанию не использовалось.
Для его добавления используется команда следующего вида:
route ADD 0.0.0.0 MASK 0.0.0.0 ШЛЮЗ METRIC 100
Обратите внимание, что вместо ШЛЮЗ нужно вписать IP адрес шлюза «резервного» интерфейса. Также значение является не абсолютным, а относительным!!! Помните об этом, что указанная величина ДОБАВЛЯЕТСЯ к тому значению метрики, которое рассчитывает операционная система. Значение 100 можно поменять на другое (например, 50). Но выбирайте его так, чтобы значение в сумме с рассчитанной метрикой было больше, чем метрика подключения, которое мы хотим использовать по умолчанию.
route ADD 0.0.0.0 MASK 0.0.0.0 192.168.0.1 METRIC 100
Как видим, в маршрутах по умолчанию по-прежнему доступно два сетевых интерфейса. Но теперь интерфейс 192.168.0.49 имеет очень большое значение метрики, поэтому по умолчанию будет применяться сетевой интерфейс 192.168.1.43.
Проверим IP в браузере https://suip.biz/ru/?act=myip:
Как видим, поменялся и внешний IP (был 109.126.249.183, а стал 213.167.219.207) и локальный (был 192.168.0.49, а стал 192.168.1.43).
В командной строке Windows делаю трассировку:
Как можно увидеть по первой строке, я действительно выхожу в интернет через шлюз 192.168.1.1.
Изменение маршрута по умолчанию в Windows
Вернёмся к ранее полученным данным о маршруте по умолчанию:
Из него следует, что у одного из моих интерфейсов IP адрес 192.168.0.49 и у него метрика равна 55, у другого сетевого интерфейса IP 192.168.1.43 и метрика равна 70. Выигрывает тот маршрут, у которого значение метрики меньше (чем меньше метрика, тем лучше подключение).
Таким образом, если я будут выходить в Интернет, то будет использоваться сетевой интерфейс 192.168.0.49.
Убедимся в этом сразу несколькими способами. Запомним наши IP адреса, как их видят внешний сервисы. Для этого перехожу на https://suip.biz/ru/?act=myip:
Я получил, что мой IP 109.126.249.183, а мой локальный IP 192.168.0.49. В командной строке Windows делаю трассировку:
Как можно увидеть по первой строке, я действительно выхожу в интернет через шлюз 192.168.0.1.
Итак, способов изменить маршрут по умолчанию сразу несколько. Например, можно изменить значение метрики так, чтобы приоритетным стал другой маршрут. Второй вариант – удалить другие маршруты, оставив только один.
Создание постоянных маршрутов, сохраняющихся после перезагрузки
По умолчанию, все прописанные маршруты, в том числе значения метрик, будут сброшены при перезагрузке компьютера.
С помощью ключа -p можно создавать постоянный маршруты, которые будут сохранены после перезагрузке.
Пример команды добавления постоянного маршрута:
Номера интерфейсов можно посмотреть командой route print (в самом верху вывода):
Номера интерфейсов идут в первом столбике – перед MAC-адресами.
Кроме опции -p, команда route имеет ещё несколько опций, рассмотрим их.