ARP级ping命令:arping
Posted 思却
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARP级ping命令:arping相关的知识,希望对你有一定的参考价值。
一.工作原理
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议,是网络链路层的协议,在局域网中使用。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
ARP的工作过程:
主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查
二.命令格式
arping [-AbDfhqUV] [-c count] [-w deadline] [-s source] [-I interface] destination
三.常用参数
-A #和U参数作用相同,不过发送的是ARP应答包 -b #保持广播状态(收到arp应答之后会切换成单一传播模式) -c count #发送指定数量的ARP请求包 -D #冲突检测模式,如果返回为空,则代表该ip没有被占用 -f #当收到确认主机存活的第一个数据包时,停止发送 -I interface #指定发送ARP数据包使用的网卡设备 -h #打印帮助并退出 -q #不显示警告信息
-s source #设置源ip地址,DAD模式下为0.0.0.0,主动模式下为自己设定的ip地址,不设置则为本机实际ip地址 -U #主动发送ARP请求来更新其他主机的ARP缓存 -V #打印版本信息并退出 -w deadline #设置超时时间,
四.实践
打开虚拟机,设置仅主机模式,将虚拟机和本机设置在同一网段,本实验中物理机ip为192.168.56.1,MAC为0a:00:27:00:00:00;虚拟机ip为192.168.56.101,MAC为08:00:27:ed:95:88
1.先用虚拟机广播发送发送arp请求包
可以看到虚拟机收到了物理机arp应答包,且物理
同时查看物理机的ARP缓存
# arp -i vboxnet0 -a
? (192.168.56.101) at 08:00:27:ed:95:88 [ether] on vboxnet0
与实际相符
2.冲突检测模式
使用物理机进行冲突检测,冲突检测目的ip为虚拟机ip
# arping -D -I vboxnet0 192.168.56.101
ARPING 192.168.56.101 from 0.0.0.0 vboxnet0
Unicast reply from 192.168.56.101 [08:00:27:ED:95:88] 0.890ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
# arping -D -I vboxnet0 -w 3 192.168.56.10
ARPING 192.168.56.10 from 0.0.0.0 vboxnet0
Sent 4 probes (4 broadcast(s))
Received 0 response(s)
可以看到第一个arping有返回值,说明192.168.56.101已经被占用了;而第二个arping没有返回,说明该ip可用
以上是关于ARP级ping命令:arping的主要内容,如果未能解决你的问题,请参考以下文章
Linux--网络命令/常用命令--ping/netstat/ifconfig/iptables/arp/tracepath/traceroute/tracert/route/nbstat/tftp(