diff --git a/PROBLEM-AND-SOLUTION.md b/PROBLEM-AND-SOLUTION.md index 970e696..afaba53 100644 --- a/PROBLEM-AND-SOLUTION.md +++ b/PROBLEM-AND-SOLUTION.md @@ -33,7 +33,7 @@ flowchart LR - Cilium соединяет ноды через **Geneve-туннель** - Geneve добавляет к каждому пакету **+50 байт** заголовков (Ethernet 14 + IP 20 + UDP 8 + Geneve 8) - Cilium ожидает что underlay (физический канал между нодами) = **1500 байт** - > *Стандартный Ethernet MTU — 1500. Все сетевые интерфейсы, драйверы и протоколы по умолчанию исходят из этого. Cilium честно опрашивает интерфейс ноды, видит 1500 и верит ему. Проблема в том что хостинг-провайдер (VMware/VCD) отдаёт виртуалке интерфейс с MTU 1500, но реальный путь между физическими серверами уже — из-за собственной инкапсуляции провайдера.* + > *Стандартный Ethernet MTU — 1500. Все сетевые интерфейсы, драйверы и протоколы по умолчанию исходят из этого. Cilium опрашивает интерфейс ноды, видит 1500 и принимает за истину. Почему реальный underlay оказался 1450 — может быть связано с инфраструктурой хостинг-провайдера, промежуточным сетевым оборудованием или инкапсуляцией на уровне виртуализации. Без диагностики на стороне провайдера точная причина неизвестна. Факт установлен замером: 1500 не проходит, 1450 проходит.* - Cilium считает: **1500 − 50 = 1450** — такой MTU назначает туннелю и подам - Реальный underlay (измерен `ping -M do`): **1450 байт**, а не 1500 - Пакет из пода = **1450 байт**