VPN для програм на керованих iPhone: що маршрутизується, а що ні
Тунель на рівні програми йде за керованою програмою, а не за телефоном. Перевірте прив'язку профілю, керовану копію, правила на запит і потоки, що виходять із програми.
VPN для програм на iPhone — не перемикач для всього телефону. Це зв'язок однієї керованої програми з одним профілем VPN, що створюється під час розгортання програми, а трафік усього іншого зберігає попередній маршрут. Тому той самий телефон поводиться непослідовно: робоча програма відкриває приватну сторінку, а Safari не досягає того самого хоста, або тунель взагалі не піднімається, і програма повідомляє про тайм-аут, схожий на неправильні облікові дані. Перевірки йдуть від найширшої причини вниз, тож зупиніться на першій невдалій.
Спершу перевірте профіль і запис програми
Зв'язок живе у двох об'єктах, а не в одному. Профіль VPN визначає тунель: тип, сервер, автентифікацію, DNS та ідентифікатор пакета провайдера, коли використовується нестандартний клієнт. Запис програми вказує на цей профіль, і більшість консолей керування пропонують це як опцію для програми в конфігурації програми, під назвою, близькою до Per-App VPN. Профіль, на який не вказує жодна програма, нічого не маршрутизує для програми; він поводиться як звичайний тунель, який хтось має запустити вручну.
Прочитайте обидва об'єкти, перш ніж торкатися телефона. Переконайтеся, що конфігурація програми вказує на профіль, який ви тестуєте, а не на його стару копію, бо дублікати профілів із майже однаковими назвами часто трапляються після міграції, і програма охоче вказує на відкликаний. Потім переконайтеся, що конфігурація дійшла до пристрою: Параметри, Основні, VPN і керування пристроєм мають показувати її як встановлений профіль. Список VPN там — не перевірка. Служба для програм зазвичай не має ручного перемикача, тож коректно розгорнута конфігурація може ніколи не з'явитися серед VPN, які можна запустити. Відсутність видно в записі програми й у тому, чи піднімається тунель на перший запит програми.
Одна умова пояснює багато звернень: ця модель вимагає, щоб програма прийшла через керування. Копія, встановлена збоку або куплена особисто, не отримує зв'язку, навіть якщо її ідентифікатор пакета збігається. Посібник Apple з розгортання VPN описує модель профілю, що стоїть за цим (support.apple.com/guide/deployment/vpn-overview-depae3d361d0/web).
Переконайтеся, що встановлена програма — керована копія
Зв'язок іде за встановленою керованою програмою. Якщо хтось перевстановив її з App Store з особистим Apple ID, замінив перепідписаною корпоративною збіркою або пристрій зареєстрували заново, і програма повернулася іншим каналом, тунель може залишитися внизу, поки сама програма виглядає цілком нормально.
Перевіряйте порівнянням, а не одним спостереженням. В інвентарі керування програма має відображатися як керована для цього пристрою із зіставленням VPN у записі. На телефоні тунель має підніматися під час запуску програми та виходу її першого запиту, а не лише коли хтось запускає окрему ручну конфігурацію в Параметрах. Якщо запуск програми нічого не змінює, а ця ручна конфігурація змінює, програма взагалі не прив'язана до тунелю для програм.
Оновлення важливі: надіслане через керування зберігає зіставлення, а перевстановлення, розпочате користувачем, може його втратити. Коли скарга датується оновленням, перевірте запис програми до мережі.
Перевірте, що тунель може взяти
Тунель для програми вибирається за вихідною програмою, тож маршрут телефона за замовчуванням досі належить Wi-Fi або стільниковій мережі. OverridePrimary — ключ, що це змінює. Коли профіль задає його, тунель поводиться як повний тунель, і кожна програма його успадковує, тож усе, що йде через VPN, стає питанням профілю, а не збоєм програми.
Правила на запит визначають стійкість. OnDemandEnabled і його набір правил повертають тунель, коли програма надсилає трафік, переживають перехід із Wi-Fi на стільникову мережу або опускають його, коли програма йде у фон. Розгортання, що підключається і потім тихо вмирає, зазвичай має правило, яке відповідає лише пробі, що ніколи не спрацьовує, поки програма неактивна.
Потім прочитайте бік маршрутів чесно. Якщо профіль провайдера чи постачальника дає список включення, тунель, що несе лише 10.20.0.0/16, не нестиме службу в 10.30.0.0/16; це список робить свою роботу, а не збій для програми. Вбудований профіль iOS не має списку включення. Без нього поділ іде за значеннями провайдера за замовчуванням і IncludeAllNetworks, а не за прихованим списком.
Перевірте програму, потім перевірте, що з неї виходить
Перевіряйте за назвою, а не лише за адресою. Розв'язання внутрішнього хоста в керованій програмі доводить, що й DNS пройшов через тунель, бо профіль визначає, який резолвер відповідає і які домени пошуку застосовуються. Маршрутизація може бути бездоганною, поки пошук назви не вдається, і два симптоми вказують на різні налаштування.
Потім перевірте межу з обох боків. Особиста програма або Safari мають досягати звичайної публічної сторінки та повідомляти адресу оператора чи домашню, а керована програма досягає приватної служби. Якщо обидві повідомляють ту саму публічну адресу, тунель уже не для програми, що б не стверджував запис програми.
Потоки, що виходять із програми, створюють заплутані звернення. Посилання, що відкривається в Safari, документ, переданий через аркуш спільного доступу, або вхід SSO, що переходить у браузер, залишають процес програми і разом із ним тунель. Вхід, показаний усередині програми, зазвичай приписується програмі, тож вбудований вхід може спрацювати там, де той самий URL не працює в Safari; перевірте це, а не припускайте. Коли постачальник ідентичності доступний лише через тунель, тримайте вхід усередині програми або додайте домен постачальника до доменів Safari профілю, щоб відповідний трафік Safari перехоплювався.
Зіставте симптом із шаром
Форма збою підказує, яку перевірку повторити.
| What you see | Where the repair is |
|---|---|
| Tunnel never appears when the app opens | App-to-payload association, or the app is not the managed copy |
| Tunnel connects, internal name resolves, connection times out | Provider or vendor include list missing the subnet, or a far-side firewall |
| Tunnel connects, internal name fails to resolve | DNS servers or search domains in the payload |
| Every app uses the tunnel | OverridePrimary set, or a full-tunnel payload reused |
| Worked until an update, broken since | Association lost on reinstall, or the payload was replaced |
За середніми рядками стоять дві деталі: тунель для програми може бути здоровим і все ж пропускати підмережу, якої немає в жодному списку провайдера, а керований телефон може тримати більше ніж одну конфігурацію VPN, тож переконайтеся, до якої прив'язана програма, замість того щоб вважати, що це та, яку ви читаєте.
Виправляйте в такому порядку: спрямуйте запис програми на активний профіль, перевстановіть програму через керування, переконайтеся, що тунель піднімається на перший запит програми, потім повторіть перевірки назви та межі. Якщо перший запит взагалі не може запустити тунель, зупиніться й перевірте бік провайдера, бо нестандартному клієнту потрібен наявний Network Extension та ідентифікатор, що відповідає встановленій програмі.
Поверніть три факти замість знімка екрана: на який профіль указує запис програми, чи Параметри показують його як встановлений профіль і яким був невдалий запит — назва, адреса або перехід у браузер. Ці три відповіді відокремлюють помилку розгортання від помилки маршрутизації, і наступна людина може діяти, не повторюючи діагностику.