openwrt arp表刷新时间_ARP和RARP

ARP和RARP

17b580c6963062a711864e1ca3bbb290.png

ARP

ARP简介

     ARP地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。一般说以太网地址就是指MAC地址。

ARP报文格式

openwrt arp表刷新时间_ARP和RARP_第1张图片

  字段1是ARP请求的目的以太网地址,全1时代表广播地址。

  字段2是发送ARP请求的以太网地址。

  字段3以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806。

  字段4表示硬件地址的类型,硬件地址不只以太网一种,是以太网类型时此值为1。

  字段5表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。

  字段6和7表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。

  字段8是操作类型字段,值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。

  字段9是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。

  字段10是发送ARP请求或应答的IP地址。

  字段11和12是目的端的硬件地址和协议地址。

抓包分析

     下面是抓取的ARP数据包,可以对照上面的说明进行理解。

     图中红框圈起来的是一对ARP请求和ARP应答。

openwrt arp表刷新时间_ARP和RARP_第2张图片

ARP请求报文

openwrt arp表刷新时间_ARP和RARP_第3张图片

ARP应答报文

openwrt arp表刷新时间_ARP和RARP_第4张图片

ARP工作流程

     假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:

     (1) 主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

     (2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

     (3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

     (4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

openwrt arp表刷新时间_ARP和RARP_第5张图片

ARP表

     设备通过ARP解析到目的MAC地址后,将会在自己的ARP表中增加IP地址到MAC地址的映射表项,以用于后续到同一目的地报文的转发。

动态ARP表

     动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口down时会删除相应的动态ARP表项。

静态ARP表

     静态ARP表项通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。

配置静态ARP表项可以增加通信的安全性。静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间的正常通信。

17b580c6963062a711864e1ca3bbb290.png

RARP

RARP

     RARP分组的格式与ARP分组基本一致。RARP为逆地址解析协议,作用与ARP相反,用于将MAC地址转换为IP地址。

     具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址,但是无盘机,如X中断或无盘工作站,则需要采用其他方法来获得IP地址。

     总得说来就是,网络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的。无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求,请求某个主机响应该无盘系统的IP地址。

RARP的工作过程如下:

    网络上每台设备都会有一个独一无二的硬件地址,一般是由设备厂商分配的MAC地址。发送主机从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播数据包,请求任何收到此请求的RARP服务器分配一个IP地址;

    RARP服务器收到此请求后,检查其RARP表项,查找该MAC地址对应的IP地址;

    如果存在,RARP服务器就给发送主机回复一个响应数据包,并将此IP地址提供给对方主机使用;

    如果不存在,RARP服务器对此不做任何的响应;

    发送主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯,如果一直没有收到RARP服务器的响应消息,表示初始化失败。

     需要清楚,与ARP不同的是RARP是主机向RARP服务器获取自己的IP地址。

     RARP从概念上看起来比较简单,但实际上比较复杂,服务器一般要为多个主机提供硬件地址到IP地址的映射,该映射包含在一个磁盘文件中,而内核一般不读取和分析磁盘文件,所以RARP服务器的功能就需由用户进程来提供。更为复杂的是,RARP请求是作为一个特殊类型的以太网数据帧来传送的,其请求是在硬件层上进行广播的,不经过路由器进行转发。

     RARP协议是许多无盘系统在引导时用来获取IP地址的,一个RARP请求在网络上进行广播,它在分组中表明发送端的MAC地址,以请求相应IP地址的响应。另外RARP服务器的实现与系统相关。

     对应于ARP,RARP请求是以广播方式发送,而ARP,RARP应答则一般是单播传送的。

1

END

1

欢迎关注我们~

计算机网络翻转课堂

openwrt arp表刷新时间_ARP和RARP_第6张图片

你可能感兴趣的:(openwrt,arp表刷新时间)