Skip to content

Ping

The Ping tool uses ICMP Echo messages to test network connectivity and measure round-trip delay between the router and target hosts. It is the most fundamental network diagnostic tool for verifying IP connectivity and diagnosing network issues.

  • RouterOS 7.x (all editions including CHR)
  • No additional packages required — the ping tool is built in

Ping operates by sending ICMP Echo Request packets to a target host and waiting for ICMP Echo Reply responses. The tool reports the success or failure of each packet, along with round-trip time statistics. This allows network administrators to quickly determine:

  • Whether a host is reachable
  • The latency to a target destination
  • Packet loss percentage
  • Path viability through the network

Send ICMP echo requests to a target host:

/ping 10.0.0.1 count=10

Output:

SEQ HOST SIZE TTL TIME STATUS
0 10.0.0.1 56 64 1ms
1 10.0.0.1 56 64 1ms
2 10.0.0.1 56 64 1ms
...
sent=10 received=10 packet-loss=0% min-rtt=1ms avg-rtt=1ms max-rtt=2ms
PropertyDescription
addressTarget IP address or hostname to ping
countNumber of ping packets to send (default: unlimited until interrupted)
intervalTime between packets in seconds (default: 1s)
sizePacket size in bytes (default: 56 bytes)
ttlTime-to-live value for outgoing packets
timeoutWait time for replies in seconds
PropertyDescription
src-addressSource IP address to use in outgoing packets
interfaceInterface to send packets from
vrfVRF instance to use for routing lookups
PropertyDescription
dscpDSCP value to set in outgoing packets (0–63)
/ping 8.8.8.8 count=4

Expected output:

SEQ HOST SIZE TTL TIME STATUS
0 8.8.8.8 56 64 10ms
1 8.8.8.8 56 64 11ms
2 8.8.8.8 56 64 10ms
3 8.8.8.8 56 64 11ms
sent=4 received=4 packet-loss=0% min-rtt=10ms avg-rtt=10ms max-rtt=11ms
/ping 10.0.0.1 interface=ether2 count=3
/ping 192.168.1.254 count=3
/ping 10.0.0.1 vrf=vpn count=3
:local target "8.8.8.8"
:local count 3
:local result [/ping $target count=$count];
:if ($result = 0) do={
:log warning "Ping to $target failed - host unreachable"
} else={
:log info "Ping to $target OK - $result replies received"
}

Standard IPv4 ICMP echo:

/ping 192.168.1.1 count=5 interval=2
/ping 8.8.8.8 count=3

IPv6 ICMP echo requests use the /ping command with IPv6 addresses:

/ping 2001:db8::1 count=5
/ping ff02::1%ether2 ; Multicast ping on local segment

Ping by hostname to test DNS resolution:

/ping google.com count=4
/ping mikrotik.com count=3

Run ping until interrupted (Ctrl+C):

/ping 10.0.0.1

Send a specific number of packets:

/ping 10.0.0.1 count=100

Ping devices on the same broadcast domain using MAC addresses. This bypasses IP layer and communicates directly at layer 2.

First, enable the MAC ping server:

/tool mac-server ping set enabled=yes

Then ping by MAC address:

/ping 00:0C:42:72:A1:B0

To restrict to a specific interface:

/ping 00:0C:42:72:A1:B0%ether2

Send ICMP echo to multicast addresses to discover multiple responders:

/ping ff02::1 count=3
  • ff02::1 - IPv6 all-nodes multicast group (discovers all IPv6-enabled hosts on local segment)
  • 224.0.0.1 - IPv4 all-hosts multicast group

This is useful for:

  • Discovering all hosts on a local network segment
  • Verifying multicast functionality
  • Network inventory and discovery

Ping a broadcast address to discover all responsive hosts:

/ping 192.168.1.255 count=2
/ping 10.0.0.255 count=2

Broadcast pinging may not work on all networks due to firewall configurations or switch ACLs.

Test with custom packet sizes:

/ping 10.0.0.1 size=1472 count=10
/ping 10.0.0.1 size=1500 count=5

Ping from a specific source IP:

/ping 10.0.0.1 src-address=192.168.1.100
/ping 2001:db8::1 src-address=2001:db8::100

Useful when the router has multiple IP addresses on different interfaces.

Send packets from a specific interface:

/ping 10.0.0.1 interface=ether2
/ping 192.168.1.1 interface=ether3

Use a specific VRF instance for routing lookups:

/ping 10.0.0.1 vrf=main
/ping 8.8.8.8 vrf=vpn

Set custom TTL to test specific hop behavior:

/ping 10.0.0.1 ttl=1
/ping 192.168.1.100 ttl=64

Follow this systematic approach to diagnose connectivity issues:

Ping the router’s own interface to verify basic IP stack:

/ping 192.168.1.1 count=3

Ping a host on the same subnet:

/ping 192.168.1.10 count=3

Ping the default gateway:

/ping 192.168.1.254 count=3

Ping an external IP address:

/ping 8.8.8.8 count=3

Ping a domain name to test DNS:

/ping google.com count=3
SEQ HOST SIZE TTL TIME STATUS
0 8.8.8.8 56 64 10ms
  • SEQ: Sequence number
  • SIZE: Packet size in bytes
  • TTL: Time-to-live received
  • TIME: Round-trip time in milliseconds
  • STATUS: Reply status

If you see no replies with 100% packet loss:

/ping 10.0.0.1 count=5
sent=5 received=0 packet-loss=100% min-rtt=0ms avg-rtt=0ms max-rtt=0ms

Causes may include:

  • Firewall blocking ICMP
  • Host is offline
  • Incorrect IP address
  • Routing problem
  • Network cable disconnected

Partial packet loss indicates:

sent=10 received=7 packet-loss=30% min-rtt=5ms avg-rtt=12ms max-rtt=50ms
  • Congested link
  • Unstable network connection
  • Intermittent firewall drops
  • Wireless interference

The router cannot find a route to the destination:

/ping 10.100.0.1

Check routing table:

/ip route print

The router knows how to reach the network but cannot:

/ip route print where dst-address=10.100.0.0/24

Verify gateway is reachable and ARP is resolved.

Latency over 100ms may indicate:

  • Congested link
  • Distance to remote host
  • Network equipment processing delays
  • Wireless hop interference

Use ping in scripts for monitoring:

:local target "8.8.8.8"
:local result [/ping $target count=3];
:if ($result = 0) do={
:log warning "Ping to $target failed!"
}

Regular ping monitoring:

/system scheduler add name=ping-gateway interval=1m on-event={
/ping 192.168.1.254 count=1
}

Use Netwatch for automated host monitoring:

/tool netwatch add host=8.8.8.8 interval=30s timeout=1000ms \
up-script="/log info \"Host up\"" \
down-script="/log error \"Host down\""

Some hosts or firewalls rate-limit ICMP responses. Increase interval:

/ping 10.0.0.1 interval=2 count=10

For scanning multiple hosts:

:for i from=1 to=254 do={
/ping 192.168.1.$i count=1
}

Continuous ping with small intervals increases CPU load:

/ping 10.0.0.1 interval=0.1 ; High CPU usage
  • /tool mac-server ping - MAC-level ping server configuration
  • /tool traceroute - Path tracing to destination
  • /tool mac-telnet - Connect via MAC address
  • /tool ssh - Secure shell access
  • /tool fetch - Transfer files over network