Управление маршрутизацией

Устройство A (Windows 10 Pro) с 192.168.1.10/24 (локальная сеть) и 172.16.3.37 (VPN-подключение к устройству B).
Устройство B – Кинетик (192.168.43.1/24) c VPN-сервером.
Необходимо организовать доступ с Устройства B к сети Устройства A (192.168.1.0/24).

На Устройстве А:

  • прописал маршрут до сети Устройства B:
    route add 192.168.43.0 MASK 255.255.255.0 172.16.3.37 if 33

    , где 33 – интерфейс VPN-подключения
    Устройство B c Устройства А доступно:

    >tracert 192.168.43.1
    Трассировка маршрута к 192.168.43.1 с максимальным числом прыжков 30 1 10 ms 10 ms 15 ms keen.home [192.168.43.1]
    Трассировка завершена.
  • отключил Сетевой экран Касперского; системный фаервол отключен
  • включил через реестр IpEnableRouter
  • включил службу “Маршрутизация и удаленный доступ”:
    Set-Service RemoteAccess -StartupType Automatic; Start-Service RemoteAccess
  • включил форвардинг:
    Set-NetIPInterface -Forwarding Enabled

На Устройстве B прописал маршрут до сети Устройства А через VPN-интерфейс:
192.168.1.0/24 via 172.16.3.37 dev sstp1

Трассируюсь с Утройства B до Устройства A по его локальному адресу:

traceroute to 192.168.1.10 (192.168.1.10), 30 hops max, 38 byte packets 1 172.16.3.37 (172.16.3.37) 11.659 ms 13.345 ms * 2 * * * 3 * * *

Пожалуйста, подскажите, в рамках использования клиентского Windows задача не выполнима?

включил форвардинг:
Set-NetIPInterface -Forwarding Enabled

Не очень правильно для всех интерфейсов включать форвардинг, поэтому поправился и включил на Устройстве А форвардинг только для VPN’а:

Set-NetIPInterface -Forwarding Disabled
Set-NetIPInterface -ifIndex 33 -Forwarding Enabled

После этого включил на Устройстве А Wireshark и начал отслеживать icmp для локальной сети Устройства А.
Далее с Устройства B (192.168.43.1) пингую Устройство А (192.168.1.10).

sending ICMP ECHO request to 192.168.1.10...
PING 192.168.1.10 (192.168.1.10) 56 (84) bytes of data.
--- 192.168.1.10 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss,
0 duplicate(s), time 5002.70 ms.

Пинг не проходит, но при этом на Устройстве А по захвату icmp вот такая картинка:
IhvUHtJ.png
Т.е. локальный интерфейс Устройства А отвечает Устройству B, но Устройство B ответ этот почему-то не получает, хотя соответствующий маршрут на Устройстве А имеется.

:/>  USB драйвер скачать на Windows 10 бесплатно

При этом с Устройства А прямой пинг на Устройство B проходит:

>ping 192.168.43.1
Обмен пакетами с 192.168.43.1 по с 32 байтами данных:
Ответ от 192.168.43.1: число байт=32 время=13мс TTL=64
Ответ от 192.168.43.1: число байт=32 время=11мс TTL=64

Что я не докрутил или перекрутил?..

В общем, поменял SSTP на WG и включил форвардинг:
Set-NetIPInterface -ifIndex 33 -Forwarding Enabled // форвардинг для VPN’а
Set-NetIPInterface -ifIndex 9 -Forwarding Enabled // форвардинг для физического интерфейса локальной сети

Проблема решилась. Всем спасибо!

На компьютере Windows с несколькими сетевыми адаптерами (Ethernet, Wi-Fi, VPN) для корректной маршрутизации трафика иногда нужно вручную настраивать приоритеты сетевых подключений. Например, при наличии одновременного подключений к сети через Wi-Fi и Ethernet, вы можете изменить приоритеты сетевых адаптеров так, чтобы по-умолчанию трафик всегда отправлялся через проводное подключение.

Windows автоматически назначает приоритеты сетевым адаптерам в зависимости от скорости подключения. Чем выше скорость подключения, тем более высокий приоритет такого сетевого адаптера (меньше значение метрики). Обычно Windows использует следующий порядок приоритетов для различных типов сетевых интерфейсов:

  1. Ethernet
  2. Wi‑Fi
  3. Мобильные подключения

Если компьютер подключен к 100 Мб Ethernet порту и высокоскоростному Wi-Fi роутеру, может оказаться, что беспроводное подключение будет иметь более высокий приоритет.

Вывести информацию о доступных IPv4 сетевых адаптерах в Windows:

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

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

Get-NetIPinterface - приоритет сетевых подключений в Windows

Значение InterfaceMetric это метрика, которая задает приоритет IP маршрута через этот сетевой адаптер в таблице маршрутизации Windows:

:/>  Api 580 на русском скачать

route print - таблица маршрутизации Windows и маршруту по умолчанию

В этой таблице маршрутизации видно, что по умолчанию сетевой трафик будет отправлен через интерфейс с меньшей метрикой.

С помощью PowerShell можно проверить, какой сетевой адаптер будет использоваться для доступа в Интернет согласно текущей таблицы маршрутизации:

Get-NetRoute -DestinationPrefix 0.0.0.0/0

Get-NetRoute

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

Можно изменить метрики сетевых интересов и назначать приоритеты вручную с помощью PowerShell командлета Set-NetIPInterface. Чтобы уменьшить приоритет одного из интерфейсов, нужно указать его название (
InterfaceAlias
) или индекс интерфейса (
ifIndex
) и новое значение метрики:

Set-NetIPInterface -ifIndex 14 -InterfaceMetric 26

Set-NetIPInterface -InterfaceAlias Ethernet1 -InterfaceMetric 26

Изменить приоритет сетевого адаптера в Windows (PowerShell: Set-NetIPInterface )

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

Также вы можете изменить приоритет (метрику) сетевого интерфейса в свойствах сетевого адаптера в панели управления Network Connections (
ncpa.cpl
).

Откройте свойства IPv4 протокола адаптера -> кнопка Advanced -> измените значение в поле Interface metric и примените изменения.

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

Изменить настройки метрики сетевого адаптера в панели управления

В версиях до Windows 10 и Windows Server 2016 можно было изменить приоритет сетевых адаптеров в настройках привязки адаптеров (Adapters and Bindings). В более новых версиях эту опцию убрали.

Управление привязками сетевых адаптеров Windows