购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 MPLS的工作原理

2.3.1 MPLS的标签结构

MPLS的标签结构如图2-2所示,标签长度为32位,各部分的说明如表2-1所示。

表2-1 MPLS的标签结构说明

图2-2 MPLS的标签结构

2.3.2 MPLS的体系结构

MPLS的体系结构分为控制单元和转发单元两个独立的单元,特点是“控制层面无连接,转发层面有连接”,如图2-3所示。

图2-3 MPLS的体系结构

控制单元使用标准的路由协议(如IS-IS、OSPF、BGP4等)同邻居交换路由信息和维护路由表,同时使用标签分发协议(如LDP、RSVP-TE、MP-BGP等)同互联的标签交换设备交换标签转发信息,实现标签转发表的维护和创建。

转发单元决定报文的转发处理,即根据数据报头中的信息查找标签转发表,然后根据查找结果进行标签处理和转发。

2.3.3 标签分发

1.标签分发的概念

标签分发是指为特定FEC建立相应LSP的过程。为方便说明,一般将报文转发过程中发送端的路由器称为上游LSR,将接收端的路由器称为下游LSR。

在MPLS体系中,将特定的标签分配给特定FEC(即标签绑定)的决定由下游LSR做出,由下游LSR通知上游LSR(即标签由下游指定),分配的标签按照从下游到上游的方向分发。注意,分发标签的方向与数据转发方向是相反的,先由下游往上游分发标签,再将数据包打上分配到的标签从上游往下游进行转发。

对于一个LSR,标签的“入”“出”是指数据转发的方向,“入标签”是它发给别人的标签,将标签发给别人后,别人会根据这个标签将相应的数据发回来,这就是“入”;而“出标签”是别人发给它的标签,当收到别人发来的标签后,它按照这个标签将数据包转发出去,这就是“出”。下游往上游分配的标签,对于下游就是“入标签”,对于上游就是“出标签”。

标签的取值只有本地意义,即一个路由器对不同的路由分配的“入标签”不能相同,如果对上游分配的“入标签”相同,路由器就不知道收到的数据包该往哪个方向转发。不同的路由器之间并不会协商标签的取值。

2.标签分发的方式

MPLS中使用的标签分发的方式有以下两种。

(1)下游自主(Downstream Unsolicited,DU)标签分发方式:是指对于一个特定的FEC,LSR无须从上游获得标签请求消息即进行标签分配和分发的方式,如图2-4所示。下游主动向上游发出标签映射信息。标签是设备自动随机生成的。

图2-4 下游自主标签分发方式

(2)下游按需(Downstream on Demand,DoD)标签分发方式:是指对于一个特定的FEC,LSR获得标签请求信息之后才能进行标签分配和分发的方式。

具有标签分发邻接关系的上游LSR和下游LSR之间使用的标签分发方式必须一致,否则LSP无法建立。

3.标签分配控制方式

MPLS中使用的标签分配控制方式分为以下两种。

(1)独立(Independent)标签分配控制方式。当使用独立标签分配控制方式时,每个LSR都可以在任意时间向和它连接的LSR通告标签映射。

(2)有序(Ordered)标签分配控制方式。当使用有序标签分配控制方式时,LSR只有当收到某一特定FEC下一跳的特定标签映射信息或者其是LSP的出口节点时,才可以向上游发送标签映射信息。MPLS当前采用的主要是有序标签分配控制方式。

4.标签保留方式

MPLS中对于收到的标签有两种保留方式,即自由标签保留方式和保守标签保留方式,如图2-5所示。

图2-5 标签保留方式示意图

(1)保守方式(Conservative Retention Mode):只保留来自下一跳邻居的标签,丢弃所有非下一跳邻居的标签。

(2)自由方式(Liberal Retention Mode):保留来自邻居发送的所有标签,是当前采用的主要的标签保留方式。

5.方式组合

