交换机“学习 MAC”这事是怎么干的?能不能手动指定?

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


很多人都听过这句“交换机通过学习 MAC 来建立转发表”?

但你真要问:

  • 它到底啥时候学?
  • 学谁的?往哪学?
  • 能不能我手动写死一个 MAC 呢?
  • MAC 一多会不会炸表?

这篇文章,直接全说清楚。


一、“MAC 学习”到底是个啥意思?

先说人话版本:

交换机收到一个包,会记下“谁发的 + 从哪个口来的”,然后下次再发回去,就直接走那口,不用全网乱转。

这就叫 MAC 学习,也叫 MAC 地址学习、源地址学习。

比如:

  1. 主机 A 发包,源 MAC 是 AA-AA-AA,从端口 1 进来
  2. 交换机一看,“哦,这个 MAC 是从端口 1 来的”,就写进 MAC 表
  3. 下次要给 AA-AA-AA 发包,就直接丢端口 1,不再广播

这一步,交换机做得飞快,毫秒级。


二、交换机“学 MAC”的条件是什么?

不是所有包都能让它学,得满足两个基本条件:

  • 包是从某个端口进入的
  • 包头里有合法的源 MAC

只要这两个条件满足,交换机就能学起来。 学完之后会在 MAC 地址表(也叫 CAM 表)里留一条记录,格式像这样:

MAC地址        VLAN   出口端口  类型
AA-AA-AA       10     GE1/0/1   动态


三、MAC 学完之后会一直记着吗?

不会。

动态学习的 MAC 是有“保质期”的,叫做 老化时间,华为设备默认是 300秒(5分钟)。

也就是说,如果 5 分钟内那个 MAC 没有再发数据包,它就会被从 MAC 表里删掉。 删掉之后,再有包来,就得重新学习一遍。

你也可以通过命令改掉这个老化时间,比如:

[Switch] mac-address aging-time 600


四、我能不能不让它“自动学”?自己手动指定?

可以,叫做 静态 MAC 绑定

适合的场景比如:

  • 某些高安全要求的端口,不想让别人随便接设备
  • 接摄像头、IoT、特殊终端,MAC 不变,手动绑定省事
  • 想防止 MAC 漂移、ARP 攻击

配置方式非常简单(以华为为例):

[Switch] mac-address static AA-AA-AA vlan 10 interface GigabitEthernet1/0/1

一条命令就搞定。

你可以配在指定 VLAN 下、指定端口上,这样就算外面换了设备也不能用这个 MAC 通信。

静态 MAC 不会老化,除非你手动删。


五、MAC 太多,会不会“炸表”?

会的。

交换机的 MAC 表容量是有限的(具体容量看型号,几千条到几十万条不等),如果学的太多,会导致“MAC 地址溢出”,引发广播风暴或性能下降。

这就是很多运营商、园区网里搞“端口隔离”“防 MAC 攻击”的原因。

你可以通过命令限制某个端口最多能学多少 MAC:

[Switch-GigabitEthernet1/0/1] mac-limit maximum 10

这样即使接了个交换机上来,也不会让你整个园区的 MAC 表爆炸。


六、终极建议:什么时候手动,什么时候自动?


学 MAC,不只是“记下来”这么简单,它是交换机转发的核心逻辑。

学得对,转发快;学错了,网络炸。 动态+静态+限制+查表,几招配合起来,网就稳了。


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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值