当前位置: 首页 > news >正文

补—数据链路层

六、ARP协议

6.1 定义

ARP地址解析协议)是一个比较特殊的协议——它介于数据链路层和网络层之间,既不是纯粹的数据链路层协议,也不是纯粹的网络层协议。

ARP的作用:建立主机IP地址和MAC地址的映射关系

为什么需要ARP?

  • 网络通信时,源主机知道目的主机的IP地址和端口号,但不知道目的主机的硬件地址

  • 数据包是先被网卡硬件接收,再交给上层协议处理的

  • 因此,在通信之前,必须先获得目的主机的MAC地址

6.2 工作流程

可以概括为:广播请求,单播应答

具体步骤

1、主机A想和主机B通信,知道B的IP地址,但不知道B的MAC地址

2、主机A发送ARP请求包,以广播形式发送到整个局域网:

  • 以太网帧目的MAC填 FF:FF:FF:FF:FF:FF

  • ARP请求中包含:发送端IP、发送端MAC、目标IP、目标MAC

  • 请求内容:"IP地址是172.20.1.2的主机,你的MAC地址是多少?"

3、同一网段的所有主机都收到这个广播请求,但只有IP地址匹配的主机B会处理

4、主机B发送ARP应答包,以单播形式直接回给主机A:

  • 以太网帧目的MAC填主机A的MAC地址

  • ARP应答中包含:发送端IP、发送端MAC

  • 应答内容:"我就是172.20.1.2,我的MAC地址是08:00:20:74:CE:EC"

5、主机A收到应答后,就知道了主机B的MAC地址,可以正常通信了

6.3 缓存表

每次通信都发ARP请求?那也太低效了。实际上,每台主机都维护一个ARP缓存表,用来存放最近学到的IP-MAC映射关系。

查看ARP缓存表:

$ arp -a gateway (192.168.1.1) at 10:bd:18:08:af:62 [ether] on enp0s3 ? (192.168.1.107) at e4:f8:9c:be:af:41 [ether] on enp0s3

两个问题:

Q1:为什么要有缓存表?
如果每次通信都发ARP请求,网络上会充斥大量ARP广播,效率很低。有了缓存表,大部分通信直接查表就能拿到MAC地址,不需要每次都请求。

Q2:为什么表项要有过期时间而不是一直有效?
因为网络环境是动态的——主机可能更换网卡、可能更换IP地址、可能下线了。如果缓存永久有效,就会出现"IP还对应着旧MAC"的问题,导致通信失败。

6.4 数据报格式

ARP报文封装在以太网帧中传输,其格式如下:

各字段含义:

字段长度(字节)含义
硬件类型2链路层网络类型,1表示以太网
协议类型2要映射的协议地址类型,0x0800表示IP
硬件地址长度1硬件地址长度,以太网为6
协议地址长度1协议地址长度,IPv4为4
op2操作类型:1=ARP请求,2=ARP应答
发送端以太网地址6发送方MAC地址
发送端IP地址4发送方IP地址
目的以太网地址6目标MAC地址
目的IP地址4目标IP地址

注意到源MAC地址、目的MAC地址在以太网首部ARP请求/应答报文中各出现了一次。对于以太网来说确实有些冗余,但ARP协议设计时考虑了通用性——如果链路层不是以太网,而是其他类型的网络,这两份地址就不一定相同了。

6.5 在局域网中的完整过程

场景说明

  • 局域网中有多台主机(A、B、C、D、E)和一台路由器(网关)

  • 路由器连接外网和局域网

  • 路由器的接口有IP地址和MAC地址

  • 主机A想和外网通信,需要先把数据发给网关路由器,因此需要知道网关的MAC地址

  • 主机A发送ARP广播请求"谁是网关IP?请告诉我你的MAC地址"

  • 路由器收到后,以单播形式回复自己的MAC地址

  • 主机A学到网关的MAC后,就可以把发往外网的数据先封装到目的MAC为网关MAC的帧中,交给路由器转发


七、欺骗原理

7.1 本质

ARP协议设计时没有任何认证机制——主机收到ARP应答后,不管这个应答是不是自己请求的,都会直接用应答中的IP-MAC映射更新自己的ARP缓存表。

这就是ARP欺骗得以实现的根本原因:攻击者可以伪造ARP应答包,让目标主机的ARP缓存中写入错误的IP-MAC映射,从而把流量劫持到攻击者的机器上。

7.2 三步骤

步骤一:正常通信状态

正常情况

  • 主机A的ARP缓存中:网关IP→ 网关MAC

  • 网关R的ARP缓存中:主机A的IP→ 主机A的MAC

  • 主机A和网关之间正常通信,流量直接走网关

步骤二:攻击者发送伪造ARP应答

攻击者主机M开始行动:

  • 主机M向主机A大量发送伪造的ARP应答:"我是网关IP,我的MAC地址是macM"

  • 主机M同时向网关R大量发送伪造的ARP应答:"我是主机A的IP,我的MAC地址是macM"

  • 因为ARP没有认证,主机A和网关R都会更新自己的ARP缓存

  • 更新后:

    • 主机A认为:网关IP → macM

    • 网关R认为:主机A的IP → macM

步骤三:中间人攻击形成