标签分发、控制及保留方式有如下两种常用的组合。

(1)DoD+有序+保守:使用RSVP-TE作为标签分发协议时常使用这种组合。

(2)DU+有序+保守:使用LDP作为标签分发协议时常使用这种组合,标签表中会存在大量非选中的标签,发现自己有直连接口路由时,收到下游到某条路由的标签,并且该路由生效(也就是说,在本地已经存在这条路由,并且路由的下一跳和标签的下一跳相同)时发送标签。

如果某个网络中只有部分设备运行MPLS,则只会对运行MPLS的设备的直连路由生成标签,对于其他设备始发的路由则不会生成标签。如果没有标签,则对于通过MPLS域的目的地址在IP域的报文就只能采用传统的IP转发。

2.3.4 标签转发

1.标签转发表

在标签分发协议完成自己的工作后,每个路由器都会形成一张标签转发表。

标签转发表通常包括IN Interface(入接口)、IN Label(入标签)、Prefix/MASK(FEC前缀和掩码)、OUT Interface(出接口)、NEXT Hop(下一跳)及OUT Label(出标签),如表2-2所示。

表2-2 标签转发表

从表2-2中可以看出,所有入标签都是不同的,但出标签有可能是相同的,出标签和入标签也可能相同。其中有一个特殊的标签值3,代表倒数第二跳弹出。

对于一台设备的标签转发表而言,所有入标签一定不同。对于相同的路由,如果下一跳相同,则出标签一定相同;对于不同的路由,如果下一跳相同,出标签一定不同;对于不同的路由,如果下一跳也不相同,则出标签可能相同;对于同一条路由,出标签和入标签也可能相同。

2.标签转发过程

通过各种方式建立控制平面实现标签分配后,就可以进行数据传输。如图2-6所示,首先入口LER将数据包打上标签,转发给其下游LSR;然后中间的LSR根据标签转发表进行标签交换,再转发给其下游LSR;出口LER根据标签转发表将标签弹出,根据IP报头(或内层标签)进行下一步操作;通过沿途路由器执行的操作,就可将数据包从入口转发到出口,直至到达目的地。

图2-6 标签转发过程中路由器的操作

在通过标签转发进行数据传输的过程中,中间的LSR无须查看IP报头,只需要根据IP报头前面的MPLS标签进行相应的交换操作,这样IP数据包的内容就被标签“保护隔离”起来,MPLS的LSP成为天然的“隧道”。

在数据链路层协议中有相应的方法判断收到的报文是否为MPLS报文。如果是,则将报文送给MPLS层进行处理;如果不是,则将报文直接送给IP层进行处理。例如在以太网中,使用值Ox8847(单播)和Ox8848(多播)表示承载的是MPLS报文,Ox8800则表示是IP报文;PPP中增加了一种新的NCP,即MPLS NCP,使用Ox8282来标识。

3.倒数第二跳弹出

在Egress LER处,数据转发方式从MPLS转发变为IP路由查找,但是它收到的仍然是带有标签的MPLS报文。按照常规处理方式,该报文应该送到MPLS模块进行处理,但此时MPLS不需要标签转发,能做的只有去除标签,然后将数据包送给IP层处理。因此,对于Egress LER,处理MPLS报文是没有意义的,最好能保证它收到的直接就是IP报文,这就需要在Egress LER的上游完成标签弹出,即倒数第二跳弹出(Penultimate Hop Popping,PHP)。但是,上游设备如何知道自己是否倒数第二跳呢?其实,只要在倒数第一跳为其分配标签时做一个特殊说明即可。倒数第一、二跳标签分配方式如表2-3所示。

表2-3 倒数第一、二跳标签分配方式 5Jt/czE4DjapJgWW2DFNxZOs8IKmsFNbmaE5S8IILyLQEmyTni/n11bzd+19y1dD

点击中间区域
呼出菜单
上一章
目录
下一章
×