交换机根据以太网帧的目的MAC地址和交换机的MAC地址表(也称为转发表)来决定是否转发、丢弃或泛洪帧。以下是交换机在不同情况下的行为:
1. 转发
什么时候转发?
- 已知目的MAC地址:当交换机收到一个数据帧并且在其MAC地址表中找到该帧的目的MAC地址对应的端口时,交换机会将该帧转发到相应的端口。
举例:
- 单播帧:例如,数据帧的目的MAC地址是00:1A:2B:3C:4D:5E,交换机的MAC地址表中有一条记录,显示该MAC地址对应的端口是Port 2,交换机会将该帧转发到Port 2。
2. 丢弃
什么时候丢弃?
- 无效的或损坏的帧:如果交换机收到一个包含错误的帧,例如帧校验序列(FCS)校验失败,交换机会丢弃该帧。
- MAC地址学习限制:如果交换机的MAC地址表已满,且收到一个新的源MAC地址的帧,交换机可能会丢弃该帧或某些老旧的记录,以腾出空间。
- 网络安全策略:如果交换机配置了访问控制列表(ACL)或其他安全策略,某些数据帧可能会被丢弃。
- 源MAC地址与目的MAC地址相同:如果交换机收到一个数据帧,其源MAC地址和目的MAC地址相同,交换机会丢弃该帧。
举例:
- 损坏的帧:例如,数据帧的FCS校验失败,交换机会丢弃该帧。
3. 泛洪
什么时候泛洪?
- 未知目的MAC地址:当交换机收到一个数据帧,但在其MAC地址表中没有找到该帧的目的MAC地址时,交换机会将该帧泛洪到除了源端口之外的所有端口。
- 广播帧:如果数据帧是广播帧(目的MAC地址为FF:FF:FF:FF:FF),交换机会将该帧泛洪到所有端口。
- 组播帧:默认情况下,许多交换机会将组播帧泛洪到所有端口,除非配置了组播优化协议(如IGMP Snooping)。
举例:
- 未知目的MAC地址:例如,数据帧的目的MAC地址是00:1B:2C:3D:4E:5F,但交换机的MAC地址表中没有记录该MAC地址,交换机会将该帧泛洪到所有端口。
- 广播帧:例如,ARP请求帧,目的MAC地址是FF:FF:FF:FF:FF,交换机会将该帧泛洪到所有端口。
交换机的MAC地址表学习机制
交换机通过学习机制建立和维护其MAC地址表:
-
学习源MAC地址:
- 当交换机收到一个数据帧时,它会检查该帧的源MAC地址和接收端口。
- 如果源MAC地址未在MAC地址表中,交换机会将源MAC地址和接收端口记录到MAC地址表中。
- 如果源MAC地址已存在但端口不同,交换机会更新该记录,指向新的端口。
-
老化机制:
- 为了防止MAC地址表过度增长,交换机会定期删除老旧的MAC地址记录。这个过程称为“老化”,通常有一个默认的老化时间(如300秒)。
总结
- 转发:当交换机知道目的MAC地址并且知道对应的端口时。
- 丢弃:当帧无效、损坏、违反安全策略或在某些异常情况下(如MAC地址表已满或源MAC地址与目的MAC地址相同)。
- 泛洪:当交换机不知道目的MAC地址(未知单播),或者帧是广播帧或组播帧。