此时,主机M就成了中间人

  • 主机A发往网关的数据 → 目的MAC是macM → 数据先到了主机M

  • 网关发往主机A的数据 → 目的MAC是macM → 数据也先到了主机M

  • 主机M可以选择转发数据,也可以选择不转发

  • 主机A和网关都以为在和对方直接通信,实际上所有流量都经过了攻击者

ARP欺骗的危害极大,攻击者可以:窃听敏感信息、篡改数据、植入恶意代码、进行DNS劫持等。这也是局域网安全中一个非常经典的攻击手段。

7.3 防御方案

针对ARP欺骗,常见的防御手段有以下几种:

方案一:静态ARP绑定

原理:手动在主机和网关设备上配置静态的IP-MAC映射,静态ARP表项不会被动态ARP应答更新。

配置示例

# 查看当前ARP表 $ arp -a # 添加静态ARP绑定(网关IP和网关MAC) $ arp -s 192.168.1.1 10:bd:18:08:af:62 # 删除静态ARP绑定 $ arp -d 192.168.1.1

优点:简单直接,效果可靠

缺点:大型网络中配置和维护成本高,设备更换网卡或IP时需要手动更新

适用场景:小型网络、关键服务器

方案二:交换机端口安全

原理:在交换机端口上配置允许接入的MAC地址数量,甚至绑定特定MAC地址,防止伪造MAC地址的设备通信。

配置示例

[Switch] interface GigabitEthernet 0/0/1 [Switch-GigabitEthernet0/0/1] port-security enable [Switch-GigabitEthernet0/0/1] port-security max-mac-num 1 [Switch-GigabitEthernet0/0/1] port-security protect-action restrict

适用场景:企业级网络,接入层交换机部署

方案三:DAI

原理:交换机结合DHCP Snooping绑定表,检查ARP报文中的源IP和源MAC是否匹配绑定表,不匹配则丢弃。

方案四:ARP防火墙软件

在主机上安装ARP防火墙,软件会主动检测ARP应答的合法性,拦截伪造的ARP包。

适用场景:个人用户、公共WiFi环境

各个方案对比
防御方案部署位置效果维护成本适用规模
静态ARP绑定主机+网关小型网络
端口安全接入交换机较好企业网络
DAI接入交换机企业网络
ARP防火墙终端主机一般个人用户
http://www.jsqmd.com/news/1388066/

相关文章:

  • Android 7系统无障碍服务(三)无障碍服务的注册与绑定
  • 13 - 《英伟达启示录》深度理解测试
  • 【C++】模板进阶:非类型模板参数与模板的特化
  • 国自然创新性不够?教你如何利用Gemini 3.5实现有价值的创新
  • 隐私匿名树洞真人横评 暖音回声稳坐高安全倾诉首选 - nuanyin
  • 高空外墙清洗机器人有哪些:【凌度智能】全场景覆盖 - 秋山寄远
  • 搭建本地数字员工,OpenClaw Windows 端完整实践记录(含安装包)
  • 答辩前知网AI率超标怎么办?比话三天送检紧急方案!
  • 鸿蒙系统录音转文字App有哪些?老牌软件与效率新秀实测对比
  • 昆明网站建设推荐q479185700上墙
  • S7-1500 PLC间数据通信:四种主流方案对比与实战配置详解
  • 2026年长春单招班推荐:高职单招备考选校全攻略 - 爱说大实话121
  • Ubuntu 18.04到22.04 LTS系统升级全攻略:从评估到故障排查
  • 2026深圳大件特殊物品搬运价格参考与靠谱服务商推荐:钢琴/红木家具/保险柜收费标准+正规搬家公司名单+避坑全攻略【最新版】 - 禧燕搬家
  • 2026年北京朝阳区保暖服饰源头工厂靠谱推荐:马员外服饰全产业链实力解析 - 子柔传媒
  • C/S与B/S架构深度解析:从原理到实战选型指南
  • 2026年宁波韩国留学中介哪家专业?韩国项目专业能力的5项核验标准 - 科技焦点
  • 高空外墙清洗机器人找哪家:【凌度智能】上门演示 - 松梢月冷
  • Ubuntu 22.04 下编译支持国密SSL与HTTP/2的定制化curl工具
  • Ubuntu 20.04显卡驱动配置全攻略:从原理到实战避坑指南
  • TikTok海外营销成本太高怎么办?品牌如何通过KOC矩阵降低CPM和CPE提升曝光效率
  • Spring AI Alibaba PromptTemplate:大语言模型应用中的提示词模板设计与工程实践
  • 深度解析上海华谊集团建设有限公司网站:揭秘基建背后的硬核实力与未来蓝图
  • Linux C编程时间获取全解析:从time()到clock_gettime()的实战指南
  • 2026年北京东城区保暖服饰源头工厂靠谱推荐:马员外服饰全产业链实力解析 - 企业新闻快传
  • 数学建模国赛论文Word模板:样式定义与自动化排版全攻略
  • C语言文件操作核心:从文本/二进制读写到高效I/O与错误处理
  • 2026年北京门头沟区保暖服饰源头工厂靠谱推荐:马员外服饰全产业链实力解析 - 企业新闻快传
  • 从本地到云端:AI应用迁移实战与避坑指南
  • Python 如何“变成”机器指令?从人的意图、AST、解释器到 CPU 与二进制