06-ARP详解
一:ARP简介
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存
二:ARP工作原理
硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1;
协议类型:指明了发送方提供的高层协议类型,IP为0800(16进制)硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用
操作类型:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
发送方 MAC 地址:发送方设备的硬件地址。
发送方 IP 地址:发送方设备的 IP 地址。
目标 MAC 地址:接收方设备的硬件地址。
目标 IP 地址:接收方设备的IP地址
2)ARP协议的具体报文分析
ARP请求报文的格式

看到MAC帧的目的MAC为广播地址,源MAC为请求者的MAC地址,协议的类型是0x0806.
在ARP请求报文中,Hardware type 位0x0001位以太帧。Protocal type 为0x0800位i。 Hard size 为6字节 Protocal size 为4 字节。请求类型为 0x0001,为ARP请求报文。
源地址,源ip,目的ip如上所示,可以看见在请求报文中,目的MAC为空。
ARP的响应报文的格式

MAC帧的地址,变成了单播的地址。同样可以看到源MAC换成了刚才请求的ip的MAC,源ip为刚才请求的ip
目的ip,MAC为刚在请求者的ip和MAC。请求类型变成了0x0002,位ARP响应报文
三:ARP缓存表的作用
Arp代理的好处:
能够在不影响其他router的路由表的情况下在网络上添加一个新的router
Arp proxy的坏处:
1.增加了某一网段上ARP流量
2.主机需要更大的ARP table来处理IP地址到MAC地址的映射
3.安全问题,比如ARP欺骗
五:免费 ARP 包
免费 ARP(Gratuitous ARP)包是一种特殊的 ARP 请求,它并非期待得到 IP 对应的 MAC 地址,而是当主机启动的时候,发送一个 Gratuitous ARP 请求,即请求自己的 IP 地址的 MAC 地址。
本节将介绍免费 ARP 包的结构、作用,以及如何发送免费 ARP 包。
免费 ARP 包的结构
免费 ARP 报文与普通 ARP 请求报文的区别在于报文中的目标 IP 地址。普通 ARP 报文中的目标 IP 地址是其他主机的 IP 地址;而免费 ARP 的请求报文中,目标 IP 地址是自己的 IP 地址。
作用
- 免费 ARP 数据包有以下 3 个作用。
- 该类型报文起到一个宣告作用。它以广播的形式将数据包发送出去,不需要得到回应,只为了告诉其他计算机自己的 IP 地址和 MAC 地址。
- 可用于检测 IP 地址冲突。当一台主机发送了免费 ARP 请求报文后,如果收到了 ARP 响应报文,则说明网络内已经存在使用该 IP 地址的主机。
- 可用于更新其他主机的 ARP 缓存表。如果该主机更换了网卡,而其他主机的 ARP 缓存表仍然保留着原来的 MAC 地址。这时,可以发送免费的 ARP 数据包。其他主机收到该数据包后,将更新 ARP 缓存表,将原来的 MAC 地址替换为新的 MAC 地址

浙公网安备 33010602011771号