Смена маршрута и неисправный путь ECMP Route change / bad ECMP member
ID причины rt-path · Основной ответственный Команда инфраструктуры · Сетевая инфраструктура · Совместно Команда разработки · Разработка сервера, Внешние стороны · Внешние стороны
Пакеты пропадают в течение нескольких секунд, пока меняется интернет-маршрут, или постоянно на соединениях, попавших на неисправный путь среди нескольких путей ECMP.
Почему Пересчёт маршрутов BGP или неисправное оборудование либо линия связи на одном из нескольких путей (ECMP, LAG) → Следствие Временные потери во время переключения маршрута или постоянные потери только у соединений на этом пути → На экране Внезапный фриз на несколько секунд, потом перемотка, или «после перезахода лучше» (соединение попало на другой путь)
Основной ответственный Команда инфраструктуры · Сетевая инфраструктура · Совместно Команда разработки · Разработка сервера, Внешние стороны · Внешние стороны
Команда разработки: задачи
Записывать статистику повторных передач по соединениям (TCP_INFO), чтобы можно было найти IP, порт и время у пострадавших игроков, не рвать сразу соединение, вставшее на несколько секунд.
Команда инфраструктуры: задачи
Отслеживать долю повторных передач по регионам и провайдерам, проверять, меняется ли путь при перезаходе, иметь линии нескольких провайдеров, проверить пути ECMP и LAG на нашем оборудовании на неисправные линки, измерять маршрут через тот же TCP-порт, что и игра (mtr --tcp --port. Путь выбирается по адресу и порту, поэтому обычный ping может пойти другим путём и показать, что всё в порядке).
Внешние стороны: задачи
Сообщить провайдеру о неисправном пути, приложив результаты измерения маршрута через тот же TCP-порт и сравнение до и после перезахода.
На графике
Ступенька вверх с определённого момента · RTT (пинг), доля повторных передач по регионам и провайдерам
Где смотреть
Собрать повторные передачи по соединениям через bcc tcpretrans -c и выделить адреса и порты пострадавших игроков, затем запустить mtr через тот же TCP-порт, что и игра (mtr -T -P PORT), с сервера к игроку и от игрока к серверу и сравнить. Сравнить и результаты до и после перезахода
Подтверждает
С определённого момента RTT региона или провайдера меняется ступенькой и на несколько секунд сгущаются потери, или даже внутри одного провайдера постоянно повторно передают только некоторые соединения (сочетания адреса и порта), а перезаход помогает. Бывает, что обычный ping в порядке, а потери видны только в TCP mtr
Опровергает
Если в вечерний пик ухудшаются все соединения этого провайдера, это «Переполнение очереди в узком месте (потери от перегрузки)». Если плохо только у одного игрока и потери начинаются уже в ping до роутера, это «Потери на беспроводном участке»