Split tunneling в корпоративном VPN: почему часть сайтов не открывается
VPN подключён, но половина сайтов не грузится — или, наоборот, внутренние ресурсы недоступны, хотя «туннель есть». Почти всегда это не поломка VPN, а вопрос маршрутизации: какие адреса уходят в туннель, а какие — напрямую в интернет.
Два режима: full tunnel и split tunnel
| Режим | Что уходит в VPN | Плюсы | Минусы |
|---|---|---|---|
| Full tunnel | весь трафик, включая интернет | единая политика безопасности, проще контроль | скорость зависит от VPN-шлюза, интернет может «пропасть» |
| Split tunnel | только корпоративные подсети | быстрый интернет напрямую, меньше нагрузка на шлюз | корпоративные проверки не видят внешний трафик |
В Always On VPN режим задаётся параметром RoutingPolicyType в профиле: ForceTunnel или SplitTunnel. Для device tunnel split tunneling фактически обязателен.
Почему «часть сайтов» не открывается
Маршрутизация в Windows — это таблица, и при подключении VPN в неё добавляются записи. Типичные сценарии:
- Full tunnel перехватил всё, а шлюз не выпускает в интернет. Внутренние сайты открываются, внешние — нет. Это политика, а не сбой.
- Split tunnel, но внутренний ресурс имеет публичный IP. Клиент отправляет запрос напрямую в интернет, минуя туннель, — и получает отказ или другой сервер.
- Конфликт подсетей. Домашняя сеть
192.168.1.0/24совпадает с корпоративной, и часть адресов уходит не туда. - Остаточные маршруты. После отключения VPN маршруты не удалились (или остались от другого клиента), и трафик уходит в никуда.
- Метрика интерфейса. Windows выбирает маршрут по метрике; VPN-интерфейс с низкой метрикой может «перетянуть» трафик, который должен идти напрямую.
Шаг 1. Посмотрите таблицу маршрутов
Get-NetRoute -AddressFamily IPv4 | Sort-Object RouteMetric | Format-Table DestinationPrefix, NextHop, InterfaceAlias, RouteMetric
Что искать:
- маршрут
0.0.0.0/0через VPN-интерфейс — признак full tunnel; - маршруты к корпоративным подсетям (
10.x,172.16–31.x,192.168.x) через VPN; - дублирующиеся маршруты к одной подсети через разные интерфейсы.
Сравните с состоянием до подключения VPN — так видно, что именно добавилось.
Шаг 2. Проверьте режим профиля
Get-VpnConnection -Name "CompanyVPN" | Select-Object Name, SplitTunneling, ConnectionStatus
SplitTunneling = True означает, что интернет должен идти напрямую. Если при этом 0.0.0.0/0 всё равно указывает на VPN, профиль могли переопределить политикой или сторонним клиентом.
Изменить режим на клиенте (если это разрешено политикой):
Set-VpnConnection -Name "CompanyVPN" -SplitTunneling $true
Важно: в корпоративной среде это может нарушать политику безопасности. Согласуйте с ИТ.
Шаг 3. Проверьте DNS — это вторая половина проблемы
Даже при правильных маршрутах имя может разрешаться не туда:
Resolve-DnsName intranet.company.local
Get-DnsClientNrptPolicy
Если внутренние имена должны разрешаться только через корпоративный DNS, используется NRPT (Name Resolution Policy Table) — правило, которое направляет запросы для конкретного домена на определённый сервер. Если правило не применилось, браузер получает публичный NXDOMAIN, и сайт «не открывается».
Подробнее — в материале о DNS после подключения VPN.
Шаг 4. Проверьте, куда реально уходит трафик
Test-NetConnection intranet.company.local -Port 443
tracert -d intranet.company.local
tracert покажет первый хоп: если это адрес VPN-шлюза — трафик в туннеле; если домашний роутер — мимо.
Для проверки конкретного сайта:
Resolve-DnsName example.com
Test-NetConnection example.com -Port 443
Если имя разрешается, а соединение не устанавливается — вопрос в маршруте или блокировке на шлюзе.
Шаг 5. Устраните конфликт подсетей
Самое неприятное и частое в домашних условиях: ваша локальная сеть использует ту же подсеть, что и корпоративная.
Признаки:
- часть внутренних ресурсов работает, часть — нет;
- ping до корпоративного адреса идёт на домашнее устройство;
- после подключения VPN пропадает доступ к принтеру или NAS.
Решение: изменить подсеть домашнего роутера (например, с 192.168.1.0/24 на 192.168.77.0/24) и переподключиться. Это безопасно и не требует вмешательства ИТ.
Шаг 6. Уберите остатки после отключения
Если интернет не вернулся после отключения VPN:
Get-NetRoute -AddressFamily IPv4 | Where-Object InterfaceAlias -like "*VPN*"
Restart-NetAdapter -Name "CompanyVPN"
Иногда помогает перезапуск службы:
Restart-Service RasMan
Если маршруты остались от удалённого клиента — проверьте Get-NetAdapter на «призрачные» интерфейсы и удалите их через Диспетчер устройств (Показать скрытые устройства).
Что можно и что нельзя делать на клиенте
Можно:
- проверить маршруты и DNS;
- сменить домашнюю подсеть;
- переключить профиль в split tunneling, если политика разрешает;
- отключить второй VPN-клиент.
Нельзя без ИТ:
- менять маршруты в корпоративной сети;
- отключать обязательный full tunnel;
- подменять DNS-серверы, если они заданы политикой;
- устанавливать сторонние VPN для обхода корпоративных ограничений.
Ограничения
- Если шлюз не выпускает интернет-трафик, клиент это не исправит: так настроена политика.
- Некоторые приложения используют собственные сетевые стеки и игнорируют системные маршруты.
- В Always On VPN профиль может применяться только при определённых условиях (домен, сертификат), и ручные правки будут перезаписаны.
- Split tunneling снижает защиту: корпоративные фильтры не видят внешний трафик.
FAQ
Почему внутренний сайт открывается, а внешний нет? Скорее всего, включён full tunnel, а шлюз не маршрутизирует интернет. Это политика компании.
Почему внешний интернет работает, а внутренний сайт нет? Split tunneling маршрутизирует только часть подсетей. Проверьте, входит ли нужный адрес в туннель.
Можно ли самому включить split tunneling?
Технически да, командой Set-VpnConnection, но это может нарушать корпоративные правила.
Почему после VPN не работает принтер дома? Конфликт подсетей или маршрут по умолчанию через туннель. Смените подсеть домашней сети.
Поможет ли перезагрузка? Иногда, если остались «залипшие» маршруты. Но причину это не устраняет.