我正在研究VLAN。经过几个小时的搜索,我知道 802.1Q 没有封装原始帧,而是在源 MAC 地址和原始帧的“EtherType”字段之间添加了一个 32 位字段。但我不知道为什么。有人可以向我解释为什么 802.1Q 不封装原始帧吗?非常感谢。
1 回答
802.1q 的前身是 Cisco 的 ISL。ISL 确实完全封装了框架。这意味着当任何设备接收到 ISL 帧时,它必须能够理解 ISL 标记,否则整个帧都被视为格式错误。
在 802.1q 中,帧的前 12 个字节,无论是否被标记,总是相同的。
为了准确说明标签修改了什么,这里是没有标签的帧的数据包捕获,然后是带有标签的同一帧:
橙色的括号部分全部来自原始帧。绿色括号中的部分是 802.1q 标签添加到帧中的部分。
请注意,在这两种情况下,前 12 个字节是目标 MAC 地址和源 MAC 地址。
此外,在这两种情况下,帧的接下来的 2 个字节都是“EtherType”字段,它指示封装在数据报中的下一个协议。
这意味着无论中转设备是否理解 802.1q 标签,对该帧的处理都不会改变。这意味着 802.1q 标签仍然可以通过设备“工作”...
- 较旧,不支持或不理解 802.1q 标签
- 未配置为读取/查找特定标签
- 构建为仅检查任何帧的前 12 个字节,因此它可以就如何转发数据包做出线速决策,这是直通交换中的策略。
总体而言,它允许 VLAN 和 VLAN 标记的实施和标准化,而无需修补曾经创建的每个执行第 2 层处理的设备,以教他们如何解释“完全封装的 VLAN 标记策略”(如 ISL)。相反,可以对需要支持 VLAN 的设备进行修补以了解 802.1q,并且传输中的所有其他设备可以继续运行而无需大惊小怪。
诚然,如今很少遇到不了解 VLAN 的主机或交换机,但从 VLAN 和标记概念首次发明时的角度来考虑它。