В родния IKEv2 профил интересният ключ не е отметка, а IncludeAllNetworks, и това, което променя, е обхватът на това, което системата има право да изпраща извън тунела. Задайте го на 1 и macOS приема тунела като път за практически целия IP трафик, минус набор от изключения, които той дефинира и вие можете да разширите. Понеже живее в речник на профила, а не в меню, той също не означава това, което повечето хора предполагат, когато прочетат фразата изпращай целия трафик.

Какво променя ключът в мрежовия стек

Без него тунелът се държи като мрежов интерфейс с прикачени маршрути. Маршрут по подразбиране през този интерфейс прихваща по-голямата част от трафика, а всеки по-конкретен маршрут на друг интерфейс все още печели за своя префикс. Това е нормална маршрутизация и именно затова разделното тунелиране се случва почти случайно.

С включен ключ обхватът престава да бъде предпочитание за маршрутизация и става политика за това кой трафик има право да излиза през нещо различно от тунела. Системата все още трябва да достига мрежата, за да поддържа връзката жива, затова политиката идва с изключения, вместо да се преструва, че те не съществуват. Включването му никога не оставя машината без никакъв работещ път. Това, което получавате, е по-кратък списък от пътища, отколкото сте предполагали, и този списък е документиран.

Практическото следствие е, че добавянето на маршрут вече не обяснява резултата. Ако дадена дестинация все още се достига директно, въпросът не е кой маршрут е спечелил, а дали изключение я покрива.

Изключенията са част от настройката

Apple документира няколко изключения до основния ключ, обхващащи локални мрежи, трафик на Apple Push Notification, клетъчни услуги и комуникация с устройства. Всяко има свои условия за платформа и версия, така че един и същ профил може да се държи различно в различните издания на macOS.

Някои от тези изключения са присъщи. Трафикът, необходим за установяване и поддържане на мрежов достъп, включително работата с captive portal, трябва да бъде разрешен, иначе машината може да остане свързана с нищо и неспособна да го поправи.

Следват съзнателните избори. Разрешаването на домашен принтер не е същото решение като разрешаването на префикс на работен ресурс и двете се различават от това да оставите APNs достъпен, за да продължават да пристигат известия. Запишете кои от тях сте включили в самия профил, вместо да ги откривате по-късно от доклад за грешка.

Защо не е същото като маршрут по подразбиране

Маршрутът по подразбиране е запис в таблицата за маршрутизация, а таблиците губят. По-конкретен префикс го побеждава, връзка, обвързана с приложение, може да го заобиколи, а втори интерфейс с по-добра метрика може да поеме, без никой да пипа конфигурацията на VPN.

Ръководството на Apple за маршрутизация прави разликата изрична: обикновените маршрути по подразбиране могат да бъдат заменени от по-конкретни маршрути, докато настройката за по-широк обхват дефинира кой трафик тунелът трябва да носи и какво е изключено от него. Едното е предпочитание, другото е по-близо до правило.

Тази разлика променя и начина, по който диагностицирате изтичане. С маршрут по подразбиране преглеждате маршрути и метрики. С ключа за обхват преглеждате ревизията на профила, инсталираните изключения и поведението, специфично за версията, защото таблицата за маршрутизация е следствие от решение, взето по-рано.

EnforceRoutes е друг ключ

EnforceRoutes звучи като строгата версия на същата идея и хората натрупват двата в убеждението, че повече ключове означават по-голямо покритие. Apple документира, че той се игнорира, когато IncludeAllNetworks е включен, така че вторият ключ не купува нищо в тази комбинация.

Отнасяйте се към него като към алтернатива за конфигурации, които не използват по-широкия обхват, а не като към подсилване. Ако не можете да обясните какво прави всеки ключ сам по себе си, добавянето и на двата само прави профила по-труден за преглед.

За какво трябва да се споразумеят шлюзът и собственикът на профила

Клиентска настройка не може да накара сървър да препраща трафик, за който никога не е бил конфигуриран. Шлюзът трябва да приеме сесията, да раздаде адреси, да осигури обратен път за префиксите, които възнамерявате да достигате, и да обслужва DNS в каквато и подредба да сте избрали. Ако маршрутизира само един префикс, широкият клиентски обхват произвежда трафик, който пристига и умира. Една заявка към дестинация извън маршрутите на шлюза доказва това за минута.

Тунелът, притежаван от приложение, е отново отделен случай. Доставчикът трябва да реализира или изложи поддържаното поведение; инсталирането на втори роден IKEv2 профил не променя тунел, който друга програма вече управлява, а IKEv2 ключът не е директива на OpenVPN, която някой друг клиент ще прочете.

За актуалния списък с ключове и условията за версиите четете справката за полезния товар на IKEv2 на Apple, а не профил, който някой е копирал преди години.

Приемайте ревизията на профила като цяло

Преди да промените Mac, управляван отдалечено, запишете целевите версии на macOS, предвидения изход към интернет, частните префикси, които трябва да останат достъпни, и всяко изключение, което включвате. След това запазете път за възстановяване, който не зависи от тунела, който ще променяте.

Тествайте нови публични заявки, частни заявки, двете адресни семейства и разрешаването на имена и проверете инсталираната ревизия, а не файла с проекта. Ако нещо все още минава директно, решете дали е документирано изключение, различен контекст на връзката или действителна грешка в конфигурацията, и променете едно от тези три, вместо да разширявате несвързани ключове.

Подобни статии