目录
1 Arp协议定义和作用:
2 Arp消息的结构:
3 Arp请求帧格式
4 Arp应答帧格式
5 Arp请求的种类:
5.1.二层广播arp请求
5.2 单播arp请求消息
5.3 Ip冲突探查arp请求
5.4免费arp宣告使用此ip地址
有图片,看不清的话,请调整浏览器显示比例为200%或者单击图片进行单独查看。
1 Arp协议定义和作用:
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;
发出的条件,是根据路由表,目的ip是直连路由的,才会用子网ip作为源ip发出arp请求消息。
如一个设备192.168.209.201要去ping192.168.209.141
查看路由表,符合直连路由表项
arp -a查询发现,命令执行后有新的arp表项生成,获得了对应ip的mac地址
抓包显示如下:
2 Arp消息的结构:
以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全 1的特殊地址是
广播地址。
两个字节长的以太网帧类型表示后面数据的类型。对于 A R P请求或应答来说,该字段的
值为0 x 0 8 0 6。
硬件类型字段表示硬件地址的类型。它的值为 1即表示以太网地址。协议类型字段表示要
映射的协议地址类型。它的值为 0 x 0 8 0 0即表示I P地址。它的值与包含 I P数据报的以太网数据帧中的类型字段的值相同,这是有意设计的。
接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址
的长度,以字节为单位。对于以太网上 I P地址的A R P请求或应答来说,它们的值分别为6和4。
操作字段指出四种操作类型,它们是 A R P请求(值为1)、A R P应答(值为2)、R A R P请求(值为3)和R A R P应答(值为4)(我们在第5章讨论R A R P)。这个字段必需的,因为A R P请求和A R P应答的帧类型字段值是相同的。
接下来的四个字段是发送端的硬件地址(在本例中是以太网地址)、发送端的协议地址
(I P地址)、目的端的硬件地址和目的端的协议地址。
3 Arp请求帧格式
4 Arp应答帧格式
5 Arp请求的种类:
- 广播arp请求
- 单播arp请求
- Ip冲突探查arp请求
- 免费宣告arp请求
5.1.二层广播arp请求
应用场景:访问同网段ip,arp缓存里没有对应表项,就会发出二层广播arp消息,如
特点:arp请求消息体里,目的mac地址为空,全00,待目的设备填入自身值。
有对应的响应消息。二层目的mac为6个ff广播消息。
应答消息为单播,源ip和源mac为请求的目的设备。
5.2 单播arp请求消息
应用场景:
在arp缓存已有的对应表项,为检测对方是否在线,发出的单播arp探查消息
目的:
Unicast Poll -- Actively poll the remote host by
periodically sending a point-to-point ARP Request o it, and delete the entry if no ARP Reply is received from N successive polls. Again, the timeout should be on the order of a minute, and typically N is 2。
当arp广播请求过程完成(其实就是主机收到了设备的ARP应答),双方都知道对方的IP--MAC映射,也会在自己的ARP表中生成这个映射;由于ARP老化机制第二种--单播轮询,主机会定期向设备发送点到点的单播ARP请求报文,用来确认对方是否存在,确认这条ARP缓存是该更新(主要是更新老化定时器)还是删除,同时,使用单播还可以减少网络中的ARP报文数量。
如下图:
Arp的缓存表现如下:
下图arp单播请求,隔一段时间发出,在广播消息后,不间断发出。
应答消息为单播消息
5.3 Ip冲突探查arp请求
应用场景,插拔网线,网卡激活或者dhcp获取ip后发出,用于探查广播域里是否有ip冲突的现象。一般发出三次(没冲突的情况下)。
特征:二层广播消息,arp消息体里,源ip和目的mac为空,全0。间隔1秒发三次。
修改ip为dhcp自动获取,发现获取地址后,有arp探查消息发出,获取地址为192.168.209.139
发出三次arp探查消息。
Ip冲突时,arp探查发出一次,有响应,就不用此地址,静态的话,会提示ip冲突,地址变成169.254.xx.xx。
如图:已知环境里存在ip为192.168.209.141,就把pc 的ip修改为209.141,看看抓包结果
流程:修改ip后,发出arp探查,第一次就有响应,然后报ip冲突,使用本地链路地址169.254.240.20,同样三次探查消息发出,并用此ip请求网关mac地址,网关不处理此类地址的请求,所以不停发出arp消息。
因为无法获得网关mac地址,所以无法上网。
5.4免费arp宣告使用此ip地址
应用场景:在插拔网线或者dhcp获取地址后,arp探查没有ip冲突,宣告
特征:二层广播消息,源目的ip相同,目的mac地址为空。