七叶笔记 » golang编程 » 知识再学习:白话ARP地址解析协议,你不懂的这里都清楚

知识再学习:白话ARP地址解析协议,你不懂的这里都清楚

前言

很多新手在学习TCP/IP网络协议的时候都有一个问题:遇到一个协议就要对号入座,必须要搞清楚它是哪一层的,可结果是怎么都搞不清楚,为什么呢?

因为发明人都没定义清楚的东西我们是很难搞明白的!所以笔者觉得有必要先提个醒儿: 不要把TCP/IP网络体系比成OSI七层理论网络模型, 毕竟前者是拿来用的,后者只是看来学的!尽管理论比应用更明确, 但应用确实要比理论来的更有效、更实际

TCPIP网络协议层次

因此,我们在学习TCP/IP协议的时候没必要去纠结每个协议具体归属于哪一层, 只要搞懂原理,搞懂它是做什么的,这就够了 ,比如说,我们下面将要介绍的 ARP地址解析协议!

一、计算机间通信为什么需要IP与 MAC地址

■ 我们先来看一下计算机之间通信的简单示意图:

计算机间简易通信示意图

首先明确一点: 任何数据包要想到达目标网络设备,除了要有对方的 IP地址 之外还必须要知道目标网络设备的物理地址(为什么),又叫MAC地址或则网卡地址 !这就好比张三要把一份文件送给李总,但是公司有两个或多个李总,张三怎么知道该送给哪位李总呢?这就需要张三的记忆里保存这样一种信息:李总A长这样,李总B长那样…凭借这样的信息,张三就能把文件送到正确的李总手里而不出错!

送给哪位李总

理解上述比喻就很容易看懂IP与MAC了: IP地址就好比名字(李总A/李总B),MAC地址就好比长相,计算机之间通信需要结合目标设备的IP地址和MAC地址,其目的是为了防止把数据送错目的地了 ,但如此一来又引入了一个新的问题: 谁来负责将IP地址与设备的MAC地址对应起来呢?这就是ARP地址解析协议该做的事儿了!

二、谁负责从IP地址找到MAC地址?

计算机间通信时 为了确保数据准确送达目的地 ,必须要有一个“中间人”来将对方的“名字”(IP地址)与“长相”(MAC地址)对应起来方能避免送错, 这个“中间人”就是 ARP 地址解析协议! ARP地址解析协议的作用顾名思义就是用来解析地址的,具体就是将IP地址翻译为MAC地址!

ARP与RARP地址解析协议

为了让读者朋友能够深刻理解ARP的功能,我们再通过一个例子来说明:

李总要去办公室找张三,但李总不知道张三是谁,于是就到人力资源部找HR调出了张三的信息登记表,李总结合登记表上的照片才确认了下属张三的样子进而找到了他。

■ 在这个例子中,

  • 李总就相当于计算机A
  • 张三就相当于计算机B
  • 人力资源部就相当于路由器或者 交换机
  • 信息登记表就相当于路由器/交换机上的ARP缓存表,用于保存名字与照片信息
  • 表上的名字就相当于IP地址
  • 照片就好比MAC地址,

这么一来大家就好理解ARP地址解析协议的作用了: 当计算机A要发送数据到计算机B时,A在知道B的IP地址后会通过 ARP协议 到就近的路由器或者交换机上查询B的MAC地址,确认发送的目标机没有错,进而保证数据的准确传递。 我们来拓展看一下ARP缓存表的内容有哪些:

ARP/RARP缓存表/分组格式

从ARP缓存表我们又会发现一个新的问题:我们已经知道在路由器或者交换机上保存了ARP缓存表,但是ARP缓存表这些信息是怎么登记上去的呢?路由器怎么知道这台计算机IP地址对应的就是这个MAC地址呢?这就需要提到了解下面的ARP询问/回答机制了!

三、ARP询问/回答机制是怎样的?

正常情况下,一台计算机接入互联网,其IP地址和MAC地址的对应信息会被就近的路由器/交换机记录下来,可怎么记录的呢?这就是 ARP的询问/回答机制, 为了让大家理解更深刻,我们再来从一个例子看起:

公司招了一批新员工,在入职会上要进行信息登记,于是人力资源部的HR就照着名单喊人来交各自的照片,比如“张三呢?是谁张三?来叫照片”,那么叫到名字的新员工就要上台把自己的照片交给HR并贴在个人的信息登记表上,这样对每位员工,不管新人还是老人,人力资源部就会记录下其姓名与照片的对应关系。

姓名与照片绑定登记

