Журнали IPsec можуть показувати відповіді про живучість, поки застосунок перед ними стоїть, і обидва факти можуть бути правдивими водночас. Відповідь DPD встановлює, що обробка IKE партнера відповіла в той момент; вона нічого не каже про те, чи дочірня SA несе потрібний вам пакет. Вважати кожне попередження поблизу збою його причиною — це шлях, яким проблема селектора діагностується як помилка протоколу. Три спостереження плутають найчастіше, і вони відповідають на три різні питання. Читайте їх за зв'язком і призначенням, перш ніж читати за міткою часу.

Що доводить кожне спостереження

Таблиця відокремлює те, що встановлює кожне спостереження, від того, що воно лише супроводжує.

ObservationWhat it establishesWhat it leaves open
DPD replies arriveThe peer's IKE process answeredThe child SA, forwarding path and application reply
TFC padding notificationThe peer will not accept padding for that child SAWhether ordinary ESP protection still works, which it does
Selectors reported as narrowedThe accepted traffic set is a subset of the offerWhether the subset includes the flow the user needs

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

Живучість — не здоров'я даних

DPD працює як обмін INFORMATIONAL, розмова площини керування між демонами IKE. Відповідь доводить, що процес IKE партнера доступний і готовий відповісти, а тайм-аут доводить, що ні. Жоден результат не перевіряє дочірню SA, селектори, шлях пересилання чи відповідь застосунку, тож здоровий DPD поруч із зупиненою передачею — це цілісна картина, а не суперечність.

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

Повідомлення про заповнення — це твердження про заповнення

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

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

Звуження тихіше і ймовірніше важливе

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

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

Побудуйте один запис для збійного потоку

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

Потім визначте дочірню SA та її напрямні лічильники: swanctl --list-sas дає зведення асоціації на хості strongSwan, а ip -s xfrm state дає лічильники. Читайте їх після свіжого дозволеного запиту, а не коли система простоює. Відсутність зростання вихідного трафіку вказує на вибір або локальний шлях; вихідний без відповідного вхідного вказує на партнера, його пересилання чи його відповіді.

Завершений обмін застосунку важливіший за будь-який лічильник, тому тест має завершуватися на застосунку, а не на індикаторі тунелю.

Виберіть виправлення після цього

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

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

Схожі статті