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