База знаний

Находите потерю пакетов с помощью MTR и читайте её правильно

Большинство сообщений о потере пакетов — это ограничение скорости ICMP на транзитном роутере; вот как правильно запускать MTR и отличать одно от другого, прежде чем писать в тикет.

Установка

apt install -y mtr-tiny     # Debian
dnf install -y mtr          # AlmaLinux

Запуск корректно

mtr -rwbc 200 <destination>
  • -r режим отчёта, чтобы получить результат, который можно вставить
  • -w широкий вывод, чтобы длинные имена хостов не обрезались
  • -b показывать имя и адрес каждого хопа
  • -c 200 двести циклов, около трёх с половиной минут, и разница между доказательством и анекдотом

Десять пакетов не доказывают ничего. Если прогон из десяти циклов показывает потери, запустите двести, прежде чем делать выводы.

Сначала смотрите последний хоп

Маршрутизаторы де-приоритизируют пакеты, адресованные им самим. Транзитный маршрутизатор, несущий сотни гигабит, ответит на ваши зонды с истёкшим TTL, когда у него есть свободный цикл, и отбросит их, когда нет, что рисует потери в середине отчёта, в то время как каждый пакет, который вас действительно волнует, доходит целым.

Два правила покрывают большинство отчётов:

  1. Потери на хопе семь, которые отсутствуют на хопе восемь и далее, — это ограничение скорости. Игнорируйте их.
  2. Потери, начинающиеся на хопе семь и продолжающиеся до самого назначения, реальны, и хоп, где они начинаются, — это место, куда смотреть.

Задержка ведёт себя так же. Хоп, добавляющий восемьдесят миллисекунд и затем передающий трафик следующему хопу с предыдущим значением, отвечает медленно, а не пересылает медленно.

ICMP — это не ваш трафик

Если сервис работает по TCP, тестируйте по TCP:

mtr -rwbc 200 --tcp --port 443 <destination>

Сети, которые жёстко ограничивают ICMP, часто пропускают TCP без ограничений. Обратный случай стоит выяснить до того, как обвинять чью-либо сеть: файрвол, который радостно отвечает на ping и дропает порт, к которому реально обращаются ваши пользователи.

Оба направления, каждый раз

Маршрутизация асимметрична чаще, чем нет. Путь от вас к нам — это не путь от нас к вам, и отчёт с одного конца описывает ровно один из них. Запускайте MTR с инстанса к клиенту и с клиента к инстансу, затем прикладывайте оба. Нашу половину пути также можно протестировать без шелла где-либо, через looking glass.

Подтвердите это счётчиками TCP

MTR описывает путь. Статистика сокетов описывает последствие:

ss -ti state established
nstat -az TcpRetransSegs TcpExtTCPLostRetransmit

Уровень повторных передач выше примерно процента на соединении, которое должно быть чистым, подтверждает отчёт. Ноль повторных передач наряду с MTR, полным потерь, означает, что вы смотрите на ограничение скорости и ничего больше.

Что нам отправить

  • Обе отчёта MTR, двести циклов, текстом, а не скриншотом
  • Назначение, транспорт и порт
  • Метки времени с часовым поясом и постоянны ли потери или они всплесками
  • ID инстанса

Примерно половина таких случаев разрешается как ограничение скорости на промежуточном хопе, и мы говорим об этом в первом ответе. Остальное мы обычно можем обойти в течение часа: потери внутри нашей собственной сети — это наша проблема, а потери на одном транзитном пути — это вопрос переноса вашего трафика на другой.

Готовы, когда вы готовы

Выберите город. Выберите размер. Оплатите монетой.

Никаких форм о том, кто вы, никакого ожидания одобрения человеком, никаких звонков для проверки. Счёт оплачен — и учётные данные приходят на почту.