arping命令
是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包检查局域网内所有设备的硬件地址。
arping 命令的参数选项及说明
-c <次数> 发送指定次数的arp报文后退出命令
-f 当收到第一个应答报文时,立即退出命令。此选项用于判断目标主机是否存在或者正常运行
-I 网络接口 指定网络接口发送arp报文
-w <截止时间> 设置命令的执行裁止时间
-s source 设定arping发送的arp数据包中的源地址
测试目的主机是否存活
[root@cs6 ~]# arping -f 10.0.0.1 #<==使用-f选项收到第一个响应时就退出,用于检测目的主机是否存活。 ARPING 10.0.0.1 from 10.0.0.100 eth0 #<==从10.0.0.100的eth0网卡向10,0.0.1发送arp报文。 Unicast reply from 10.0.0.1 [00:50:56:C0:00:08] 0.595ms <==从10.0.0.1单播回复它的MAC地址,并且显示时是 Sent 1 probes (1 broadcast(s)) #<=发送1个广播包 Received 1 response(s) [root@cs6 ~]# arping -f 10.0.0.11 #<==没有运行的主机不会响应,命令一直等待,直到Ctr1+C终止。 ARPING 10.0.0.11 from 10.0.0.100 eth0 ^CSent 5 probes (5 broadcast(s)) Received 0 response(s)
Linux 负载均衡器宕机切换时arp缓存导致故障案例
当Linux负载均衡器发生宕机故障,我们使用备用的设备接管时,因为所有用户以及客户端的arp缓存里对应的仍然是宕机时的负载均衡器的IP,因此,切换完新负载均衡器之后,短时间内用户访问可能依然不正常,此时就需要执行arping命令,让所有的客户端缓存失效,这也是高可用软件的做法:
[root@cs6 ~]# arping -c 1 -I eth0 -s 10.0.0.5 10.0.0.2 #<==这里的10.0.0.5是VIP地址,10.0.0.2是上网网关。