Перевірте політичну маршрутизацію Linux, перш ніж змінювати маршрут за замовчуванням
Одне правило може надіслати потік до іншої таблиці й зробити основний маршрут за замовчуванням неістотним. Прочитайте пріоритет, таблицю та власника, перш ніж змінювати маршрут Linux VPN.
Хост VPN відповідає на одному інтерфейсі й відмовляється надсилати відповіді назад через тунель, а маршрут за замовчуванням виглядає правильно. Саме тут основна таблиця перестає бути всією історією. Linux може вибирати таблицю маршрутизації для кожного пакета за допомогою правил політики, і VPN, можливо, встановив одне. Прочитайте правила, перш ніж торкатися маршруту за замовчуванням.
Порядок важливий: спершу правила, потім таблиця, яку вибирає кожне правило.
Читайте правила в порядку пріоритету
Виконайте ip rule show і читайте згори донизу. Номер пріоритету керує порядком перевірки, і менше число перевіряється раніше. Правило за замовчуванням на 32766 зазвичай останнє, яке має значення. Якщо список довгий, збережіть його у файл, перш ніж щось змінювати.
Для кожного правила запишіть пріоритет, збіг (джерело, мітка, інтерфейс або призначення) і таблицю, на яку воно посилається. Правило без придатної таблиці — це глухий кут, а не маршрут.
Зробіть те саме для IPv6 за допомогою ip -6 rule show. Політика, що існує лише в родині IPv4, залишає іншу родину в основній таблиці.
Читайте таблицю, яку вибирає кожне правило
Використовуйте ip route show table <name or number> для кожної згаданої таблиці. Порівняйте її маршрути з інтерфейсом і наступним вузлом, які ви очікуєте. Порожня або неповна таблиця пояснює збій, який основна таблиця пояснити не може.
В основній таблиці все ще може бути маршрут за замовчуванням, і це нормально. Якщо правило спершу надсилає ваш потік до таблиці 51820, основний маршрут за замовчуванням для цього пакета неістотний.
Знайдіть ім'я таблиці в /etc/iproute2/rt_tables, якщо номер незнайомий. Цей пошук займає секунду й запобігає довгому обходу.
З'ясуйте, хто встановив правило
NetworkManager, wg-quick та інші скрипти можуть встановлювати правила динамічно. Видалення одного під час роботи може бути скасовано під час наступного перепідключення. Перевірте конфігурацію менеджера, перш ніж додавати конкуруюче правило.
Наприклад, wg-quick додає позначене правило й таблицю для дозволених адрес тунелю. Саме через це правило трафік до цих адрес обходить основний маршрут за замовчуванням. Якщо видалити його, не змінивши конфігурацію, наступний up його відновить.
Зберігайте зовнішній маршрут кінцевої точки й доступ керування під час перевірки. Не очищайте всі правила на робочому віддаленому шлюзі, щоб спростити вивід. Сеанс керування, який переживає зміну, — частина тесту.
Перевірте важливий контекст джерела
Загальний ip route get відповідає на інше питання, ніж потік застосунку. Додайте адресу джерела й мітку, якщо VPN її використовує, щоб побачити шлях, який проходить справжній пакет. Перевірте включене та виключене призначення з тим самим контекстом джерела. Потім повторіть для IPv6, якщо хост працює з подвійним стеком.
Після схваленого виправлення повторно виконайте ті самі дві перевірки й порівняйте. Запишіть задумане правило, таблицю й те, скільки правило переживає перезапуск. Цей запис робить наступний перезапуск служби пояснюваним, а не загадковим. сторінка посібника ip-rule документує селектори збігів і синтаксис таблиць.