■ 在这个例子中,

  • “人力资源部”就相当于路由器或者交换机
  • “喊人”就相当于路由器广播
  • “姓名”就相当于IP地址
  • “照片”就相当于MAC地址
  • “信息登记表”就相当于ARP缓存表,存在“人力资源部”

■ 这么一来大家就好理解ARP的询问/回答机制了,

  • 谁来问?由路由器/交换机 广播消息来问
  • 问什么?问每个IP地址的主机, 你的MAC地址是什么
  • 答什么?IP地址是你的,就由你 单独回答自己的MAC地址
  • 记录什么?记录主机回答给 路由器/交换机的MAC地址与IP地址
  • 记录格式是什么? 按照ARP缓存表的格式填写
  • 记在哪里? 记在路由器/交换机的ARP缓存区
  • 怎么维护? 长期不活跃的主机,路由器/交换机就会自动把其ARP表删除 ,类比公司开出长期旷工的员工,删除他们的信息表

大家仔细想一想, 这个ARP询问/回答机制是不是有漏洞 ?比如说人力资源部问的是张三是谁?结果张三不在,李四把自己的照片递上去了,这样信息登记表是不是就不对了?这就欺骗了公司!所以在ARP协议中又有一个知识点叫做 ARP欺骗!

四、ARP欺骗是什么?

接上面的例子:假如说人力资源部的信息登记表上的照片被人篡改了,也就是说叫名字是张三,但是照片不是张三,这就是欺骗,此时公司的很多福利就可能会被这个假冒张三的人冒领。

真假张三

那么类比到计算机上就是:由于ARP地址表被串改,计算机A原本想要发送给计算机B的数据报就会被转发到计算机C手里,这就会引发很多问题,如密码泄露,数据泄露等

除了APR欺骗问题之外,还有另外一种APR问题: ARP病毒 !下面我们进行详细解释!

五、ARP病毒

ARP病毒并不是我们通常所指的某一种计算机病毒,它是对利用ARP协议漏洞进行攻击的一类病毒的总称。 前文中我们已经明确说明了ARP协议的作用:将网络IP地址翻译成物理地址(又称MAC地址), 如果这个路由器或者网关的物理地址被修改了就会出现ARP病毒的问题。 接上面的例子,我们来解说ARP病毒:

假设公司只有一个出口刷卡出入,员工X为了复制更多员工的门禁卡行不法之事,在出口的闸机上私自换上了复制门禁卡信息的复制工具,结果导致每个员工出门都要刷两次卡,第一次刷卡信息被员工X安装的工具收集所以无法开门,第二次工具才被公司的闸机识别从而放行员工!

员工X相当于ARP病毒

■ 在这个例子中,

  • “ARP病毒”就相当于员工X
  • “复制工具”就相当于伪造的网关/路由器MAC地址
  • “公司闸机”就相当于真网关/路由器的MAC地址

■ 这么一来大家就好理解ARP病毒了,下面以局域网中真实存在的ARP病毒来进一步说明:

假设局域网中有一台带有ARP病毒的计算机,如窃取信息的木马,当这台电脑开机运行该木马程序时,将以伪造的网关物理地址持续向局域网中的其他主机发送ARP欺骗 报文 来欺骗主机,目的是引导局域网中的这些主机通过病毒主机访问互联网,这样局域网中所有的主机发送的数据报文就会被截获,导致用户信息泄露,如账号信息,密码信息,银行信息等,最经典的案例就是用户通过病毒主机登录游戏服务器后,病毒主机伪造断线欺骗用户主机,此时用户就得重新输入用户名与密码再次登录游戏服务器,这样病毒主机就可以截获账号信息实施盗号行为!

局域网ARP病毒示意图

但假网关向真网关切换的过程会使所有通过该病毒主机的其他机器断线,如果病毒主机临时关机或离线,那么其他主机将会重新搜索真网关导致再一次断线,所以ARP病毒在局域网中造成的最明显问题就是用户主机频繁断线,严重时还有可能导致整个网络瘫痪,所以安装杀毒软件还是非常有必要的!

计算机有必要安装杀毒软件

结语

本文以通俗易懂的语言详细地阐述了ARP地址解析协议的功能、ARP询问/回答机制、APR欺骗以及ARP病毒,为加深读者理解,对每一项内容都用生活中的对应案例做了直白的比拟,希望有助于广大读者朋友的学习、工作!

声明: 《知识再学习,岂能不简单:土话版ARP地址解析协议》为猴哥技术站原创,未经授权的转载必追究版权责任,望广大网友尊重原作者劳动!

原创声明

相关文章