Вопрос: Почему при использовании программ для диагностики сетевых подключений Ping Plotter и WinMTR можно наблюдать потерю пакетов на роутере?
Ответ: В работе программ Ping Plotter и WinMTR есть особенности и результаты тестов через роутер Keenetic не всегда могут быть корректными.
Мы ранее проводили исследование работы программ Ping Plotter и WinMTR и обнаружили ряд ключевых особенностей, которые могут влиять на результаты тестов:
1. Прохождение пингов (ICMP echo request и ICMP echo reply) на Keenetic никаким образом не ограничивается.
2. ICMP всегда считается наименее приоритетным типом трафика. Пакеты ICMP, которые используют Ping Plotter и WinMTR для трассировки, являются наименее приоритетными для оборудования, поэтому при слишком частом опросе будут просто отбрасываться. Такая проверка не может гарантированно показать, где именно проблема, так как и сам сервер и промежуточные узлы, могут вообще не отвечать на пинг/tracert, но это не будет говорить о какой-то проблеме, просто таковы их настройки. И приоритет отдан другим задачам. Потери нужно учитывать именно на конечном хопе, сравнивая количество отправленных пакетов и принятых: если количество отправленных и принятых пакетов равно — следовательно, потерь на тестируемом узле нет и потери на промежуточных хопах учитывать не нужно.
Если в результатах теста присутствует незначительный процент потери пакетов, это обычно некритично для большинства задач, малым процентом потерь можно пренебречь.
3. Ping Plotter и WinMTR могут "терять" не пакеты типа ICMP echo reply, а сетевые пакеты типа ICMP ttl-exceeded. Потому что они не пингуют, а делают traceroute (tracert), посылая UDP-датаграммы (доп. информацию по этой теме вы найдете на сайте в разделе "Как работает traceroute").
4. На Keenetic установлен минимальный интервал прохождения пакетов ICMP ttl-exceeded и составляет 1000 мс (параметр icmp_ratelimit 1000 в конфигурации роутера). Это сделано с точки зрения безопасности, поскольку существуют виды атак с подменой IP-адреса источника, которые могут вынудить оборудование слать ICMP-запросы на другой IP.
За один полусекундный интервал Ping Plotter отправляет запросов по числу хопов до тестируемого узла. Если узел достаточно удален, например, до него 10 хопов, реальная частота отправки запросов будет 500 мс / 10 = один раз в 50 мс. На бОльшую часть из этих запросов Ping Plotter не получит ответа и нарисует красный прямоугольник на графике.
5. Можно проверить, что проблема не будет проявляться, если Ping Plotter-ом, например, проверить ближайший шлюз провайдера.
Как вариант, можно выполнить ping -t 192.168.1.1 в командной строке Windows. Если потерь пинга не будет, то потери, выдаваемые Ping Plotter-ом на 192.168.1.1, не имеют ничего общего с потерями пакетов полезного трафика.
В WinMTR по умолчанию стоит интервал отправки запросов 1 секунда, и если этот интервал не уменьшать, то проблем не будет.
6. Разрешить прохождение пакетов ICMP ttl-exceeded чаще, чем раз в 1000 мс можно в интерфейсе командной строки (CLI) роутера командой:
system set net.ipv4.icmp_ratelimit <число>
Где <число> — минимально допустимый интервал в мс.
Например, выполните команду:
system set net.ipv4.icmp_ratelimit 10
Но на хопах потери всё равно могут быть, рекомендацией может быть только не ставить интервал traceroute чаще одного раза в секунду.
NOTE: Важно! Использование команды system set net.ipv4.icmp_ratelimit 10 поможет Ping Plotter-у с потерей пакетов, но ухудшит производительность Кинетика с точки зрения скорости маршрутизации всего прочего трафика.
7. Также есть нюансы в работе Wi-Fi-системы. При ее работе используется протокол STP, он чутко реагирует на любое изменение топологии, если в системе есть проводное устройство, у которого нестабильный линк, то из-за этого будет постоянно перестраиваться дерево STP, а сетевой коммутатор на Keenetic будет блокироваться на несколько секунд.
8. Если есть ошибки в работе по кабелю, нужно анализировать системный журнал (логи) роутера в такие моменты.
Что же касается беспроводной связи, проблема может быть в самом Wi-Fi. Для приложений и сервисов, чувствительных к потерям пакетов и задержкам, рекомендуется использовать проводное подключение или подключение Wi-Fi в диапазоне 5 ГГц. Диапазон 2.4 ГГц плохо подходит для таких задач, и нестабильный пинг в этом диапазоне не является редкостью.
Основные причины проблем с Wi-Fi рассмотрены в статье "Почему при подключении к роутеру по Wi-Fi наблюдается низкая скорость?"
Если потери пакетов имеют периодический характер, то это может зависеть от тех маршрутов, по которым идет трафик до сервера, от загруженности магистральных каналов и хопов на пути, от загруженности самого сервера, и, конечно, от работы оборудования провайдера тоже.