一、概念
APR协议,全称Address resolution protocol,地址解析协议,属于TCP/IP协议簇中的网际层,但与MAC紧密相连,所以也有人说是属于2.5层。
二、目的
已知IP地址,获取其MAC地址。
三、原理
主机想要知道某个IP的MAC地址,查询自身ARP高速缓存表后,发现并没有,则构建一个ARP数据包(ARP请求),以广播的形式发送,广播域中,所有主机都能收到这个广播帧,非目的主机收到后,发现其IP地址与自身不匹配,则丢弃该帧,目的主机收到后,先将源主机MAC与IP的对应关系存入自身ARP高速缓存表中,之后构建一个单播的ARP帧(ARP响应),发送给源主机。
可以理解为,某个人站在广场,知道另一个人的名字但不知道地点,就大吼一声问“xxx你在哪儿”,这是ARP请求,另一个人大声回应“我在这儿”,这是ARP响应。
四、范围
ARP只能在同一广播域中,若要跨网络,目的主机会向网关进行ARP交互,网关又和下一个路由器进行ARP交互,直到找到目的主机。
五、报文格式
Hardware type 硬件类型(2字节):以太网是1;
Protocol type 协议类型(2字节):IP协议是0800;
Hardware size 硬件长度(1字节):MAC是6字节,所以这里一般是6;
Protocol size 协议长度(1字节):IP是4字节,所以这里一般是4;
Opcode 种类(2字节):1是请求,2是响应,3是RARP请求,4是RARP响应
Sender MAC address 源MAC(6字节):发送方MAC
Sender IP address 源IP(4字节):发送方IP;
Target MAC address 目的MAC(6字节):目的方MAC;
Target IP address 目的IP(4字节):目的方IP。
注:以上的MAC或者IP没有的话则是填0。
六、ARP Probe(ARP探针)
主要用于检测广播域中是否有与自己相同IP地址的主机,这时的发送发IP全部为0,是为了防止ARP污染广播域中其他主机的ARP池,具体流程会写在DHCP中。
七、ARP攻击
由于ARP是建立在网络中各个主机都互相信任的前提下,主机收到ARP应答时,不会检验其真实性,所以如果攻击方主机不断地朝着目的主机发送ARP应答,将目的主机ARP高速缓存表中网关MAC与IP的映射关系改变,则可能导致目标主机不能上网或是所发出、接收的流量会经过攻击方主机,造成极大的安全性问题。
八、ARP攻击的防御及解决办法
1、设置静态MAC对应表;
2、定期检查ARP响应的真实性;
3、若是已经中招,则清除ARP缓存,重新设立对应关系,或是切换网络。
<该文档为复习自用,如果能给你有什么启发,非常开心,如果能帮忙指出错误,万分感谢>