Linux --ARP的具体过程与ARP欺骗

在日常网络通信中,我们常常听到"IP地址"和"MAC地址"。IP地址负责在复杂的网络世界中寻找方向(逻辑地址),而MAC地址则是设备在局域网内真正的"身份证"(物理地址)。

那么,当我们知道对方的IP,却不知道对方的MAC时,该怎么办?这就轮到今天的主角------**ARP(地址解析协议)**出场了。

本文将从ARP的报文结构讲起,一步步拆解ARP的工作过程,最后揭秘网络安全中经典的"ARP欺骗"攻击。

ARP报文长什么样?

要理解ARP怎么工作,先得看看它的"身份证"。ARP报文是直接封装在以太网帧里发送的。

一个完整的以太网帧(包含ARP请求/应答)结构如下:

字段名称 长度(字节) 作用说明
以太网目的地址 6 接收方的MAC地址。如果是广播,则为 FF:FF:FF:FF:FF:FF
以太网源地址 6 发送方的MAC地址
帧类型 2 标识上层协议,ARP请求/应答为 0x0806(图中未明确标出,但隐含)
硬件类型 2 指链路层网络类型。1 表示以太网
协议类型 2 指要转换的地址类型。0x0800 表示IP地址
硬件地址长度 1 对于以太网MAC地址,长度为 6 字节
协议地址长度 1 对于IP地址,长度为 4 字节
op (操作码) 2 1 表示ARP请求,2 表示ARP应答
发送端以太网地址 6 发送方的MAC地址
发送端IP地址 4 发送方的IP地址
目的以太网地址 6 接收方的MAC地址(请求时通常填全0,因为还不知道)
目的IP地址 4 接收方的IP地址

重点提示 :注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现了一次。对于以太网来说,这确实是多余的;但如果底层不是以太网(比如其他类型的链路层网络),这种冗余设计就可能是必要的。

ARP的具体工作过程

网络拓扑:主机A、主机B、主机C、主机D、主机E通过交换机连接在同一个局域网内,而路由器R(网关)连接着外部网络。

现在,主机A需要发送数据给外部网络,它知道路由器的IP(ipR),但不知道路由器的MAC。接下来,一场生动的ARP寻址战开始了。

步骤一:发起ARP请求(大声呼喊)

  • 背景:主机A(IP: ipA, MAC: macA)想要把数据包发给路由器R(IP: ipR, MAC: macR)。主机A虽然知道ipR,但缓存表(ARP Cache)里没有对应的macR。

  • 动作 :主机A只能向局域网内广播发送一个ARP请求。

  • 报文内容 :这个请求的以太网目的地址是 FF:FF:FF:FF:FF:FF(所有人都能收到),ARP请求中写着:"我是ipA,我的MAC是macA,谁的IP是ipR?请把你的MAC地址告诉我!"

  • 思考:此时,局域网内的B、C、D、E、以及路由器R都收到了这个广播。但它们一看目的IP不是自己,就会默默丢弃这个包。

步骤二:ARP应答(双向奔赴,但暗藏危机)

  • 动作 :路由器R收到广播后,发现:"原来找的是我!"于是,路由器R不再广播,而是单播回复主机A。

  • 报文内容 :以太网目的地址填macA,ARP应答中写着:"我是ipR,我的MAC地址是macR。"

  • 缓存更新:

    • 主机A收到应答后,立刻将 ipR <-> macR 存入自己的ARP缓存表中。

    • 路由器R也"顺便"把主机A的 ipA <-> macA 存入了自己的缓存中。(因为它在请求包中提取到了A的信息)。

危机出现 :出现了一个神秘的黑客设备"主机M(mac addr: macM)"。在真实的网络环境中,M不仅是旁观者,它还可以伪装成上述过程的一部分。为了防止被踢下线,M开始不停地向网络中发送伪造的ARP应答("大量发送"),这就是我们后面要讲的ARP欺骗。

步骤三:致命伪装(ARP欺骗的诞生)

  • 动作 :主机M(黑客)开始分别向主机A和路由器R发送伪造的ARP应答(注意:ARP协议是无状态的,即使没有发起请求,设备也会接收应答)。

  • 对主机A的欺骗 :M对A说:"我是ipR(路由器),我的MAC地址是macM。"

    • 结果:主机A信以为真,更新了ARP缓存,将去往外部网络的数据全部发给了M。
  • 对路由器R的欺骗 :M对R说:"我是ipA(主机A),我的MAC地址是macM。"

    • 结果:路由器R也信以为真,更新了ARP缓存,将返回给主机A的数据全部发给了M。
  • 最终结果(成为中间人) :主机A和路由器R的流量现在全部流向了主机M。M可以查看、篡改甚至丢弃这些数据,或者只是把它们转发给对方以维持不断网,这就是经典的 ARP中间人攻击(MITM)。

为什么ARP这么容易被欺骗?

看完上述过程,你可能会问:为什么主机A和路由器R会轻易相信黑客M的话?

这源于ARP协议设计的三个"先天缺陷":

  1. 无状态:ARP协议不需要建立连接。设备收到一个ARP应答包,哪怕自己从来没发过请求,也会默认这是真的,并直接更新缓存。

  2. 无认证机制:ARP报文里没有密码,也没有数字签名。只要有人声称"我是XX IP",网络设备就无法验证真伪。

  3. 后发制人:ARP缓存的更新机制是"后来者居上"。即使主机A之前已经知道了路由器的真实MAC,只要黑客M紧接着发一个伪造的ARP应答,主机A就会立刻把假MAC覆盖掉真MAC。

如何防范ARP欺骗?

在现实的企业网络和个人网络中,我们可以采取以下措施:

  1. 静态ARP绑定:在关键设备(如服务器、网关)上,手动将IP和MAC地址绑定(写死在ARP表里),不接收动态更新。

  2. ARP防火墙:在个人电脑上安装安全软件(如360、火绒等),开启局域网防护。它们会监控网络中的ARP应答,拦截异常的欺骗包。

  3. 交换机端口安全 :在企业级交换机上配置端口安全策略,限制每个端口只能学习到特定数量的MAC地址,或者在接入层交换机上配置 DAI(动态ARP检测) 功能,拦截非法的ARP报文。

相关推荐
独孤九剑打醒他1 小时前
海思 Hi3798MV100 C 语言 DNS 广告过滤方案
运维·服务器
shiyi.十一1 小时前
【CISP教材】第8知识域:物理与网络通信安全
网络·信息安全·cisp
科创致远1 小时前
第一代 e+SOP 盒子配显示器实测:物美价廉的产线可视化方案
大数据·网络·人工智能·信息可视化·计算机外设·制造·精益工程
阿星_1 小时前
Linux Ubuntu 查看 SQLite 工具
linux·ubuntu·sqlite
企业数字化笔记1 小时前
AI视频怎么做超分辨率增强?逐帧处理、画幅控制与音画验收
网络·人工智能·音视频
国科安芯1 小时前
星载微控制器MCU功能安全与信息安全协同机制综述
网络·单片机·嵌入式硬件·安全·抗辐射
李&@杰1 小时前
交换机网络环路导致MAC漂移及业务中断故障处理
网络·华为
科技小E1 小时前
模型训完≠能用:深度学习推理工作站DLTM推理验证如何把住“最后一公里”质量关
服务器·深度学习·自动化
Lsetea2 小时前
OpenSSL的checkhost显示不匹配却退出0:名称检查与证书验收
linux·https·shell·ssl证书·openssl