Как можно разделить два маршрута в таблице маршрутизации Windows?

Здравствуйте! Подскажите, пожалуйста. У меня кабель WAN подключен напрямую к ноутбуку. При активном VPN-клиенте на ноуте маршруты выглядят так (см. вложение). Интерфейс с IP 10.14.193.235 принадлежит моему провайдеру, а 10.96.0.11 — это адрес десктопного VPN-клиента. У меня два вопроса:

1. Почему во втором маршруте маска 0.0.0.128? Что она из себя представляет и что означает данная запись? Насколько я понимаю, в первых двух строчках 0.0.0.0 указаны два шлюза по умолчанию, а маска 128 делит всю WAN-сеть пополам, так что пакеты могут направляться на один из этих интерфейсов?

2. Я выхожу в интернет через VPN, трассировка происходит через шлюз 10.96.0.1. Подскажите, можно ли быстро переключать нужный шлюз для выхода во внешнюю сеть на уровне хоста и с помощью командной строки Windows? Поскольку десктопный VPN при подключении блокирует весь остальной интернет на Windows, а процесс подключения занимает время — иногда 5-10 минут, и нередко недоступны ресурсы, доступные в России. Есть ли способ быстро переключаться между двумя подключениями в Windows?
  • 8 сентября 2024 г. 10:53
Ответы на вопрос 2
Здравствуйте!

Давайте по порядку разберем ваши вопросы.

### 1. Маска 0.0.0.128

Маска `0.0.0.128` — это не стандартная маска подсети, и она может вызвать некоторое недоумение. В контексте маршрутизации эта маска используется для определения специфических маршрутов, а именно для расхождения в шинах маршрутизации.

Маска `0.0.0.128` в данном случае обозначает, что маршрут будет применяться только к IP-адресам, у которых первое (или, точнее, самое старшее) биты установлены в ноль, с последующим диапазоном, который может быть разным в зависимости от используемой подсети. В данном случае это может указывать на то, что используется механизм маршрутизации, который четко выделяет некоторые IP-адреса в зависимости от их начальных битов.

Таким образом, у вас действительно есть два маршрута, по которым данные могут проходить: один по адресу 0.0.0.0 (шлюз по умолчанию) и второй, который будет более специфичным из-за маски 0.0.0.128.

### 2. Быстрое переключение между шлюзами

Для быстрого переключения между сетевыми интерфейсами и шлюзами в Windows вы можете использовать командную строку. Для этого выполните следующие действия:

1. **Просмотр текущих маршрутов и интерфейсов:**
   Используйте команду:
   ```cmd
   route print
   ```
   Это покажет вам список всех маршрутов и интерфейсов, установленных на вашей машине.

2. **Добавление/удаление маршрутов вручную:**
   Используйте команды `route add` и `route delete`, чтобы управлять маршрутами. Например, чтобы добавить маршрут для выхода в интернет через конкретный шлюз, выполните:
   ```cmd
   route add 0.0.0.0 mask 0.0.0.0 <IP_вашего_шлюза>
   ```
   Замените `<IP_вашего_шлюза>` на нужный вам IP-адрес.

   Чтобы удалить существующий маршрут, выполните:
   ```cmd
   route delete 0.0.0.0
   ```

3. **Использование PowerShell:**
   Если вы предпочитаете использовать PowerShell, вы также можете выполнять аналогичные команды, используя встроенные cmdlets, такие как `New-NetRoute`.

4. **Скрипты для автоматизации:**
   Чтобы облегчить процесс переключения между маршрутизаторами, вы можете создать скрипты, которые будут добавлять или удалять необходимые маршруты и сохранять их в виде .bat файлов для быстрого доступа.

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

Если у вас остались вопросы или нужна дополнительная помощь, не стесняйтесь обращаться!
1. 
Как я понимаю в первых двух строчках 0.0.0.0 это два шлюза по умолчанию а маска 128 делит всю wan сеть пополам?
Да, почти. Строго говоря, 0.0.0.0/128.0.0.0 не считается "по умолчанию". Только маршрут с маской 0.0.0.0 - настоящий "по умолчанию". Но для простоты можно не придираться и сказать так.
И пакеты летят то на первый интерфейс, то на другой?
Да, в зависимости от адреса назначения. Что в общем случае неправильно (иногда бывает, что именно так задумано, но это не ваш случай). Исправьте на 0.0.0.0.
2.
Есть ли способ быстро переключаться между двумя подключениями на винде?
Да, та самая команда route, через которую (route print) вы показали маршруты.
route /? выводит подсказку, там внизу есть примеры:
route add для добавления маршрута,
route delete для удаления маршрута,
route change для изменения.
Можно не добавляя и не удаляя только менять метрику. Когда есть два (и больше) маршрута с одинаковым адресом назначения и одинаковой маской, то работает маршрут с меньшей метрикой. В вашем примере метрика не срабатывала из-за разной маски. Маршрут с узкой маской имеет приоритет перед маршрутом с широкой маской, независимо от метрики (в вашем случае с маской 128.0.0.0 маршрут был бы приоритетнее, даже имея метрику 26).
Похожие вопросы