很多人都听过这句“交换机通过学习 MAC 来建立转发表”?
但你真要问:
这篇文章,直接全说清楚。
一、“MAC 学习”到底是个啥意思?
先说人话版本:
交换机收到一个包,会记下“谁发的 + 从哪个口来的”,然后下次再发回去,就直接走那口,不用全网乱转。
这就叫 MAC 学习whatsapp web,也叫 MAC 地址学习、源地址学习。
比如:
主机 A 发包,源 MAC 是 AA-AA-AA,从端口 1 进来交换机一看,“哦,这个 MAC 是从端口 1 来的”,就写进 MAC 表下次要给 AA-AA-AA 发包,就直接丢端口 1whatsapp官网,不再广播
这一步,交换机做得飞快,毫秒级。
二、交换机“学 MAC”的条件是什么?
不是所有包都能让它学,得满足两个基本条件:
只要这两个条件满足,交换机就能学起来。 学完之后会在 MAC 地址表(也叫 CAM 表)里留一条记录,格式像这样:
MAC地址 VLAN 出口端口 类型
AA-AA-AA 10 GE1/0/1 动态
三、MAC 学完之后会一直记着吗?
不会。
动态学习的 MAC 是有“保质期”的,叫做 老化时间,华为设备默认是 300秒(5分钟)。
也就是说,如果 5 分钟内那个 MAC 没有再发数据包,它就会被从 MAC 表里删掉。 删掉之后,再有包来,就得重新学习一遍。
你也可以通过命令改掉这个老化时间,比如:
mac-address aging-time 600
四、我能不能不让它“自动学”?自己手动指定?
可以,叫做 静态 MAC 绑定。
适合的场景比如:
配置方式非常简单(以华为为例):
mac-address static AA-AA-AA vlan 10 interface GigabitEthernet1/0/1
一条命令就搞定。
你可以配在指定 VLAN 下、指定端口上telegram中文版,这样就算外面换了设备也不能用这个 MAC 通信。
静态 MAC 不会老化,除非你手动删。
五、MAC 太多,会不会“炸表”?
会的。
交换机的 MAC 表容量是有限的(具体容量看型号,几千条到几十万条不等),如果学的太多,会导致“MAC 地址溢出”,引发广播风暴或性能下降。
这就是很多运营商、园区网里搞“端口隔离”“防 MAC 攻击”的原因。
你可以通过命令限制某个端口最多能学多少 MAC:
Switch-GigabitEthernet1/0/1
mac-limit maximum 10
这样即使接了个交换机上来,也不会让你整个园区的 MAC 表爆炸。
六、终极建议:什么时候手动,什么时候自动?
学 MAC,不只是“记下来”这么简单,它是交换机转发的核心逻辑。
学得对,转发快;学错了,网络炸。 动态+静态+限制+查表,几招配合起来,网就稳了。