diff --git a/doc/thinking/nubes-network-bug-plan-v4-opus.md b/doc/thinking/nubes-network-bug-plan-v4-opus.md index 9e8c8cf..60a57ce 100644 --- a/doc/thinking/nubes-network-bug-plan-v4-opus.md +++ b/doc/thinking/nubes-network-bug-plan-v4-opus.md @@ -77,3 +77,56 @@ cilium drop → внутри кластера; port-forward чист + внеш port-forward идёт через API-сервер (не тот сетевой путь) — он доказывает только невиновность приложения, а не вину шлюза. Использовать формулировку Опуса из таблицы доказательств (она корректна). + +--- + +## ФИНАЛ (обновление Опуса с зафиксированными решениями, 2026-08-15) + +**TL;DR.** Изоляция слоёв. «Виновата платформа» = два несмешиваемых вывода: +(1) приложение невиновно — port-forward через API-сервер чист (иной путь, +шлюз этим НЕ обвиняется); (2) виноват путь/шлюз — echo/сырой TCP таймаутит тем +же паттерном И tcpdump с клиента ловит потерю сегмента, когда nginx/под +ответили за миллисекунды. + +**Зафиксированные решения:** +1. Второго ISP нет; ВМ рядом с Nubes → не «другой сегмент». Опора — контрольный + канал YMQ (49 таймаутов Nubes vs 1/959 YMQ уже исключают локальный интернет). +2. Серверный tcpdump практически недоступен (managed, exec только в alpine-под + без NET_RAW). kubectl debug с NET_RAW — одна проверочная попытка. Замена: + nginx access-log + cilium monitor + echo А/Б. +3. Echo — не сразу, только если фазы 0–2 неоднозначны; доп. риск — новый + NodePort для echo может быть закрыт на managed. +4. port-forward доказывает ТОЛЬКО невиновность приложения, НЕ вину шлюза. + +**Шаги (дешевле → дороже):** +- Фаза 0 (бесплатно): nginx access-log за прошлый тест → логи kube-vip → + тикет Nubes (A и B раздельно). +- Фаза 1 (клиент, ~30 мин): PMTUD-зонд ping -M do (fallback mtr --tcp) → + tcpdump + long_compare_local.py с timestamp каждого таймаута → YMQ-канал + во всех прогонах. +- Фаза 2 (kubectl): port-forward первым → cilium monitor drop параллельно → + externalTrafficPolicy/nodePort. Одна попытка kubectl debug NET_RAW. +- Фаза 3 (echo, если 0–2 не хватило): Go echo без ingress на NodePort → + затем через ingress (изоляция nginx). +- Фаза 4 (тикет): tcpdump клиента + nginx-log + cilium monitor, корреляция + по seq → pcap+логи+ping. + +--- + +## Сравнение ответов ЧЕТЫРЁХ агентов на один промпт (основной агент) + +Условия НЕ равны: Соннет читал планы Flash и Pro; Опус читал все три плана и +весь репозиторий. Это «накопленный контекст», а не чистый тест моделей. + +| | Flash | Pro | Sonnet | Opus | +|---|---|---|---|---| +| Вклад | первым заметил: 512б-таймауты не объясняются MTU | инструменты изоляции: PMTU-зонд, второй ISP, port-forward, таблица доказательств | концептуальная структура: A/B, 51с=экспонента RTO, 1/37с=таймер, port-forward первым | интеграция: синтез всего + факты репозитория + фиксация решений | +| Ошибки | cilium через operator; echo переоценён | «51с = прикладной таймер» (хуже экспоненты RTO) | нет | нет | +| Итог | черновик | сильный методолог | лучший аналитик | лучший интегратор | + +Вывод основного агента: ключевые идеи распределились по всем четырём — +даже слабый Flash увидел главное (второе явление), Pro дал инструменты, +Sonnet построил структуру, Opus всё собрал. Конвергенция четырёх моделей на +одной цепочке (nginx-логи → PMTU → tcpdump → port-forward → cilium → echo) — +признак устойчивости плана. Плюс поправки основного агента приняты Опуса +в финал (port-forward). Итоговый план — продукт всех участников, исполнять.