• 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

  • 相关阅读:
    JSON,数组根据字段多次分组
    .net c#后台请求接口
    数组的高级应用含ES6 for of 用法
    js获取当前页面url网址信息
    资源管理神器Clover
    ES6的7个实用技巧
    单标签实现气泡三角形
    移动端--上拉加载更多
    checkbox对齐-复选框图标
    textarea显示源代码
  • 原文地址:https://www.cnblogs.com/mercurytan/p/14215163.html
Copyright © 2020-2023  润新知