Arping 命令详解
通知网关刷新ARP缓存
经常会有在线更换Linux服务器IP的操作,该操作带来的一个问题是: 我们已经执行了修改IP的操作,但由于网络上(网关)的ARP缓存暂未更新,导致在某一段时间内,该服务器会有网络不通的情况存在。
因此,我们需要在变更IP的同时,通知网关刷新ARP缓存。
- 首先清除本地ARP缓存:
/bin/ip neigh flush dev eth0
- 其次向网关发送本机的ip/mac地址
/usr/sbin/arping -v -c 2 -S 1.1.1.144 -s 00:17:a4:8d:0e:98 -p 1.1.1.1
1.1.1.144 为本机IP
00:17:a4:8d:0e:98 为本机MAC地址
1.1.1.1 为网关
arping 命令:
说明:arping是用于发送arp请求到一个相邻主机的工具;
arping使用arp数据包,通过ping命令检查设备上的硬件地址。
语法:arping [-bqfDUAV] [-ccount] [-w timeout] [-I device] [-s source] destination
参数:
-b 用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast(单播)地址。
-q quiet output 不显示任何信息;
-f 表示在收到第一个响应包后就退出;
-D 重复地址检测模式(不常用)
-U 主动的ARP模式,主动更新邻居的ARP caches,与 –s 配合使用
-A ARP回复模式,与-U选项类似,但是发送的是ARP 回复报文,而不是ARP请求报文,与–s 配合使用
-V 显示版本信息
-c count表示发送指定数量的 ARP 请求数据包后就停止。如果制定了deadline选项,则arping会等待相同数量的arp响应包,直到超时为止;
-w timeout设定一个超时时间,单位是秒。如果到了指定时间,arping 还没有完全收到响应则退出;
-I interface设置ping使用的网络接口;
-s source设定 arping发送的 arp数据包中的 SPA字段的值。如果为空,则按下面处理
如果是 DAD模式(冲突地址探测),则设置为 0.0.0.0;
如果是 Unsolicited ARP模式(Gratutious ARP)则设置为目标地址;--即设置了-A/-U参数
否则从路由表得出;
destination设置目标地址。
使用示例:
发送ARP请求
//向指定IP发送ARP请求arping 192.168.0.1
示例一、arping -c 5 -I eth0 -s VIP GATEWAY
示例二、arping -Uq -I enp4s0 -s 10.100.2.249 10.100.2.254
通过enp4s0网卡,向10.100.2.254请求10.100.2.249是否可用,并广播通知其他机器(抢占10.100.2.249这个IP)
示例三、arping -c 4 -A -I eth1 192.168.2.119
示例四、-A和-U参数的使用区别
arping -c 4 -U -I eth1 -s 192.168.90.99 192.168.90.96
ARPING 192.168.90.96 from 192.168.90.99 eth1
Unicast reply from 192.168.90.96 [00:21:F6:00:00:3B] 0.981ms
Unicast reply from 192.168.90.96 [00:21:F6:00:00:3B] 0.739ms
-U参数有回复包,第一次使用广播,然后就使用单播Unicast。arping -c 4 -A -I eth1 -s 192.168.90.99 192.168.90.96
ARPING 192.168.90.96 from 192.168.90.99 eth1
Sent 4 probes (4 broadcast(s))
Received 0 response(s)
-A参数没有回复包。
示例四中的192.168.90.99和192.168.90.96在一个局域网中(即一个Vlan,都是90网段),如果跨Vlan,那么这个命令执行的时候不是有效的,返回结果如下:
arping -c 4 -U -I eth1 -s 192.168.1.248
arping: Weird MAC addr 192.168.1.248
这个时候需要Telnet登录到交换机,进行清除cache操作。如下:
在交换机上查看某个IP对应的MAC
show arp | in 192.168.1.248
清除交换机缓存
clear arp-cache
show arp | in 192.168.1.248