Розділений тунель у Windows: прапорець шлюзу та зниклий префікс
Windows надсилає все через тунель, доки ви не знімете один прапорець, а потім замало, доки не додасте підмережу. Обидві речі належать до однієї зміни.
Тунель повідомляє про підключення, і вікі ще завантажується. Потім завантаження застрягає, і спільний ресурс на полиці перестає відповідати. Тунель зробив свою справу, а профіль просто заявив права на кожне призначення.
Windows розглядає VPN-з'єднання як рішення про маршрут. Доки це рішення не звужене, машина поводиться так, ніби переїхала до офісу.
Чому робочий тунель відчувається як збій
Профіль, якому дозволено використовувати віддалений шлюз, встановлює маршрут за замовчуванням через тунель. Тоді кожне призначення, якого немає на локальному з'єднанні, виходить через офісний міжмережевий екран. Локальні спільні ресурси перестають відповідати, бо їхній трафік тепер їде на інший континент і назад. Ніщо в стані клієнта цього не відображає.
Симптоми навмисно збивають з пантелику. Розв'язання імен може ще працювати, поки спільний ресурс виходить за тайм-аутом, або навпаки. Користувач повідомляє, що VPN зламано, клієнт повідомляє, що в нього все гаразд, і обидва твердження точні.
Прапорець, схований у діалозі IPv4
Параметр лежить на кілька діалогів глибше. Відкрийте ncpa.cpl, клацніть правою кнопкою на з'єднанні, потім властивості IPv4, потім Додатково, і зніміть параметр, який дозволяє з'єднанню стати віддаленим шлюзом за замовчуванням. Цей один прапорець вирішує, чи профіль є повним тунелем. Усе інше в профілі досі діє.
Порівняйте route print -4 до і після перепідключення. Запис 0.0.0.0, який раніше вказував на тунель, має зникнути, а корпоративні префікси мають залишитися.
route print -4 | findstr /c:"0.0.0.0"
Get-VpnConnection -Name 'Work VPN' | Select-Object Name, SplitTunneling, Routes
Зміна метрики інтерфейсу не замінює цього. Метрика вирішує лише між двома конкуруючими маршрутами за замовчуванням, і клієнт, який при кожному підключенні заново встановлює свій маршрут за замовчуванням, виграє це змагання незалежно від заданого числа.
Префікс, який ніхто не вказав
Розділений тунель відкриває саме ті префікси, що записані в профілі. Офісну підмережу, додану після написання профілю, не буде досягнуто, хоча тунель цілком здоровий. Тоді звіт надходить як один зламаний сервер, а не як зламаний VPN.
Маршрут, доданий вручну, закриває прогалину, доки адреса шлюзу не зміниться. Записати префікс у з'єднанні надійніше, бо тоді префікс іде за з'єднанням, а не за вгаданою адресою.
route -p add 172.20.8.0 mask 255.255.255.0 10.8.0.1
Add-VpnConnectionRoute -ConnectionName 'Work VPN' -DestinationPrefix 172.20.8.0/24
Get-VpnConnection -Name 'Work VPN' | Select-Object -ExpandProperty Routes
Читайте збережений список і живу таблицю разом. Збережений префікс може існувати, поки таблиця його так і не отримує, що буває, коли агент керування фільтрує маршрути після підняття з'єднання. Буває й навпаки, коли маршрут у реєстрі вказує на вимкнений адаптер. Жоден із двох поглядів окремо не розповідає всієї історії.
Довести результат після перезавантаження
Трасуйте в обидва боки і розв'язуйте за іменем. Публічна траса має виходити через провайдера, внутрішня траса має входити в тунель, а внутрішній вузол має відповідати за іменем, а не лише за адресою.
tracert -4 www.example.com
tracert -4 wiki.corp.example
ping -4 fileserver.corp.example
ping -4 172.20.8.20
Повторіть після відключення, перепідключення і одного перезавантаження. Префікс, який переживає ручне перепідключення і зникає після перезавантаження, ніколи не зберігався в профілі.
Залиште в тесті і принтер, і NAS, бо розділений тунель, що відрізає пристрої поруч із ноутбуком, вирішив одну проблему, створивши меншу і дратівливішу. Довідка Microsoft щодо Add-VpnConnectionRoute — це місце, де звіряють написання параметрів із версією вашого модуля.