3-L2-传统MAC泛洪简单介绍-day09
⚠️ 免责声明
本文旨在教学网络安全原理与技术,帮助读者理解网络设备工作原理及潜在安全风险。文中提及的攻击技术仅用于教育目的,旨在提高安全防范意识。
请勿将本文内容用于任何非法活动或攻击他人网络。未经授权对他人网络进行扫描、监听、攻击等行为均属违法,将承担相应法律责任。读者因不当使用本文技术造成的一切后果自负,作者及平台不承担任何责任。
网络安全从业者应遵守法律法规,将技术用于正当防御与安全建设。
目录导航
一、原理
以太网设计之初有个核心假设:“能插上网线的都是自己人”。因此,二层协议默认不认证通信对象,交换机对收到的帧“照单全收”
MAC泛洪攻击:交换机信任所有帧的来源,记录其MAC地址等对应关系,MAC地址表(CAM表)被填满,退化为“集线器”,之后遇到的帧全部广播发送
二、MAC表(CAM表)是什么?
MAC表(Content Addressable Memory,内容可寻址存储器)是交换机的“导航地图”,用于记录 MAC地址→端口+VLAN 的映射关系
| MAC表核心字段 | 作用 |
|---|---|
| VLAN ID | 标识MAC地址所属的广播域(如VLAN 10),隔离不同VLAN的流量 |
| MAC地址 | 设备的物理地址(如00:1A:2B:3C:4D:5E),全球唯一 |
| 端口号 | MAC地址对应的物理接口(如GigabitEthernet0/1) |
| 老化时间 | 表项存活时间(默认300秒),超时未收到该MAC的帧则自动删除,释放空间 |
工作逻辑:
交换机收到数据帧后,先提取源MAC地址,记录“源MAC→入端口→VLAN”并存入MAC表(动态学习);再根据目标MAC地址查表,若找到则精准转发到对应端口,若找不到则触发“泛洪”(广播到同VLAN所有端口)。
三、不同场景下的通信流程(以主机A、B,交换机C,网关G为例)
为清晰展示流量传递,我们定义基础环境:
-
同网段(同VLAN 10):A(
192.168.1.10,MAC_A)、B(192.168.1.20,MAC_B),均接交换机C的端口1、2,VLAN 10。 -
跨网段(不同VLAN):A(VLAN 10)、B(
192.168.2.20,MAC_B,VLAN 20),网关G(192.168.1.1,MAC_G,接交换机C端口24,Trunk口允许VLAN 10/20)。
1. 同网段通信(A→B,无需网关)
交换机作为中转站
| 步骤 | 传递内容 | 传递给谁 | 传递范围(VLAN 10内) |
|---|---|---|---|
| ① A判断B同网段,需获取B的MAC | ARP广播请求:“谁是192.168.1.20?告诉192.168.1.10” | A先给交换机,交换机帮忙广播(目标MAC=FF:FF:FF:FF:FF:FF) | 交换机C泛洪到端口2-10(同VLAN所有端口) |
| ② B收到广播,单播回复 | ARP应答:“我是192.168.1.20,MAC是MAC_B” | B先给交换机,交换机再给A(目标MAC=MAC_A) | 交换机C查MAC表,精准转发到端口1(A所在端口) |
| ③ A缓存ARP表,发送业务数据 | 数据帧(源MAC=MAC_A,目标MAC=MAC_B) | A先给交换机,交换机再给B(目标MAC=MAC_B) | 交换机C查MAC表,精准转发到端口2(B所在端口) |
2. 跨网段通信(A→B,需网关G)
| 步骤 | 传递内容 | 传递给谁 | 传递范围 |
|---|---|---|---|
| ① A判断B不同网段,需先找网关G | ARP广播请求:“谁是192.168.1.1(网关)?” | 广播(VLAN 10内) | 交换机C泛洪到VLAN 10所有端口(含网关G所在端口24) |
| ② 网关G单播回复 | ARP应答:“我是192.168.1.1,MAC是MAC_G” | 仅A(目标MAC=MAC_A) | 交换机C精准转发到端口1 |
| ③ A发送数据给网关G | 数据帧(源MAC=MAC_A,目标MAC=MAC_G;IP头:源IP=A,目标IP=B) | 仅网关G(目标MAC=MAC_G) | 交换机C精准转发到端口24(网关口) |
| ④ 网关G路由转发(跨VLAN) | 网关G查路由表,在VLAN 20内ARP请求B的MAC,得到MAC_B后重新封装帧:(源MAC=MAC_G_VLAN20,目标MAC=MAC_B;IP头不变) | 仅B(目标MAC=MAC_B) | 交换机C在VLAN 20内精准转发到B所在端口 |
四、MAC泛洪攻击方式
攻击者利用交换机MAC表的“动态学习+容量有限”缺陷,按以下步骤实施攻击:
-
填满MAC表–就是泛洪:
攻击者使用工具(如
macof)生成海量随机源MAC地址的数据帧(每秒数千个),从攻击端口(如端口3)发送给交换机C。交换机C“忠实”地学习这些伪造MAC,一条条存入MAC表,直至表空间耗尽(普通接入交换机MAC表容量通常为8K-16K条) -
触发Fail-Open机制:
MAC表满后,交换机收到新的合法数据帧(如A→B的帧)时,无法查到目标MAC(MAC_B)的端口,被迫触发Fail-Open(故障开放)机制——将帧广播到同VLAN所有端口(类似集线器行为)
-
被动窃听流量:
攻击者作为同VLAN内的一个端口(端口3),会收到所有被广播的帧。由于同VLAN内A→B的业务数据、A→网关G的控制数据均以明文或半明文传输(如HTTP、FTP、Telnet),攻击者可从中提取账号密码、文件内容等敏感信息
-
通信“正常”假象:
目标主机B仍会正常收到广播的帧并返回应答,网关G也会正常处理跨网段流量——通信双方完全感知不到攻击存在,因为数据最终仍能送达,仅多了“攻击者旁听”这一隐藏环节
⚠️ 再次提醒
本文内容仅供学习研究使用,请严格遵守《中华人民共和国网络安全法》及相关法律法规。任何未经授权的网络攻击行为都是违法的,将面临法律制裁。
学习网络安全技术的正确方式是:在授权环境(如自己的实验网络、CTF靶场、授权测试环境)中实践,提升防御能力,保护网络系统安全。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)