# Opus: валидация MSS Clamping плана **Дата:** 2026-07-13 --- ## Ключевое исправление В плане ошибка: `mtu: 1450` в cilium-config — это MTU **underlay-сети**, не туннеля. Cilium сам вычитает 50 байт на Geneve: ``` mtu: 1450 → tunnel MTU = 1450 − 50 = 1400 ``` По умолчанию Cilium автодетектит underlay 1500 → туннель 1450. Если stall всё равно есть — underlay реально < 1500. **Число надо измерить, не гадать.** --- ## Ответы на вопросы ### 1. Корректно ли решение? Да, направление верное. Но: - ConfigMap сам не применяется — нужен `rollout restart ds/cilium` - Число 1450 — гипотеза, нужен замер между нодами - `mtu` глобален на весь кластер - Существующие TCP-соединения не поменяют MSS — только новые ### 2. Что ещё нужно? 1. Измерить underlay MTU: `ping -M do -s 1472 ` (уменьшать пока не пройдёт) 2. `kubectl rollout restart ds/cilium -n kube-system` 3. Пересоздать поды приложения (ingress, drhider) 4. Вернуть `externalTrafficPolicy: Cluster` ### 3. Как проверить? ```bash # Измерить до: ping -M do -s 1472 tracepath # После изменения: kubectl -n kube-system exec ds/cilium -- cilium-dbg status | grep -i mtu ip link show | grep -E 'cilium|geneve' tcpdump -ni any 'tcp[tcpflags] & tcp-syn != 0' -vv | grep mss # Функционально: файл >5 MB без паузы ``` ### 4. Риск для других сервисов? Понижение MTU безопасно (меньше = консервативнее). Небольшой рост числа пакетов, микро-потеря throughput. Функционально ничего не ломает. Рестарт агентов — возможны короткие блипы, лучше в окно. ### 5. iptables равноценен? **Нет.** Cilium с eBPF обходит netfilter FORWARD — правило может не видеть пакеты. Надёжнее `cilium-config`. Если iptables — то на всех 4 нодах (kube-vip раздаёт VIP на все). ### 6. Вердикт Путь правильный. Уточнённый план: 1. Измерить path MTU между нодами 2. Выставить `mtu` = измеренное значение (вероятно < 1500) 3. Рестарт агентов + подов 4. Вернуть `Cluster` policy При `Cluster` проблема реплик исчезает сама (2 хватает). --- ## Моё мнение Opus прав. План нужно дополнить **замером**. Без замера `1450` — пальцем в небо. Обновлю `MSS-CLAMPING-PLAN.md` с учётом: - Добавить шаг 0: измерение path MTU - Исправить формулу: `mtu` = underlay, туннель = `mtu - 50` - Добавить `rollout restart ds/cilium` + рестарт подов - Убрать iptables как основной вариант (ненадёжен с Cilium)