32 lines
1.7 KiB
Markdown
32 lines
1.7 KiB
Markdown
# Opus: финальная проверка PROBLEM-AND-SOLUTION.md
|
||
|
||
**Дата:** 2026-07-13
|
||
|
||
---
|
||
|
||
## Вердикт
|
||
|
||
Документ технически добротный. Диагноз и корневое решение (`mtu: 1450` + `Cluster` + `replicaCount: 2`) — правильные.
|
||
|
||
## Исправлено
|
||
|
||
1. **Ethernet 14** — уточнено: «инкапсулируемый L2-кадр 14» (внутренний Ethernet, не внешний)
|
||
2. **51с = прикладной таймаут** — смягчено: «браузер/curl разрывает ожидание» вместо «соединение разрывается»
|
||
|
||
## Что подтверждено как верное
|
||
|
||
- PMTU blackhole как причина — классический сценарий
|
||
- Cilium: `mtu` в configmap = underlay девайса, pod MTU = mtu − overhead
|
||
- Geneve overhead = 50 байт (внешний IP 20 + UDP 8 + Geneve 8 + L2 14)
|
||
- Решение: `mtu: 1450` → pod 1400 → Geneve-пакет 1450 → влазит в path 1450
|
||
- `rollout restart ds/cilium` обязателен
|
||
- `externalTrafficPolicy: Local` → `Cluster` после фикса MTU
|
||
- DSR решает только обратный путь, stall на inbound
|
||
- iptables может не работать с eBPF dataplane
|
||
|
||
## Мелкие замечания (не исправлены, допустимы)
|
||
|
||
- 200ms RTO — корректно для сценария (уже установленное TCP-соединение)
|
||
- Тип туннеля (Geneve vs VXLAN) — overhead одинаков (50), математика не меняется
|
||
- Замеры из таблицы результатов — эмпирические, из кода не подтвердить
|