L2VPN 的封装与 MPLS 的关系
L2VPN(第二层虚拟专用网络)是一种基于多协议标签交换(MPLS)的技术,它的封装机制与MPLS 有着紧密的联系,但又有所区别。以下是关于L2VPN 封装的详细解释:
1. MPLS 的基本封装:
MPLS 是一种在数据包上添加标签(标签)的协议,用于在网络中快速转发数据。MPLS 报文格式通常包括一个标签头(Label Header),它由一系列的标签组成,这些标签用于指示数据包应该如何通过MPLS 网络。在MPLS 中,标签头被插入到数据包的链路层头和网络层头之间,这种封装方式使得MPLS 网络可以支持多种上层协议,包括IPv4、IPv6、ATM 和 Frame Relay 等。
图1-A 展示了MPLS 报文的基本格式,其中MPLS Header 位于链路层 Header(例如以太网 Header)和 IP Header 之间。这种情况下,MPLS 被看作是“2.5 层”协议,因为它位于传统网络模型的第2 层(数据链路层)和第3 层(网络层)之间。
2. L2VPN 的封装:
在L2VPN 中,MPLS 用于承载第二层数据包,而不是传统的IP 数据包。因此,L2VPN 的封装与图1-A 所示的MPLS 封装有所不同。图1-B 展示了L2VPN 中的MPLS 报文格式,其中MPLS Header 后面直接跟随着第二层协议数据单元(PDU),这通常是一个以太网帧、一个ATM 信元或其他二层协议的数据单元。
在L2VPN 中,被封装的二层数据包被称为PW PDU(Pseudowire Protocol Data Unit),它代表了通过L2VPN 建立的逻辑连接上传输的数据。
3. L2VPN 与 L3VPN 的比较:
图2 比较了L2VPN 和L3VPN 的MPLS 封装。在L3VPN 中,MPLS 主要用来封装IP 数据包,而L2VPN 则用来封装二层数据包。L2VPN 的目的是保持原始的二层帧完好无损地从源端传输到目的端,因此它对MPLS 的使用是对传统的MPLS 应用的一种扩展。
4. 不同二层协议的封装:
不同的二层协议在被封装到MPLS PW 中时,可能会有特定的处理。例如,图3 展示了ATM 信元的封装,其中ATM Header 中的HEC(Header Error Control)字段被移除。而图4 展示了以太网帧的封装,其中FCS(Frame Check Sequence)字段和前导符字段也被移除。这些字段在传输过程中可能不是必需的,或者可能需要特定的处理,因此在封装到MPLS PW 时会被修改或移除。
需要注意的是,这些修改是为了提高传输效率和兼容性,但并不意味着原始的二层数据被破坏,因为在到达目的端时,这些字段通常会被重新添加或处理。