MPLS 是 Multi-Protocol Label Switching 的缩写,中文全称多协议标签交换。是一种利用标签引导数据流的网络传输技术。MPLS 是处于链路层和网络层之间的协议。
MPLS 报文头由 32 比特组成,分为四个部分:标签值(占其中 20 比特)。实验位(占其中 3 个比特,一共 8 个值),目前,在 IP 网络中,该字段通常用来传递分组的服务类别,如 IPV4 头部的优先级。栈底标志位(占其中 1 个比特), 表示当前标签是否位于栈底了。这样就允许多个标签被编码到同一个数据包中,形成标签栈。可以把普通的 IPV4 报文理解为深度为0的标签栈数据包。TTL ,存活时间字段(占其中的 8 个比特,一共 255 个值),如果标签数据包的出发 TTL 值为 0,那么该数据包在网络中的生命期被认为已经过期了。无论是以标签的形式还是不带标签的形式,该报文都不应该继续被转发。
MPLS 协议工作在二层和三层之间,是一种大二层技术。MPLS 标签对 IP 层隔离,这样带来的好处就是,使用 MPLS 标签对数据包标识,不会对数据包本身的信息有任何影响。被 MPLS 标签封装的IP包,就如同穿上了一层马甲,在 Overlay 网络中根据这层马甲传输。
经过调研和分析各种 Overlay 技术,最终选择了 MPLS 标签技术作为 Overlay 网络流量的标识。
VXLAN 也是一种大二层技术,全称 Virtual Extensible Local Area Network0 正如名字所描述的,VXLAN 是对 VLAN 技术的一种拓展,但是拥有更强的扩展性和灵活性。VXLAN 可以横跨二层和三层虚拟出逻辑网络。VXLAN 同样是网络 Overlay 技术的一种实现。
VXLAN 技术同样可以为IP包封装上一层标识,在 Overlay 网络中传输。
VXLAN 的 VLAN ID 部分只有 12bit。对于云平台的租户数目来讲是远远不够的。且 VXLAN 需要对原始报文封装 384 比特的报头,对带宽成本的损耗过于巨大。MPLS 技术仅仅是是在传统的第二层数据链路层报头和第三层 IP 报头之间插入的一个 32 位的字段,且报头包含了 20bit 的标签字段(Label)。可标识用户数远大于 VXLAN ,对带宽的损耗远小于 VXLAN 。
并且Linux对VXLAN的配置是静态的。当配置数量达到几百上千的量级, 一次状态变化需要变化配置的内容会很多,这种状态维护成本很大。况且对用户 的QoS保障是动态的,状态变化导致的配置成本十分巨大。
田鑫,专业的企业组网服务商,致力于为企业提供企业组网(SD-WAN、MPLS、云互联),业务云化、数据中心、网络安全、行业IT解决方案等相关服务。
更多相关内容推荐: