Ping и Traceroute на MikroTik — диагностика сети
Ping и Traceroute — базовые, но незаменимые инструменты сетевой диагностики. RouterOS предоставляет расширенные версии этих утилит: ping с указанием source-address и routing-table, traceroute с настраиваемым протоколом, и flood-ping для стресс-тестирования. Умение правильно использовать эти инструменты позволяет быстро локализовать проблему: потеря пакетов, высокая задержка, неправильная маршрутизация или проблемы с MTU.
Описание
Ping
Ping отправляет ICMP Echo Request к указанному хосту и ждёт ICMP Echo Reply. Показывает:
- RTT (Round-Trip Time) — время прохождения пакета туда и обратно
- TTL — Time To Live ответного пакета
- Packet Loss — процент потерянных пакетов
- Jitter — вариация задержки между пакетами
Traceroute
Traceroute показывает путь пакета до назначения — все промежуточные маршрутизаторы (хопы). Работает через отправку пакетов с последовательно увеличивающимся TTL: первый пакет с TTL=1 (отвечает первый хоп), второй с TTL=2 (второй хоп) и так далее.
Flood Ping
Flood ping отправляет ICMP-пакеты с максимальной скоростью, не дожидаясь ответа. Используется для стресс-тестирования канала и обнаружения потерь под нагрузкой. Требует осторожности — может перегрузить канал.
Настройка
Базовый Ping
[admin@MikroTik] ># Простой ping /ping 8.8.8.8 # Ping с ограничением количества пакетов /ping 8.8.8.8 count=10 # Ping с указанием размера пакета /ping 8.8.8.8 size=1000 count=10 # Ping с интервалом 100ms (по умолчанию 1000ms) /ping 8.8.8.8 interval=100ms count=20 # Ping по доменному имени /ping google.com count=5
Ping с Source Address
Указание source-address критически важно при наличии нескольких WAN-интерфейсов или VPN-туннелей:
[admin@MikroTik] ># Ping от имени конкретного IP (проверка маршрутизации) /ping 8.8.8.8 src-address=203.0.113.5 count=5 # Ping через VPN-туннель (source = адрес туннеля) /ping 10.10.0.1 src-address=10.10.0.2 count=5 # Ping от LAN-адреса роутера /ping 192.168.88.100 src-address=192.168.88.1 count=5
Без src-address роутер выберет source автоматически по таблице маршрутов. Если у вас два провайдера и нужно проверить конкретный канал — указывайте src-address.
Ping через конкретную Routing Table
Для проверки policy-based routing или VRF:
[admin@MikroTik] ># Ping через альтернативную routing table /ping 8.8.8.8 routing-table=ISP2 count=5 # Ping через VRF /ping 10.0.0.1 routing-table=VRF-CLIENTS count=5
Определение MTU (Path MTU Discovery)
Когда пакеты теряются из-за фрагментации, нужно определить максимальный MTU на пути:
[admin@MikroTik] ># Ping с размером 1472 + 28 (заголовок) = 1500 MTU, запрет фрагментации /ping 8.8.8.8 size=1472 do-not-fragment count=5 # Если пакеты теряются — уменьшаем размер /ping 8.8.8.8 size=1400 do-not-fragment count=5 # Для PPPoE (MTU 1480): проверяем 1452 /ping 8.8.8.8 size=1452 do-not-fragment count=5 # Для VPN-туннелей (MTU обычно 1400-1420) /ping 10.10.0.1 size=1372 do-not-fragment count=5
Формула: размер ICMP-данных + 28 байт (20 IP + 8 ICMP заголовки) = MTU. Если ping size=1472 проходит, а size=1473 нет — MTU канала равен 1500. Бинарным поиском можно найти точный MTU.
Traceroute
[admin@MikroTik] ># Базовый traceroute /tool/traceroute address=8.8.8.8 # Traceroute с указанием количества попыток на хоп /tool/traceroute address=8.8.8.8 count=3 # Traceroute через конкретный source /tool/traceroute address=8.8.8.8 src-address=203.0.113.5 # Traceroute с использованием UDP вместо ICMP /tool/traceroute address=8.8.8.8 protocol=udp # Traceroute с увеличенным таймаутом (для медленных каналов) /tool/traceroute address=8.8.8.8 timeout=3s # Traceroute через routing table /tool/traceroute address=8.8.8.8 routing-table=ISP2
Flood Ping
[admin@MikroTik] ># Flood ping — максимальная скорость отправки /tool/flood-ping address=192.168.88.100 count=1000 # Flood ping с заданным размером пакета /tool/flood-ping address=192.168.88.100 size=1400 count=500 # Flood ping для проверки канала провайдера /tool/flood-ping address=203.0.113.1 count=5000
Внимание: flood-ping генерирует высокую нагрузку. Используйте только для тестирования собственных каналов и с согласия провайдера. Flood-ping на чужие серверы может быть расценён как атака.
Проверка
Диагностика потери пакетов
[admin@MikroTik] ># Длительный ping для выявления нестабильности /ping 8.8.8.8 count=100 interval=500ms
В результатах обратите внимание на:
- packet-loss > 0% — проблема с каналом или маршрутизацией
- avg-rtt > 100ms — высокая задержка (норма зависит от расстояния)
- max-rtt значительно больше avg-rtt — джиттер, нестабильный канал
Диагностика маршрутизации
Traceroute показывает путь пакета. Если маршрут внезапно заканчивается звёздочками — промежуточный роутер блокирует ICMP или пакеты теряются:
[admin@MikroTik] >/tool/traceroute address=example.com
Типичные паттерны:
- Хоп 1 не отвечает — проблема с gateway (проверьте
/ip/route/print) - Хоп N — звёздочки, дальше нормально — промежуточный роутер блокирует ICMP (это нормально)
- Все хопы после N — звёздочки — потеря маршрута или firewall блокирует дальше
- Петля (один и тот же IP повторяется) — routing loop, проверьте маршруты
Проверка VPN-канала
[admin@MikroTik] ># Ping до удалённого конца туннеля /ping 10.10.0.1 src-address=10.10.0.2 count=10 # Ping хоста за VPN (в удалённой подсети) /ping 192.168.10.100 src-address=10.10.0.2 count=10 # Traceroute через VPN — проверка маршрута /tool/traceroute address=192.168.10.100 src-address=10.10.0.2
Если ping до конца туннеля работает, а до хоста за VPN нет — проблема с маршрутизацией на удалённой стороне.
Проверка DNS
[admin@MikroTik] ># Если ping по IP работает, а по имени нет — проблема с DNS /ping 8.8.8.8 count=3 /ping google.com count=3 # Проверка DNS-резолвера /ip/dns/print
Типичные ошибки
-
Ping не работает, а интернет есть — удалённый хост или промежуточный firewall блокирует ICMP. Это не значит, что хост недоступен. Проверьте TCP-соединение:
/tool/traceroute address=host protocol=tcp port=80 -
Ping с неправильным source — при двух WAN-интерфейсах ping без src-address может уходить через "неправильного" провайдера. Если нужно проверить конкретный канал — всегда указывайте src-address
-
Traceroute показывает звёздочки — многие провайдеры и cloud-провайдеры блокируют ICMP TTL Exceeded на своих маршрутизаторах. Звёздочки посередине трассы при работающем ping до конечной точки — нормальное явление
-
MTU-проблемы не видны обычным ping — стандартный ping отправляет маленькие пакеты (64 байта), которые проходят через любой канал. Проблемы с MTU проявляются только на больших пакетах. Всегда тестируйте с
size=1472 do-not-fragment -
Flood-ping через VPN — flood-ping генерирует тысячи пакетов в секунду. Через VPN-туннель это может полностью забить канал и вызвать timeout самого VPN-соединения. Используйте обычный ping для VPN-диагностики
-
Забыли routing-table при PBR — если трафик идёт через policy-based routing, обычный ping с роутера пойдёт через main routing table. Для тестирования конкретной таблицы маршрутов используйте параметр routing-table
# Простой ping /ping 8.8.8.8 # Ping с ограничением количества пакетов /ping 8.8.8.8 count=10 # Ping с указанием размера пакета /ping 8.8.8.8 size=1000 count=10 # Ping с интервалом 100ms (по умолчанию 1000ms) /ping 8.8.8.8 interval=100ms count=20 # Ping по доменному имени /ping google.com count=5 # Ping от имени конкретного IP (проверка маршрутизации) /ping 8.8.8.8 src-address=203.0.113.5 count=5 # Ping через VPN-туннель (source = адрес туннеля) /ping 10.10.0.1 src-address=10.10.0.2 count=5 # Ping от LAN-адреса роутера /ping 192.168.88.100 src-address=192.168.88.1 count=5 # Ping через альтернативную routing table /ping 8.8.8.8 routing-table=ISP2 count=5 # Ping через VRF /ping 10.0.0.1 routing-table=VRF-CLIENTS count=5 # Ping с размером 1472 + 28 (заголовок) = 1500 MTU, запрет фрагментации /ping 8.8.8.8 size=1472 do-not-fragment count=5 # Если пакеты теряются — уменьшаем размер /ping 8.8.8.8 size=1400 do-not-fragment count=5 # Для PPPoE (MTU 1480): проверяем 1452 /ping 8.8.8.8 size=1452 do-not-fragment count=5 # Для VPN-туннелей (MTU обычно 1400-1420) /ping 10.10.0.1 size=1372 do-not-fragment count=5 # Базовый traceroute /tool/traceroute address=8.8.8.8 # Traceroute с указанием количества попыток на хоп /tool/traceroute address=8.8.8.8 count=3 # Traceroute через конкретный source /tool/traceroute address=8.8.8.8 src-address=203.0.113.5 # Traceroute с использованием UDP вместо ICMP /tool/traceroute address=8.8.8.8 protocol=udp # Traceroute с увеличенным таймаутом (для медленных каналов) /tool/traceroute address=8.8.8.8 timeout=3s # Traceroute через routing table /tool/traceroute address=8.8.8.8 routing-table=ISP2 # Flood ping — максимальная скорость отправки /tool/flood-ping address=192.168.88.100 count=1000 # Flood ping с заданным размером пакета /tool/flood-ping address=192.168.88.100 size=1400 count=500 # Flood ping для проверки канала провайдера /tool/flood-ping address=203.0.113.1 count=5000 # Длительный ping для выявления нестабильности /ping 8.8.8.8 count=100 interval=500ms /tool/traceroute address=example.com # Ping до удалённого конца туннеля /ping 10.10.0.1 src-address=10.10.0.2 count=10 # Ping хоста за VPN (в удалённой подсети) /ping 192.168.10.100 src-address=10.10.0.2 count=10 # Traceroute через VPN — проверка маршрута /tool/traceroute address=192.168.10.100 src-address=10.10.0.2 # Если ping по IP работает, а по имени нет — проблема с DNS /ping 8.8.8.8 count=3 /ping google.com count=3 # Проверка DNS-резолвера /ip/dns/print