Technorati 标签: MPLS 原理

在学习MPLS之前,应该知道MPLS有两种工作模式。

1, 帧模式-->在第三层分组头(如IP分组头)前加入标签进行转发。

2, 信元模式.--->在ATM LSR组成的MPLS网络中,在控制平面使用MPLS交换VPI/VCI的信息,而不是采用ATM信令进行转发.

MPLS 原理详解_第1张图片

1, 转发等价类。FEC

如果入口路由器收到分组都到达同一子网的,则这些分组就属于同一类。这是依据FIB中的最长匹配查找决定的。例如,假设在FIB表中有一项目的地址为1.1.1.0/24,下一跳是2.2.2.2.如果我收到了两个IP地址分别是1.1.1.1和1.1.1.2的分组,这两个分组都会转发给同样的下一条,2.2.2.2,那么这个时候这两个报文就属于同一个FEC.

MPLS 原理详解_第2张图片

这里可以看到,对于到6.1.1.0/24网段,不管后面的主机位,所分发的标签,20,都是一样的,实际上是由下游路由器对本端的outgoing label分发的20,都是一样的。所以6.1.1.0就是一个等价转发类。

这个和IP层面的路由表是一样的。

对于IP层面,到相同的目的,走一样的路由。

对于MPLS层面,到相同的目的,分发相同的标签,那就是一样的走相同的路径。

2, 标签交换.

标签交换有三个过程:

■根据入标签进行查找

■找到分组的出接口和出标签.

■进行标签交换,然后再出接口发送分组.

MPLS体系结构被分为两个独立的单元:控制平面和转发转发,如下图所示:

MPLS 原理详解_第3张图片

这里先来说一下控制平面。

■IGP--和在只有IP的网络中的用途相同。如果mpls网络使用了流量工程,IGP会作为链路状态协议,可以是OSPF或者是IS-IS.

■标签分配协议. 有三种协议可以分配标签。

cisco TDP (private protocol)

LDP (standard protocol regarding the RFC)

RSVP 资源预留协议,专门为TE 工作的。

关于转发,传统的IP与MPLS网络转发有什么不同呢?

■IP转发是基于目的的IP地址和FIB的。

■MPLS转发是基于MPLS标签和标签转发信息库(LFIB)的。

■MPLS转发和IP转发都是逐跳转发的,IP转发在每一跳都对分组进行识别分类,而MPLS转发只在入口路由器进行分类,类分号了,就通过FEC进行转发.

PS:如果不使用流量工程TE,那么所有的IGP路由协议都可以使用。但是为了将来的扩展使用,最好使用OSPF或者ISIS来作为IGP,因为MPLS TE只能支持这两种IGP类型。具体原因以后再做详解.

MPLS 原理详解_第4张图片

假如说流量是从PE-1 R2到R6的环回10.1.1.2.

那么这个时候控制平面和转发平面的方向是完全相反的。

在R2上面show mpls forwarding-table,从R3到本地分发的标签是18,从R5到R3分发的标签是16, R6没有向R5分发标签,因为R5转发数据报文的时候利用次末节点弹出机制,将标签弹出了,这样R6负责的就是纯IP转发了。

在R2上面:

clip_p_w_picpath010

在R3上面:

clip_p_w_picpath012

在R5上面:

clip_p_w_picpath014

所以这里可以看出,转发层面是从左到右,控制层面的标签分发是从右到左的.

在MPLS转发表中,分为ilm和ftn.

分别是MPLS to MPLS和MPLS to IP.

标签发布的时候,实际发布的内容是标签,IP前缀和掩码长度,这个过程称为标签发布。

下面就来说明一下,标签,是如何发布的。

0-15是保留的标签。

0-IPv4显式空标签。

1-路由器警告标签。

2-IPv6显式空标签

3-隐式空标签。

合法的标签范围是从16开始到2的20次方-1.

即16--1048575.都是合法的标签。

local 的标签是我发给上游路由器的标签。而,outgoing label的标签是下游路由器发给我的标签。

所以转发平面如果是从左到右的话,那么控制平面的标签分发就是反的,是从右往左来进行标签的分发的。

下面有一个例子,

MPLS 原理详解_第5张图片

这里如果在R3上面查看mpls 的转发表到10.1.1.2的话。

clip_p_w_picpath016

这里可以看到。outgoing是16,那么实际上是R5的local应该是16,是R5发给R3的16.

对于R3上面的18,local,应该是R2的出标签。

也就是说。R5上面的local是16,R2上面对应10.1.1.2的出标签应该是18.

R3:

clip_p_w_picpath018

对了,R5的local是16,分发给R3.

在R2上面:

clip_p_w_picpath020

R2上面的出outgoing是18.这样就符合标签分发的原理了。