ARP协议

一、ARP介绍

1、什么是ARP

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。即ARP负责将IP地址解析成MAC地址

image-20201231105909662

​ 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址

2、ARP的特点

  • ARP 高速缓存: 每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

  • 广播方式: ARP请求MAC地址是通过广播的方式

  • 信任: ARP是建立在互相信任的基础上。所以当收到应答报文时,并不会校验真实性

二、ARP流程

1、相同网段

image-20201231105933667

如图:如果PC0想ping通PC1的地址,首先需要知道PC1的MAC地址。

1、PC0 首先检查自己的ARP高速缓存(ARP cache)中是否有 10.0.0.3的记录。如果有,那么直接返回对应的MAC地址

2、否则, PC0向同网段的其他主机发送广播,广播内容为:询问10.0.0.3地址对应的MAC地址

3、PC1,PC2,PC3收到广播后,检查是否与自己的ip地址匹配。如果不匹配,将丢掉ARP请求

4、PC1确定ip地址匹配后,就会将PC0的ip地址和MAC地址存到自己的缓存中

5、PC1向PC0返回自己的MAC地址

6、PC0收到PC1的消息后,PC0将PC1的ip地址和MAC地址映射更新到自己的缓存中。本地缓存是有生存时间的,生存时间结束后,就继续重复上面的步骤

7、PC1的MAC地址确定后,PC0就可以和PC1进行数据通信了

2、不同网段

image-20201231145322751

​ 如图:如果A想ping通B。步骤如下

1、主机A发送数据给主机B时,发现没有主机B的MAC地址。就会发送ARP查询报文:目标ip地址为192.168.3.2,请求路由器网关的MAC地址。以广播的形式发送

2、路由器收到广播后,查看目标ip地址是否吻合。如果吻合,那么就发送一个单播应答: 我是192.168.3.2 我的MAC地址为0800:0333:2222

3、主机A收到应答后,将网关的MAC地址当成192.168.4.2的MAC地址(跨网段通信,其他网段的ip地址都为网关的MAC地址)。然后将数据: 目标ip地址192.168.4.2 目标MAC地址0800.0333.2222 发送给网关 192.168.3.2

4、路由器收到数据包后,一看,目标ip地址不是自己的。就查看路由表,需要发给192.168.4.2。但是现在并没有该ip地址的MAC地址。所以路由器先发送广播,得到192.168.4.2的MAC地址

5、此时再将源MAC地址置为路由器自己的MAC地址,将目标MAC地址置位B的MAC地址。最终将数据发送给B

注意:

​ 1、以广播的形式ARP报文

​ 2、以单播的形式返回MAC地址

​ 3、数据只能发到网关,再通过网关转发(由路由器查询下一网段的MAC地址)

三、ARP MAC欺骗

​ 还是PC0请求PC1的流程。

​ 由于ARP是互相信任的,即PC0不会校验真实性,所以PC3也可以返回自己的MAC地址(说自己就是10.0.0.3)。这样就会覆盖M2成为目标MAC地址,那么之后当PC0和10.0.0.3通信时,数据都会流转到PC3

四、ARP欺骗 -- 应用举例

前提:当PC0~PC2需要上网的时候,需要获得路由器的MAC地址M1。

1、 P2P终结者

image-20201231110012087

​ 当PC3安装了P2P终结者,就可以在PC0解析路由器网关MAC地址时,PC3就会通过ARP欺骗告诉PC0,路由器的MAC地址是自己的MAC地址M2

​ 这样当PC0访问Internet时,所有的流量会先经过PC3

2、 网络执法官

image-20201231110032657

​ 当PC3安装网络执法官时,就会在PC0解析网关MAC地址时,PC3就会告诉PC0一个不存在的MAC地址M100

​ 当PC0访问Internet时,就会向M100发送数据帧,但是当交换机收到后查找发现M100并不存在,就会要求PC0重传,最终该数据帧就会被丢弃

五、ARP欺骗 -- 解决方案

  • 如何查看自己的机器是否存在ARP欺骗

    arp -a  ===》显示arp缓冲区的所有条目
    

image-20201231110125259

  • 方案:安装ARP防火墙

    在PC0中写死路由器网关的MAC地址,之后如果收到其他MAC地址也不覆盖该MAC地址,以防止ARP欺骗

参考链接:

https://blog.csdn.net/jazzsoldier/article/details/52635744


如果本篇博客有任何错误和建议,欢迎大佬们批评指正

我是知逆,我们下期见

Peace

posted @ 2020-12-31 11:05  知逆  阅读(408)  评论(0编辑  收藏  举报