36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# Opus: проверка PROBLEM-AND-SOLUTION.md на ошибки
|
||
|
||
**Дата:** 2026-07-13
|
||
|
||
---
|
||
|
||
## Найденные ошибки
|
||
|
||
### 1. TCP backoff — неправильные числа
|
||
|
||
**Было:** `1с → 3с → 7с → 15с → 25с = 51с` — выдумано.
|
||
|
||
**Правильно:** начальный RTO = 200ms, удвоение:
|
||
```
|
||
0.2с → 0.4с → 0.8с → 1.6с → 3.2с → 6.4с → 12.8с → 25.6с = 51с
|
||
```
|
||
8 ретрансмитов от 200ms = ровно 51 секунда (Linux kernel default).
|
||
|
||
### 2. DSR — неверное объяснение причины stall
|
||
|
||
**Было:** «двойной инкапсуляции return-трафика (главная причина stall)».
|
||
|
||
**Правильно:** stall на **входящем** трафике (клиент → pod), а не на return. DSR оптимизирует обратный путь, но не решает проблему inbound MTU black-hole.
|
||
|
||
### 3. Ping измеряет pod MTU, не underlay
|
||
|
||
Утверждение что `ping -M do` доказывает underlay = 1450 — неточно. Ping из пода измеряет MTU пода (1450 = 1500 − 50 Cilium). Физический underlay = 1450 подтверждён эмпирически (фикс сработал), а не прямым замером.
|
||
|
||
## Что верно
|
||
|
||
- Geneve overhead 50 байт: outer IP(20) + UDP(8) + Geneve(8) + inner Eth(14) = 50 ✓
|
||
- `mtu: 1450` → pod MTU = 1400 ✓
|
||
- `rollout restart ds/cilium` обязателен ✓
|
||
- iptables может не работать с eBPF dataplane ✓
|
||
- Корень проблемы и решение верны ✓
|