交换机怎么审计MAC地址?

一、交换机“学 MAC”是怎么回事?

交换机的核心任务是根据 MAC 地址表(又叫转发表) 来进行转发决策。

交换机怎么审计MAC地址?

正常情况下的学习过程如下:

  1. 交换机收到一帧二层数据包
  2. 查看帧头部的源 MAC 地址
  3. 把这个 MAC 与进入的接口绑定,记录进表项(如:MAC A 来自 Gig0/0/1)
  4. 下一次要发给 MAC A 的帧,就直接从 Gig0/0/1 发出去

这个过程称为 MAC地址学习,是交换机转发的基础。

二、如果学不到 MAC 地址,会发生什么?

当交换机没有目标 MAC 的转发表项,它就只能选择:

广播或泛洪(Flooding)!

交换机怎么审计MAC地址?

也就是说:

  • 发往未知 MAC 的帧,会被转发到除了入端口之外的所有端口
  • 这在少量数据包时没问题,但一旦这种“未知帧”多了,就会造成广播泛滥

更严重时,某些错误拓扑或配置还会导致这些帧循环在网络中 —— 广播风暴正式形成。

三、什么是广播风暴?

广播风暴(Broadcast Storm) 就是指大量的广播帧(或泛洪帧)在网络中不断循环、放大、堆积,最终拖垮整个局域网的现象。

特征:

  • 所有端口指示灯疯狂闪烁
  • Ping 抖动、丢包严重
  • 网速缓慢或中断
  • 接入设备频繁掉线
  • ARP 表疯狂刷新

根源:

网络中存在环路 + 没有防环机制(如 STP) + 未知 MAC 引发泛洪

四、哪些场景会导致学不到 MAC 地址?

  1. 双工/速率不匹配接口协商异常,导致数据无法正常识别或学习。
  2. MAC 地址冲突网络中有多个设备使用相同 MAC,交换机记录混乱。
  3. 配置了“静态 MAC”但不准锁死 MAC 到错误端口,结果学不到真实来源。
  4. 交换机缓存溢出网络中 MAC 数量太多,超出设备容量,无法学习新地址。
  5. 环路存在且 STP 没启用广播帧循环转发,导致地址学不到、表项刷不完。
  6. 非法设备接入网络(仿冒网关、MAC泛洪攻击)

五、如何防止 MAC 学不到 + 广播风暴?

1. 启用 STP(生成树协议

防止环路,核心防风暴机制

# 华为示例
interface GigabitEthernet0/0/1
stp enable

2. 配置接口限速 / storm control(风暴控制

storm-control broadcast threshold 100 80

防止广播帧流量超限直接拖死全网。

3. 设置 MAC 限制和静态绑定

mac-limit maximum 50
mac-address static XXXX-XXXX-XXXX interface Gig0/0/1 vlan 10

对关键设备做绑定,防止泛洪

4. 定期清理 ARP/MAC 缓存

防止缓存异常或溢出导致学习失败。

5. 使用 DHCP snooping + 动态 ARP 检测

防止伪造报文引发 MAC 学习混乱。

最后总结一句话

交换机学不到 MAC,不是“不学无术”,而是很可能配置有问题或网络出了环路。

只要你发现:

  • 设备能 ping 网关但局域网互访慢
  • ARP 表刷得飞快,设备频繁掉线
  • 不通的设备一换口就好

那真的要小心了,可能就是 MAC 表学不到+广播风暴起飞,早点处理,不然全网陪葬。

原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

更多回答

创作声明:内容包含虚构创作

CCIE学习笔记——CCIE实验笔记——HCIE学习笔记——HCIE实验笔记——H3CIE学习笔记——H3CIE实验笔记——CCIE安全——CCIE数通——CCIE数据中心——HCIE安全——HCIE数通——HCIE数据中心——H3CIE安全——H3CIE数通——H3CIE数据中心


1、端口安全防止MAC层攻击

端口安全——可限制接口MAC学习数量。假如,只限制接口可以学2个MAC,当有第3个MAC出现时,交换机就不学习,可以防范泛洪攻击。

端口安全——可在接口上静态绑定MAC地址,只有从绑定的接口进来的才被接收,从其他非绑定接口进来的不接收。防止MAC地址欺骗攻击


2、配置端口安全

Int f0/1

Switchport mode access #启用端口安全,必须先设为access接口#

Switchport port-security #启用端口安全,默认只能学习一个MAC#

Switchport port-security maximum 5 #指定最多允许学习多少个MAC地址#

Switchport port-security mac-address aaaa.bbbb.cccc #绑定静态MAC#

Switchport port-security violation [protext | restrict | shutdown ] #指定行为#

Shutdown关闭——当收到违规流量,接口进入err-disable。默认处理方式就是shutdown

Protect保护——当收到违规流量,接口直接丢弃数据。

Restrict限制——当收到违规流量,接口就会扔掉数据,同时进行计数,扔掉了几个包。

什么叫违规流量,比如端口限制1个MAC,第二个MAC就是违规流量。

Switchport port-security aging time 1 #设定多长时间后重新学习MAC地址。默认是0,不会重新学习的#

上面的 time 1表示——当第一个MAC地址,1分钟没有流量过来,就重新学习MAC地址了。

Switchport port-security mac-address sticky #永久性的把MAC地址记录下来#。该命令会把MAC固定绑定。交换机接IP电话的时候都会用到这个命令.


3、实验拓扑

交换机怎么审计MAC地址?

4、实验操作与验证

配置

R1:

int e0/0

no shutdown

SW1:

在E0/0上,启用端口安全,绑定一个MAC,000c.0012.3456。

interface Ethernet0/0

shutdown

switchport mode access

switchport port-security mac-address 000c.0012.3456

switchport port-security

Switchport port-security violation shutdown #这是一条默认命令,show是看不到的#

no shutdown


验证

交换机怎么审计MAC地址?

E0/0上绑定了一个静态MAC,并且在E0/0上启用了端口安全,默认的命令会生效,,所以当有违规流量进来时,直接err-disable了。

SW1:

show int e0/0,显示err-disable。虽然显示down,其实并不是我们理解的那种down,去R1的E0/0端口看一下。

交换机怎么审计MAC地址?

R1:

show int e0/0 所以一定要理解err-diable和down完全不一样,只是呈现的效果一样而已。

交换机怎么审计MAC地址?

恢复err-disable的端口

恢复E0/0,先要no 掉 端口安全后,执行shutdown,再执行no shutdown就好了。

int e0/0

no switchport port-security

关掉端口安全后,依然显示err-diable。

交换机怎么审计MAC地址?

执行shutdown,再执行no shutdown,端口恢复了。

交换机怎么审计MAC地址?
阅读剩余
THE END