Ping

本页介绍 MikroTik RouterOS 的 Ping 工具,它使用 ICMP Echo 消息测试主机连通性并测量往返延迟。文中解释了 TTL、interval、count 等参数,并支持 IPv4/IPv6 地址和 DNS 名称。在组播发现部分还简要提到了 MAC Ping。

Ping

Ping CLI 参考

Ping 使用 Internet Control Message Protocol (ICMP) Echo 消息来确定远程主机是活动还是非活动,并确定与其通信时的往返延迟。Ping 工具向主机发送 ICMP(类型 8)消息并等待 ICMP echo-reply(类型 0)。这些事件之间的间隔称为往返。如果响应(称为 pong)在间隔结束前未到达,我们假定它已超时。报告的第二个重要参数是 TTL(Time to Live)。它在处理数据包的每台机器上递减。只有当 TTL 大于源到目的地之间的路由器数量时,数据包才会到达其目的地。

快速示例

RouterOS Ping 工具允许您配置各种附加参数,例如:

  • arp-ping
  • nd-ping
  • address
  • src-address
  • count
  • dscp
  • interface
  • interval
  • routing-table
  • size
  • ttl

让我们看一个非常简单的示例:

[admin@MikroTik] > /tool/ping address=10.155.126.252 count=5 interval=200ms  
  SEQ HOST                                     SIZE TTL TIME  STATUS                                                                                                                                                                              
    0 10.155.126.252                             56  64 0ms  
    1 10.155.126.252                             56  64 0ms  
    2 10.155.126.252                             56  64 0ms  
    3 10.155.126.252                             56  64 0ms  
    4 10.155.126.252                             56  64 0ms  
    sent=5 received=5 packet-loss=0% min-rtt=0ms avg-rtt=0ms max-rtt=0ms 

我们可以用更短的 CLI 命令达到相同效果:

[admin@MikroTik] > /ping 10.155.126.252 count=5 interval=50ms               
  SEQ HOST                                     SIZE TTL TIME  STATUS                                                                                                                                                                              
    0 10.155.126.252                             56  64 0ms  
    1 10.155.126.252                             56  64 0ms  
    2 10.155.126.252                             56  64 0ms  
    3 10.155.126.252                             56  64 0ms  
    4 10.155.126.252                             56  64 0ms  
    sent=5 received=5 packet-loss=0% min-rtt=0ms avg-rtt=0ms max-rtt=0ms

也可以 ping 一个组播地址来发现属于某个组播组的所有主机:

[admin@MikroTik] > /ping ff02::1
HOST                                    SIZE  TTL TIME  STATUS                                         
fe80::20c:42ff:fe49:fceb                56    64  1ms   echo reply                                     
fe80::20c:42ff:fe72:a1b0                56    64  1ms   echo reply                                     
fe80::20c:42ff:fe28:7945                56    64  1ms   echo reply                                     
fe80::21a:4dff:fe5d:8e56                56    64  3ms   echo reply                                     
    sent=1 received=4 packet-loss=-300% min-rtt=1ms avg-rtt=1ms max-rtt=3ms 

按 DNS 名称 ping:

[admin@MikroTik]  > /ping www.google.com count=5 interval=50ms
  SEQ HOST                                     SIZE TTL TIME  STATUS                                                                                                                                                                              
    0 216.58.207.228                             56  51 14ms 
    1 216.58.207.228                             56  51 13ms 
    2 216.58.207.228                             56  51 13ms 
    3 216.58.207.228                             56  51 13ms 
    4 216.58.207.228                             56  51 13ms 
    sent=5 received=5 packet-loss=0% min-rtt=13ms avg-rtt=13ms max-rtt=14ms

信息

当您使用域名和 CLI 进行 ping 时,将使用路由器的 DNS 来解析地址。当您使用 WinBox Tools/Ping 时,将使用您计算机的 DNS 来解析给定地址。

ND Ping

arp-ping 的 IPv6 对应项:使用 nd-ping=yes 时,路由器发送 IPv6 邻居请求(NS)而不是 ICMPv6 echo 请求,并在收到邻居通告(NA)时报告成功。这允许即使 ICMPv6 echo 被过滤或禁用,也能确认主机存在和 ND 工作。ND ping 仅适用于直接连接(on-link)的 IPv6 地址;子网外目标会返回 no route to host 错误。全局目标需要显式指定 interface=,否则 ping 会失败并提示 interface needs to be specified for ND ping(链路本地目标通过 %iface 后缀携带它):

[admin@MikroTik] > /tool/ping address=fe80::2ec8:1bff:fef3:9c5e%ether1 nd-ping=yes
[admin@MikroTik] > /tool/ping address=2001:db8:0:1::2 nd-ping=yes interface=ether1

在 WinBox 中,Tools → Ping 在 ARP Ping 旁边有一个单独的 ND Ping 复选框,并带有一个接口选择器。

MAC Ping

此子菜单允许启用 MAC Ping 服务器。

启用 MAC ping 后,同一广播域中的其他主机可以使用 ping 工具 ping 一个 MAC 地址:

[admin@MikroTik]  > /tool/mac-server/ping/set enabled=yes 

Ping MAC 地址:

[admin@MikroTik]  > /ping 00:0C:42:72:A1:B0
HOST                                    SIZE  TTL TIME  STATUS                                         
00:0C:42:72:A1:B0                       56        0ms  
00:0C:42:72:A1:B0                       56        0ms  
    sent=2 received=2 packet-loss=0% min-rtt=0ms avg-rtt=0ms max-rtt=0ms 

信息

默认情况下,MAC ping 会尝试通过所有活动接口到达目的地。如果目的地可通过多个接口到达,这可能会产生不必要的流量和重复回复。要将 MAC ping 限制到特定接口,请使用接口选择器(在 MAC 地址后附加 % 加上接口名称)。例如:/ping 00:11:22:33:44:55%ether1