В глобальной сети IP пакеты проходят множество транзитных узлов, каждый из которых может служить причиной нестабильной работы сети. Для диагностики сетевых проблем удобно использовать утилиту mtr (Winmtr для Windows), которая сочетает в себе функции программ ping и traceroute. Поскольку маршрутизация может быть асимметричная, трассировку желательно проводить в обоих направлениях.
#Установка mtr в CentOS yum install mtr #Установка mtr в Debian/Ubuntu apt-get install mtr-tiny #Установка mtr в Fedora dnf install mtr #Установка mtr в OpenSUSE zypper install mtr #Установочные пакеты для Windows http://winmtr.net/download-winmtr/
Рассмотрим вывод mtr -r -c 100 google.com:
HOST: vm204399.local Loss% Snt Last Avg Best Wrst StDev 1.|-- 172.20.10.7 0.0% 100 0.2 0.2 0.2 2.6 0.2 2.|-- ??? 100.0 100 0.0 0.0 0.0 0.0 0.0 3.|-- ??? 100.0 100 0.0 0.0 0.0 0.0 0.0 4.|-- 209.85.251.34 0.0% 100 1.4 9.6 1.3 102.2 24.5 5.|-- 209.85.243.149 0.0% 100 23.4 23.5 23.2 30.4 0.7 8.|-- 66.249.94.138 0.0% 100 41.4 42.6 41.4 57.8 3.9 9.|-- 209.85.240.161 0.0% 100 76.1 75.8 75.2 93.3 2.2 10.|-- 72.14.235.7 0.0% 100 75.1 75.2 75.1 78.1 0.4 11.|-- 64.233.175.249 0.0% 100 75.1 75.1 75.0 77.6 0.2 12.|-- sof02s21-in-f14.1e100.net 0.0% 100 75.2 75.1 75.0 75.9 0.0
HOST — имя хоста;
Loss% — процент потерь пакетов;
Snt — количество отправленных пакетов;
Last — время задержки последнего отправленного пакета в миллисекундах;
Avg — среднее время задержки;
Best — минимальное время задержки;
Wrst — максимальное время задержки;
StDev — среднеквадратичное отклонение времени задержки;
Из вывода видно, что cеть функционирует в нормальном режиме, а узлы 2 и 3 не принимают ICMP запросы или фильтруют пакеты по TTL.
Также возможно использование TCP SYN вместо ICMP ECHO, для этого необходимо указать ключ tcp, например:
mtr --tcp --port 80 -r -c 100 google.com