arp 和 arping 命令
arp 命令:
查看 arp 缓存:
arp [-vn] [-i if] [hostname]
-n:不解析ip地址为名称
-v:详细信息
-i:指定操作的接口
hostname:查看指定主机对应的 arp 缓存条目
删除 arp 缓存:
arp [-v] [-i if] -d hostname
-v:详细信息
-i:指定操作的接口
-d hostname:删除指定主机对应的 arp 缓存
arping 命令:
arping 用于发送 arp 请求报文,解析并获取目标地址的 MAC。默认将先发送广播报文,收到回复后再发送单播报文,局域网内所有主机都能收到广播报文,但只有目标主机才会回复自己的 MAC 地址
Note:
发送 arp 请求报文实际上是另类的 ping,所以可以探测目标是否存活,也需要和目标通信,通信时目标主机上也会缓存本主机(即源地址)的 arp 条目
语法:
arping [-fqbDU] [-c count] [-w timeout] [-I device] [-s source] destination
-f : 收到第一个 reply 就立即退出
-q : 安静模式,什么都不输出
-b : 只发送广播,不发送单播
-D : 地址冲突检测
-U : 主动更新邻居的 arp 缓存(Unsolicited ARP mode)
-c count : 发送多少个 arp 请求包后退出
-w timeout : 等待 reply 的超时时间
-I device : 使用哪个接口发送请求包。发送 arp 请求包接口的 MAC 地址将缓存在目标主机上
-s source : 指定 arp 请求报文中源地址,若发送的接口和源地址不同,则目标主机将缓存该地址和接口的 MAC 地
址,而非该源地址所在接口的 MAC 地址
destination : 向谁发送 arp 请求报文,即要获取该 IP 或主机名的 MAC 地址
例如:请求解析 192.168.93.2 主机的 MAC 地址
[root@web ~]# arping -f -I ens33 192.168.93.2
ARPING 192.168.93.2 from 192.168.93.130 ens33
Unicast reply from 192.168.93.2 [00:50:56:FE:B9:B2] 1.016ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
例如:指定发送一个请求报文给 192.168.93.160 就退出,发送报文的接口为 ens33,并指定请求报文中的源地址为本机 ens34
接口上的地址 192.168.93.131
[root@web ~]# arping -c 1 -I ens33 -s 192.168.93.131 192.168.93.160
发送这样的 arp 请求包,将会使得目标主机 192.168.93.160 缓存本机的 arp 条目为"192.168.93.131 MAC_ens33",但实际上,192.168.93.131 所在接口的 MAC 地址为 MAC_ens34
arping 命令仅能实现这种简单的 arp欺骗,更多的 arp欺骗方法可以使用专门的工具
例如:探测 192.168.93.160 主机是否存活
[root@web ~]# arping -c 4 -I ens33 192.168.93.160
ARPING 192.168.93.160 from 192.168.93.130 ens33
Unicast reply from 192.168.93.160 [00:0C:29:CE:9B:76] 1.513ms
Unicast reply from 192.168.93.160 [00:0C:29:CE:9B:76] 0.895ms
Unicast reply from 192.168.93.160 [00:0C:29:CE:9B:76] 0.806ms
Unicast reply from 192.168.93.160 [00:0C:29:CE:9B:76] 0.957ms
Sent 4 probes (1 broadcast(s))
Received 4 response(s)