网络协议分析-ARP与RARP
本文最后更新于:几秒前
ARP与RARP
ARP协议:
地址解析协议,实现从IP地址到MAC地址的映射,询问目标IP对应的MAC地址。
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地址返回给请求者。(善意的欺骗)
但是在实际网络中,无论是同网段还是跨网段,都是采用的正常的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重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。
步骤:
首先修改IP包的生存时间TTL为255 ,这样有利于做充足的广播。
利用可以自由制作各种包的工具(hping2)
使目标主机down掉
发送一个ARP相应包,进行ARP欺骗
现在每台主机都知道了新的IP/MAC对应关系,但是目前每台主机只会在局域网中查找这个地址,不会把数据包丢给路由
构造ICMP重定向数据包,将到达改地址的路径通告为路由。
以上只是理想情况下,实际上主机接受ICMP重定向报文有一下限制:
新路由必须是直达的
重定向包必须来自去往目标的当前路由
重定向包不能通知主机用自己做路由
被改变的路由必须是一条间接路由
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提供给对方主机使用。
▪ 如果不存在,则不做任何回应。
主要应用:
无盘工作站
图片侵删
文章有不正确之处,欢迎指出,谢谢