Профіль із redirect-gateway def1 bypass-dhcp поєднує заміну маршруту IPv4 за замовчуванням з одним вузьким винятком. Люди читають останнє слово й очікують загального рішення для мобільних з'єднань, а потім проводять півдня з теорією DHCP, яку цей прапорець ніколи не підтримував. Кожна частина робить одну справу, і виняток значно менший за свою репутацію.

Розберіть прапорці, перш ніж приписувати збій, що виникає лише в мобільній мережі, призначенню адрес. Дві половини цього рядка не мають одна до одної жодного відношення.

Два прапорці, дві не пов'язані задачі

З def1 клієнт додає два половинних маршрути IPv4 за замовчуванням замість заміни вже наявного маршруту за замовчуванням. 0.0.0.0/1 покриває нижню половину адресного простору, а 128.0.0.0/1 верхню, тож разом вони досягають будь-якого призначення, залишаючись при цьому конкретнішими, ніж 0.0.0.0/0. Початковий маршрут за замовчуванням тому залишається в таблиці, не виграючи цих пошуків, що зберігає доступність старого шлюзу для всього, що клієнт маршрутизує явно. Він також залишає в таблиці два перекривні маршрути за замовчуванням, і тому вивід маршрутів може виглядати дивніше, ніж припускає профіль.

bypass-dhcp окремий і взагалі не зачіпає маршрут за замовчуванням. Посібник OpenVPN 2.6 описує його як додавання прямого маршруту до сервера DHCP, який не перебуває в локальній підмережі, тож трафік оренди виходить за межі тунелю, і зазначає, що таку поведінку реалізовано на клієнтах Windows і в інших місцях вона може бути недоступною.

Причина його існування механічна. Щойно половинні маршрути за замовчуванням захоплять вихідний трафік, оновлення оренди DHCP, спрямоване до сервера у фізичній мережі, буде маршрутизовано в тунель, якщо щось не прив'яже цю адресу до реального інтерфейсу. Прапорець прив'язує її.

На що насправді поширюється виняток

Ілюстративна таблиця після успішного з'єднання показує форму: два половинних маршрути за замовчуванням через тунель і один хост-маршрут до сервера DHCP через фізичний шлюз. Читайте її як форму, а не як ваші власні адреси.

0.0.0.0/1        via 10.8.0.1      dev tun0
128.0.0.0/1      via 10.8.0.1      dev tun0
192.168.1.1/32   via 192.168.1.254 dev wlan0

Третій рядок називає одне призначення. Це не налаштування резолвера, не загальний дозвіл для локальної мережі і не правило виходу на сервері. У телефона в стільниковій мережі може не бути сервера DHCP, який клієнт міг би визначити в такий спосіб, і тому прапорець там нічого не змінює.

Перевірте, що клієнт справді встановив

Розрізняйте параметр, записаний у профілі, параметр, запропонований сервером, і маршрут, який власник з'єднання справді застосував. Клієнт, який відхиляє непідтримуваний прапорець, може зберегти решту конфігурації, тож тунель піднімається, а виняток просто відсутній. Читайте власний журнал клієнта й отриману таблицю маршрутизації, а не припускайте, що рядок у файлі набув чинності. Три з цього можуть бути правдивими одночасно, і лише останнє змінює, куди насправді йдуть пакети.

Тримайте маршрут до кінцевої точки VPN одночасно працездатним. Цей виняток для кінцевої точки — інша вимога, ніж виняток DHCP, і без нього тунель може захопити транспорт, який його підтримує.

Для призначення застосунку дослідіть фактичний пошук у контексті, де він не спрацьовує. Конкретніші локальні маршрути, маршрутизація за політиками й винятки для застосунків змінюють відповідь, тож наявність двох половинних маршрутів за замовчуванням не є переліком кожного потоку.

Решта шляху не в цьому прапорці

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

Розв'язання імен і IPv6 кожне потребує власної політики. Заміна IPv4 не скеровує резолвер до сервера на боці тунелю і не встановлює покриття IPv6, а клієнт, який перенаправляє лише v4, залишає шлях v6 недоторканим.

Порівняйте один схвалений нешкідливий запит на робочому та збійному шляху доступу, тримаючи профіль і призначення незмінними. Запишіть, чи різниця в розв'язанні імен, встановленні тунелю, виборі маршруту чи в пересланому трафіку, і збережіть відповідь разом із профілем. Саме цей запис не дає наступній людині звинувачувати DHCP у проблемі, до якої він не дістає.

Схожі статті