概述
我们在上一篇文章中介绍了MAC地址学习机制,我们知道交换机收到任何一个报文,都会做如下两个动作:
接收到的报文
- 动作1:取出源MAC地址,查找MAC地址表,看是否已经存在这个MAC地址对应的表项,如果没有,则添加,否则会刷新表项;
- 动作2:取出目的MAC地址(单播),查找MAC地址表,看是否已经存在这个MAC地址对应的表项,如果有,则只从特定的接口发送出去,否则会泛洪。
从上面描述可以看出,交换机只要收到报文就会添加或者刷新MAC地址表,但是我们有没有想过,已经学习到的MAC地址会不会一直存放在交换机中呢?
MAC地址表
答案是肯定是否定的!因为不管交换机性能有多强,它的MAC地址表项总是有限的,如果一直存放在MAC地址表中,总有一天会达到它的最大规格,这样就会出现流量溢出现象,发送给新设备的流量都会被泛洪。
那交换机什么时候清除已经学习到的MAC地址表项,有没有什么规律呢?答案是肯定的,交换机使用MAC地址老化进制来确保上面的情况不会发生。
我们下面还是以一个例子来阐述MAC地址老化机制!
MAC地址老化机制
原理
当交换机把MAC地址添加进MAC地址表以后,就会对这个MAC启用一个定时器,如果定时器达到最大值,交换机就会把这个MAC地址从MAC地址表中清除,这个定时器就称为老化时间(aging time);
市场上几乎所有交换机厂商的默认的老化时间都为300秒,这个时间是经验值,在效率和流量之间做了平衡。
默认老化时间
对于特定的MAC,交换机每收到一个包含这个MAC的报文,就会把定时器进行重置。这个对于交换机也是不小的负担,例如1G端口以最大速率来接收报文,则交换机每秒最多要检测148.8万次,真够累的:)
拓扑
- PC1和PC2配置在相同的网段
- 和PC相连的交换机接口,配置在同一个VLAN 10里
配置
PC1的配置
PC1配置
PC2的配置
PC2配置
交换机的配置
交换机配置
原理概述
当PC1访问PC2时,发送报文的源MAC是PC1的MAC,目的MAC是PC2的MAC;
PC1发送报文
此时交换机就会在MAC地址表中记录PC1和PC2的MAC:
MAC地址表
此时查看MAC地址老化时间,发现是默认的300秒:
默认300秒
如果此后PC1和PC2一直不向外发送数据,则过了300秒以后,MAC地址就会被清空:
MAC地址表被清空
修改默认的MAC地址老化时间
在我们日常测试中,300秒的时间太长了,等5分钟对我们是极大的浪费,所以我们经常会修改这个老化时间,例如修改为30秒,修改命令如下:
修改老化时间命令
查看配置结果:
查看修改以后的时间
从上面的命令中, 我们发现还可以通过把老化时间设置为0来禁用MAC地址老化,这样学习到的MAC地址会一直存在于交换机中,直到手工被清除或者交换机重启。
不过我们要注意,在实际组网中,老化时间保持默认即可,不能设置的太小,否则网络中会有大量的未知单播报文。
总结
通过上面的描述,我们可以得出如下的结论:
- 对于动态学习到的MAC地址,如果没有被更新,交换机只会保存一段时间(老化时间),就会清除它们;
- 交换机每收到一个报文,就会根据源MAC查找MAC地址表,添加或者更新源MAC对应的表项;
- 交换机默认的老化时间是300秒,但是可以修改,但不建议。
看完上面的文章,各位对应MAC地址老化机制是否了解了呢?如果还有疑问,欢迎留言讨论!也非常欢迎关注我,一起探讨网络问题!