假设您通过直连电缆将支持 VLAN 的网络交换机的中继端口连接到(不支持 VLAN 的)消费级网络交换机。现在前一个交换机向后一个交换机发送一个 802.1Q 标记的以太网帧。后一个交换机应该做什么?丢弃帧?转发帧?未定义的行为?
如果行为未定义,最有可能的情况是什么?
编辑:谢谢您的回答。总而言之,消费者开关的行为取决于:
- 如何处理
0x8100
以太网类型字段中的帧1 - 如何处理巨型帧或有效载荷大于 1500 字节的帧
维基百科有一个漂亮的图表比较未标记和已标记的以太网帧:
有报道称,一些消费级交换机可以顺利传递带有 VLAN 标记的帧。
1或更准确地说,其中预期有 EtherType 字段用于非标记帧
答案1
我实际上在廉价交换机上看到过这种情况。有人将交换机连接到具有几个 VLAN 的中继端口之间。帧在 VLAN 标记完好无损的情况下转发。该交换机上的其他端口可以使用未标记的 VLAN。
交换机只需要源/目标 mac 来决定将帧转发到哪个端口,因此这并不太令人惊讶,标记帧仍然具有源 mac 和目标 mac,位于帧头中的相同位置。
请记住,以太网实际上支持许多不同的框架类型在同一根电线上。它的设计非常灵活,可以完成各种功能。
答案2
通常,过大的以太网帧会被丢弃。在存在诸如巨型帧之类的情况下,大型以太网帧很难定义,因此这确实取决于具体情况 - 但丢弃可能是最常见的行为。
编辑:详细说明:标准 IEEE 802.3 以太网帧大小为 1518 字节,802.3Q 在帧中添加了 4 个字节,因此总 MTU 为 1522 字节,这对于某些交换机来说可能太大。
答案3
消费者级交换机将尝试转发帧 - 它只关心目标 MAC 地址。如果目标 MAC 地址不在其 CAM 表中,它将从其所有端口(除了接收数据包的端口)泛洪该帧。
使用直通转发方法肯定会转发该帧,因为只要读取目标 MAC 地址它就会开始转发 - 即使帧的总大小大于 MTU - 因为使用这种转发方法它无法计算帧的大小。
基于存储转发技术将大概(只要帧大小 <= MTU)只要 FCS 没问题,就执行相同操作。
如果不支持 802.1Q 的交换机连接终端设备,设备将接收该帧并将其丢弃,因为它们“不知道”如何处理 802.1Q(类型 0x8100)帧。
我猜测,如果消费级交换机与支持 802.1Q 的交换机互连(惊恐的事件!),只要帧是在中继端口上接收的,它们就会被 802.1Q 转发和处理。