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

Три політики, які у файлі конфігурації виглядають однаково

Кожен варіант відповідає на інше питання. allow-compression no одразу відмовляє в стиснених корисних даних, allow-compression asym розпаковує те, що надходить, і ніколи не стискає те, що виходить, а старий comp-lzo no залишає місце для push з боку партнера, який вмикає стиснення. Лише перший — політика, яку сервер не може перекрити.

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

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

SettingWhat it permitsWhen it is the right answer
allow-compression noNo compressed payloads, and no compression framing under offloadBoth ends can be changed now
allow-compression asymDecompress inbound onlyA dated migration while peers catch up
comp-lzo noOff locally, still pushable by a peerLegacy compatibility you can still justify

Що означає no у старому варіанті LZO

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

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

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

Лише прийом — це стан міграції, а не пункт призначення

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

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

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

Де offload каналу даних змінює відповідь

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

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

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

Виберіть політику, а потім перевірте узгоджений результат

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

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

Схожі статті