4、ARP地址解析协议
ARP流程
在以太网(链路层)上,数据发送目的地是根据48位的MAC地址唯一确认的,内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。在得到下一跳IP后还需要获得目的IP的硬件地址。从逻辑Internet地址到对应的物理硬件地址需要进行翻译。这就是ARP的功能。
①ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机。这个过程称作广播,ARP请求数据帧中包含目的主机的IP地址。
②目的主机的ARP层收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的硬件地址。
③收到ARP应答后,使ARP进行请求—应答交换的IP数据报现在就可以传送了。发送IP数据报到目的主机。
ARP高速缓存
每个主机上都有一个ARP高速缓存,这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。
可以使用arp -a命令检查此缓存。
ARP的分组格式

以太网目的地址:全为1时表示广播地址
帧类型:表示后面数据的类型。对于ARP请求或应答来说,该字段的值为0x0806。
硬件类型:表示硬件地址的类型,值为1即表示以太网地址
协议类型:表示要映射的协议地址类型,值为0x0800即表示IP地址
硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4。
操作字段指出四种操作类型,它们是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)和RARP应答(值为4)。
举例
使用tcpdump捕获建立tcp连接是最开始的ARP请求、应答数据。
ARP代理
如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托 ARP或ARP代理(Proxy ARP)。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它。
免费ARP
指主机发送ARP查找自己的IP地址。通常,它发生在系统引导期间进行接口配置的时候。
免费ARP有两个作用:
①检测局域网内IP冲突,若发出去的ARP请求有应答,说明有冲突IP
②广播的ARP包含自己的IP+MAC地址,如果自己的网络接口硬件有过更新,则MAC地址会有变化,那么局域网中收到此ARP请求的主机都会更新ARP缓存中对应的IP-MAC项。
什么情况下触发ARP协议发送免费ARP?
局域网IP地址冲突时,地址修改或变更时,DHCP分发地址时,ARP缓存表清理时,网关冗余协议HSRP交互时,TFTP协议传输数据前
ARP命令

浙公网安备 33010602011771号