网络协议分析-ARP与RARP

本文最后更新于:几秒前

ARP与RARP

ARP协议:

地址解析协议,实现从IP地址到MAC地址的映射,询问目标IP对应的MAC地址。

ARP报文格式:

ARP报文格式

目的以太网地址全为1,即FF:FF:FF:FF:FF:FF,即在本地局域网内,所有的以太网接口接受这个数据帧。

帧类型:ARP是0x0806 RARP是0x8035

硬件类型与协议类型:以太网的值是1,IP协议的值是0806

硬件地址长度和协议地址长度:

硬件地址长度是48bit 代表MAC地址

协议地址长度是32bit 代表IP地址

操作码:

1=>ARP请求

2=>ARP应答

3=>RARP请求

4=>RARP应答

ARP发送时,只有目标硬件地址是空的,操作码为1,当目标主机收到ARP请求时,会把自己的MAC地址填写到这个字段,然后把操作码改为2,发送回去

代理ARP:

当ARP请求目标跨网段时,网关设备收到此ARP请求,会将自己的MAC地址返回给请求者。(善意的欺骗)

20430499-c0941e7f2fe6e061

但是在实际网络中,无论是同网段还是跨网段,都是采用的正常的ARP,而不是代理ARP。

代理ARP仅用于以下情景:当电脑没有网关/路由功能时,并且需要跨网段通信时。

ARP的捎带机制:

在请求其他主机物理地址时,把自己的IP/MAC映射一并写到请求报文中

免费ARP:

当主机启动时,发送一个Gratuitous arp 请求,来请求IP地址对应的MAC地址

​ 常用于双机热备系统,例如 Cisco的HSRP就采用了这种技术,虚拟出来的MAC地址是0000-0c07-ac+HSRP的group ID。同时VRRP也采用了这种技术。

​ 另一种应用是用来检测IP冲突。

ARP欺骗:

​ 由于ARP并没有做身份验证处理,所以可以采用伪造ARP_replay 数据包来修改IP与MAC地址的映射,从而达到自己的目的。

防范方法:

网关定时发送IP/MAC映射

静态ARP

DHCP snooping

操作:

同网段:

​ 可以直接修改ARP_replay 数据包

跨网段:

​ 采用ARP欺骗+ICMP重定向

​ ICMP重定向:ICMP重定向报文是ICMP控制报文中的一种,在特定情况下,路由器检测到一台机器使用非优化路由时,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。

步骤:

  1. 首先修改IP包的生存时间TTL为255 ,这样有利于做充足的广播。

  2. 利用可以自由制作各种包的工具(hping2)

  3. 使目标主机down掉

  4. 发送一个ARP相应包,进行ARP欺骗

  5. 现在每台主机都知道了新的IP/MAC对应关系,但是目前每台主机只会在局域网中查找这个地址,不会把数据包丢给路由

  6. 构造ICMP重定向数据包,将到达改地址的路径通告为路由。

以上只是理想情况下,实际上主机接受ICMP重定向报文有一下限制:

  1. 新路由必须是直达的

  2. 重定向包必须来自去往目标的当前路由

  3. 重定向包不能通知主机用自己做路由

  4. 被改变的路由必须是一条间接路由

ACD:

IP地址冲突检测

​ ACD 分为 ARP检测报文和ARP通知报文,ARP检测报文将发送端IP地址设置为0,防止检测是发生污染。ARP通知报文是GARP报文(免费ARP),向全网广播自己的物理地址。

​ 在刚收到IP分配后,会先向全网广播ACD探测报文,一般会有0-1s的延迟,如果经过三次ACD报文(每次间隔在1-2s之间) 没有相应的话,就开始发送通知报文。

RARP:

反向ARP,用MAC地址来请求IP地址。

工作原理:

​ ▪ 发送主机发送一个本地RARP广播,在这个广播包中,声明自己的MAC地址,并且请求任何收到此请求的RARP服务器分配一个IP地址。

​ ▪ 本地RARP服务器,收到此请求后,检查RARP列表,查找该MAC地址对应的IP地址。

​ ▪ 如果存在记录,RARP服务器就会给源主机发送一个响应数据包,并将此IP提供给对方主机使用。

​ ▪ 如果不存在,则不做任何回应。

主要应用:

​ 无盘工作站


图片侵删

文章有不正确之处,欢迎指出,谢谢


网络协议分析-ARP与RARP
https://blog.icansudo.top/2020/04/22/网络协议分析-ARP与RARP/
作者
odin
发布于
2020年4月22日
许可协议