MPLS标签/标签栈/编码介绍

2020-10-26 16:00:34 云杰通信 101

MPLS标签/标签栈/编码介绍

  一个MPLS标签由32比特组成,并且有统一的标准结构,前20比特为标签值。标签值范围从0—2的220 -1,即1048575.但是前16位比特是不能随便定义的,因为他们都有特定的含义。从20到22比特是3位实验用(EXP)比特,高比特专用于服务质量(QOS)。

  第23比特是栈底(BoS)位。其值应该为0.除非这是栈底的标签。如果是,那么该位将应该被置为1.所谓栈标签,实际上就是报文前端标签的集合。标签栈可以只包含一个标签,也可以包含多个标签。标签栈中的标签数量是没有限制的。

  从24到31的8个比特位做了生存周期(TTL).这里的TTL和IP报文头部的TTL的功能是完全相同的。没经过一跳之后TTL的值就减一。其主功能是避免路由环路。

  标签栈

  在标签栈中的第一个标签为顶部标签,最后一个标签称为底部标签。在这两者之间的标签可以是任何数量的。

  MPLS编码:

  标签栈位于第3层包头之前——就是说,在被传输协议的头部之前,同时在第二层

  报头之后。通常,MPLS标签栈由于其位置的特殊性而被称为填充头部(Shim Header)

  对链路第2层的封装几乎可以使Cisco的IOS所支持的所有的封装类型:PPP、高级链路控制(HDLC)、和以太网等。

  LDP,最常用的标签分发协议

  MPLS 一种转发方式的革新,解决了VRF虚拟路由转发(分割路由器)“track”的问题,利用标签直接转发数据,也就是出现了一种标签路径,类似于隧道(有封装,源目确定)

  标签分发:上游对下游分发标记,即控制层面的路由通告方向LDP分配标签参考的CEF表,CEF中所有的路由都各分配一个标签,形成一个binding表,表中有路由前缀以及本地分配的标签(local binding),还会把从邻居收到的关于该路由的标签也放置进去(remote binding,中有邻居id及邻居分配给该路由的标签)

  这里的路由前缀一定是严格匹配一致性的;10.1.1.0/24 与 10.1.1.1 完全不一样。

  MPLS中路由在传递过程中不能汇总(原因如上,如果路由传递过程中掩码发生变化,标签路径断裂无法发送数据),不能改变其掩码。如果底层是OSPF那么OSPF的回环地址最好写成32的主机地址。