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

Почніть із питання, для чого потрібен другий тунель

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

Запишіть випадок до відкриття будь-якого файлу конфігурації, бо ця відповідь визначає все подальше.

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

Подивіться на пули раніше за маршрути

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

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

Дві родини адрес означають два кола цієї перевірки. Пули IPv6 стикаються так само тихо, як IPv4.

Дайте кожному профілю власника

Один екземпляр на профіль, один файл конфігурації на екземпляр і одне ім'я, що ідентифікує пару. У пакуванні в стилі Debian ім'я після знака @ вибирає файл, тому два профілі з однаковим ім'ям екземпляра ніколи не зможуть працювати обидва. Підтвердьте відповідність за встановленим юнітом, а не за посібником.

systemctl cat [email protected]
ip -4 addr show

Далі вирішіть, хто встановлює маршрути, — це питання політики, а не синтаксису.

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

Перевірте кожен тунель, потім зупиніть один

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

ip rule show
ip route get 203.0.113.9

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

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

Схожі статті