MPLS有哪些特征?
MPLS的基本概念有哪些?
想了解MPLS是什么,首先要知道MPLS的基本概念,下面介绍几个核心概念。
FEC
MPLS是一种分类转发技术,它将具有相同转发处理方式的数据分组归为一类,称为FEC(Forwarding Equivalence Class,转发等价类)。MPLS对相同FEC的数据分组采取完全相同的处理方式。
FEC的划分方式非常灵活,可以是源地址、目的地址、源端口、目的端口、协议种类、业务类型等要素的任意组合。例如,在采用最长匹配算法的IP路由转发中,去往同一个目的地址的所有报文就是一个FEC。
MPLS标签
MPLS标签是一个简短且长度固定的标识符,它只具有本地意义,用于唯一标识一个分组所属的FEC。在某些情况下(例如,进行负载分担)对应一个FEC可能会有多个MPLS标签,但是在一台设备上,一个MPLS标签只能代表一个FEC。
MPLS标签封装结构
MPLS标签共有4个域:
-
Label:20bit,标签值域。
-
Exp:3bit,用于扩展。现在通常用做CoS(Class of Service,服务分类)。
-
BoS:1bit,栈底标识。MPLS支持多层标签,即标签嵌套。BoS值为1时表明为最底层标签。
-
TTL:8bit,和IP分组中的TTL(Time To Live)意义相同。
MPLS标签的封装位置
MPLS标签栈(Label
stack
)也称为MPLS多层标签,是指MPLS标签的排序集合,如下图所示。靠近二层首部的标签称为栈顶标签或外层标签;靠近IP首部的标签称为栈底标签,或内层标签。MPLS标签栈按后进先出(Last In First Out)方式组织标签,从栈顶开始处理标签。
MPLS标签栈
标签操作
MPLS标签的基本操作包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作,是标签转发信息表的组成部分。
标签基本操作
MPLS标签的基本操作详解如下:
-
Push:指当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。
-
Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。
-
Pop:当报文离开MPLS域时,将MPLS报文的标签去掉;或者MPLS倒数第二跳的节点处去掉栈顶标签,减少标签栈中的标签数目。
在最后一跳的节点上,MPLS标签实际已没有使用价值。这种情况下,可以利用PHP(Penultimate Hop Popping,倒数第二跳弹出)特性,在倒数第二跳的节点上就将标签弹出,这样最后一跳的节点可直接进行IP转发或者下一层标签转发,从而减少最后一跳的处理负担。
PHP特性是通过分配特殊的标签值3来实现的。标签值3表示隐式空标签(implicit-null),这个值不会出现在标签栈中。当倒数第二跳节点发现自己被分配了标签值3时,它并不用这个值替代栈顶原来的标签,而是直接执行Pop操作,使最后一跳节点直接进行IP转发或下一层标签转发。
LSP
LSP(Label Switched Path,标签交换路径)是指属于同一FEC的报文(即封装了MPLS标签的报文)在MPLS域内转发所经过的路径,
LSP是一条从入口到出口的单向通道,包含以下角色:
-
LSP的起始节点称为入节点(Ingress),一条LSP只能有一个Ingress。Ingress的主要功能是给IP报文压入一个新的MPLS标签,将其封装成MPLS报文。
-
位于LSP中间的节点称为中间节点(Transit),一条LSP可能有0个或多个Transit。Transit的主要功能是查找标签转发信息表,通过标签交换完成MPLS报文的转发。
-
LSP的末尾节点称为出节点(Egress),一条LSP只能有一个Egress。Egress的主要功能是弹出标签,恢复成原来的报文进行相应的转发。
实验:
实物图:
首先开始依旧还是配置ip;
将所有路由的IP配置完成后开始配置BGP。
配置完后可以进行验证 我们进行ping:
从上图我们可以看到用r1ping通了,然后开始下一步
将所有的路由都配置陈这样就完事了。