MPLS以优秀的技术特点获得了绝大部分运营商和设备制造商的支持,被认为是下一代网络的核心技术。MPLS不仅可以有效地解决在IP网络中引入ATM所带来的问题,而且基于MPLS平台还可以开发种类丰富的服务业务,VPLS就是其中的一种,它为企业用户提供一种仿真的以太网服务,有效地解决了在链路层互连跨区域多分支以太局域网的问题。
MPLS是一种特殊的转发技术,它为进入MPLS网络的IP分组打上标记,而后通过标记交换的方法实现IP分组的转发,标记将作为IP分组头部的替代品而存在。它充分发挥了二层交换和三层路由的技术优势。
为了更好地介绍MPLS的基本原理,我们先引入MPLS的基本概念。
l FEC(Forwarding Equivalence Class):根据某些策略对IP分组流进行分类的结果,例如,可将具有某些相同属性(如具有相同目的地址前缀)的分组映射到一个FEC中。
l LSR:通过标记分发协议与其他节点进行标记协商并支持标记分组转发的路由器。
l Ingress LSR:入口LSR,负责IP分组的FEC归类并为IP分组打上相应标记,然后进行标记转发的LSR。
l Egress LSR:出口LSR,负责将标记分组还原为IP分组并进行IP分组的路由转发。
l Label:用于标识特定FEC类的长度为4字节的数值,标记只具有本地意义,即只对参与此标记的分发过程的LSR有意义。
l Label Stack:由标记组成的栈结构叫做标记栈。
l LDP(Label Distribution Protocol):标记分发协议,LSR通过LDP与其他LSR进行标记的协商分发。
图2.1 MPLS网络的组成
如上图所示,MPLS网络由边缘LSR(LER)和内部LSR组成,其中LER包括Ingress LSR和Egress LSR,负责IP分组的标记封装和还原工作,而内部LSR负责标记分组的标记交换转发。
边缘LSR和内部LSR拥有相同的功能结构。如下图所示,其中的控制平面包含路由协议模块和标记分发协议模块,标记分发协议模块根据路由协议模块提供的路由信息生成FEC条目,并为每个FEC绑定一个标记,然后通过LDP与邻接LSR协商标记绑定信息,之后,LSR将生成标记转发信息库(FTN表和ILM表)并向转发平面下发,转发平面根据FTN、ILM进行如下的标记转发过程。
u 根据IP分组的目的IP地址以最长匹配原则查找FTN表,并根据找到的FTN表项为IP分组打上出口标记,然后进行分组的标记转发。
u 根据标记分组的入口标记精确查找ILM表,并根据ILM表项或者继续进行分组的标记交换转发,或者弹出标记并将分组还原为IP分组,而后以IP转发方式转发分组。
图2.2 LSR的功能结构
MPLS控制平面包含路由协议模块和标记分发协议模块,它负责生成并向转发平面下发标记转发时所需的标记转发信息库。
MPLS控制层面主要围绕三个概念展开,即FEC、LSP和标记。
u FEC(转发等价类)
MPLS中,根据某些策略对IP分组流进行分类的结果就形成了FEC,我们可以采用静态或动态的归类策略,本文所采用的根据目的IP地址前缀进行FEC归类的方法就是一种静态的归类法,而动态的FEC归类法一般用于流量工程的实施,关于动态归类法的具体内容请参考[24]。
不论是静态分类还是动态分类法,都是通过让分组携带与FEC绑定的标记将分组归入到相应的FEC,所以LSR需要为FEC先分配标记,并把FEC/标记绑定信息通告给邻接LSR。LDP就是用于分发FEC/标记绑定信息的MPLS控制协议。
u LSP(Label Switching Path)——标记交换路径
LSP是标记分组实际经过的一条单向转发路径,以下先介绍与LSP有关的上/下游LSR的概念,然后再简要说明LSP的形成过程。上/下游LSR是针对LSR在LSP中所处的相对位置而言的。如下图所示是一条从LSR1到LSR3的一条标记转发路径,对于LSR2,LSR1是上游LSR,LSR3是下游LSR,对于LSR1,LSR2是下游LSR,而对于LSR3,LSR2是上游LSR。
图2.3 LSP
LSR在完成FEC/标记绑定后将通过标记分发协议把FEC/标记绑定信息通告给上游LSR,当LSP上的除Ingress LSR外的每个LSR向上游分发了FEC/标记绑定信息,且除Egress LSR外的每个LSR都收到了下游分发的相应的FEC/标记绑定信息后,Ingress LSR就会生成FTN转发表,而除Ingress LSR外的LSP上的所有LSR将生成相应的ILM转发表,从而形成了Ingress LSR到Egress LSR的标记转发路径。如图2.3,当LSR 3、LSR2完成向LSR2、LSR1发送FEC/标记绑定信息且LSR2、LSR 1收到了相应的FEC/标记绑定信息时,LSR1将生成相应的FTN转发表项,而LSR2、LSR 3将生成相应的ILM转发表项,从而形成了从LSR1经LSR2到LSR 3的LSP。
LSP的形成过程还与标记分发模式和LSP控制模式有关。
目前常用的标记分发模式是下游请求分发模式(DoD)和下游主动分发模式(DU)。DoD模式下,LSR只在收到标记分发请求后向相应的上游LSR分发FEC/标记绑定信息。DU模式下,LSR将主动把FEC/标记绑定信息分发给上游LSR。
LSR可使用独立控制(Independent)和有序控制(Ordered)两种LSP控制模式。Independent模式下,LSR向上游发送FEC/标记绑定信息的时机与是否收到下游发送的FEC/标记绑定信息无关。而在Ordered模式下,LSR只有在收到下游分发的FEC/标记绑定消息后才可能向上游分发相应的FEC/标记绑定信息。
MPLS转发平面的主要任务就是利用控制平面下发的标记转发信息库进行分组标记交换转发,本节首先介绍标记转发信息库的组织,然后介绍标记分组的封装,最后讨论标记分组的转发过程。
§ 2.1.4 .1 标记转发信息库(LFIB)
LFIB由ILM表和FTN表组成,FTN和ILM都与NHLFE有映射关系。
l NHLFE(the Next Hop Label Forwarding Entry):即下一跳标记转发条目,LSR利用NHLFE中的信息向下一跳转发标记分组,NHLFE主要包含下列信息:
1) 下一跳地址及到达下一跳的出接口
2) 出口标记
3) 标记操作码,常用的标记操作码如下所示:
标记操作码 |
操作定义 |
SWAP |
以出口标记替换标记栈顶标记(入口标记) |
POP |
弹出标记栈顶标记 |
PUSH |
将出口标记压入标记栈 |
表2.1
l FTN(FEC-to-NHLFE Map):FTN将FEC映射到NHLFE。以标记交换方式转发IP分组时需要使用FTN表。FTN表项的形式如下:
IP地址前缀 |
出口标记 |
操作码 |
下一跳 |
出接口 |
A.B.C.D /PrefixLen |
Out Label |
Opcode |
Next-hop |
Outface |
表2.2
l ILM(Incoming Label Map):入口标记映射表将入口标记映射到NHLFE。转发标记分组时需要使用ILM表。ILM表项的形式如下:
入口标记 |
出口标记 |
操作码 |
下一跳 |
出接口 |
In Label |
Out Label |
Opcode |
Next-hop |
Outface |
表2.3
§ 2.1.4 .2 标记栈的封装方法
标记栈由一组有序标记构成,其中的标记使用统一的封装格式,如下图所示:
图2.4 标记栈及标记的封装格式
1. 栈底标记位(S),1bit
表示相应的标记是否处于标记栈底。
1:栈底标记, 0:非栈底标记
2. 分组存活时间(TTL),8bit
表示允许分组经过的最大路由器跳数。
3. 试验使用(EXP),3bit
为试验而保留的,目前有的厂商利用它段提供区分服务,其默认值为0。
4. 标记值(Label Value),20bit
用于标识特定的FEC类。
标记栈可以封装在多种链路分组中,如ATM、Ethernet等,其中的栈顶标记可以沿用某些链路层分组的已有的标记格式,其余标记以“垫片”形式紧跟在链路层分组头部后面,以下是MPLS标记栈在各种链路分组中的封装形式:
图2.5 MPLS标记的封装格式
下面以Ethernet为例介绍标记栈的封装过程。如下图所示,标记栈完全以“垫片”形式封装在以太帧中:
图2.6 Ethernet中标记栈的封装格式
在标记栈中弹出压入标记的方法如下:
(1) 压入栈底标记时,将IP报文的TTL值复制到标记的TTL域,S为1,EXP为0(不启用EXP),Label Value是相应的标记值。
(2) 压入非栈底标记时,将下一层标记的TTL值复制到当前标记,S位为0,EXP和Label的设置方法同(1)。
(3) 替换栈顶标记时,EXP、S和TTL值不变,仅以新标记值替换栈顶标记值。
(4) 弹出非栈底标记时,将其TTL值复制到下一层标记的TTL域,然后直接弹出相应标记。
(5) 弹出栈底标记时,将其中的TTL值复制回IP报文的TTL域。
§ 2.1.4 .3 标记分组的转发过程
图2.7
如图2.7,以标记交换方式转发从Router A发出的目的地址为Router B的IP分组的过程如下:
(1) Ingress LSR从Router A收到目的地为Router B的IP分组时,将在FTN表中以最长匹配原则查找FTN表项,并根据标记操作码将其中的出口标记封装到IP分组前端,并根据FTN表项中的下一跳IP地址和相应的出接口将标记分组发送到LSR A。
(2) LSR A收到标记分组时,将根据入口标记精确查找ILM表,得到相应的ILM表项,并根据其中的标记操作码以出口标记替换入口标记,然后根据表项中的下一跳IP地址和相应的出接口将标记分组转发到LSR B。
(3) LSR B以类似LSR A的过程将标记分组转发至Egress LSR。
(4) Egress LSR收到LSR B转发的标记分组后,将根据入口标记精确查找ILM表,得到相应的ILM表项,并根据其中的标记操作码弹出 入口标记,从而将标记分组还原为IP分组并将其交给IP转发模块,Egress LSR最终通过IP转发模块将此IP分组转发到Router B,从而完成IP分组穿越MPLS网络的过程。
上一节简要地介绍了MPLS平台的工作原理,本节将在此基础上简要地回顾“draft-lasserre- vkompella-pp-vpls-0x.txt”草案中的VPLS核心技术思想。
基于MPLS可开发VPLS(Virtual Private LAN Service)服务,用于互连用户的跨区域多分支以太局域网。VPLS基于MPLS骨干网为用户提供了一种仿真的以太网服务,也称之为透明以太网服务,即对用户而言,MPLS骨干网的结构是不可见的,用户分支网络就好象是连接在单个桥接网络上一样。
如图2.8所示为VPLS的网络模型,与MPLS骨干网直连的客户设备称为客户网络边缘设备(CE),用户网络通常通过CE设备接入到VPLS网络中。位于MPLS骨干网边缘的设备是PE设备(Provider Edge),运营商通过PE向用户提供VPLS服务,PE可以同时为不同的VPLS用户服务,为了保证不同用户之间的独立性,PE为每个用户创建一个逻辑上独立的VPLS实例,用户分支局域网通过PE上的专用接口接入到相应的VPLS实例,顾名思义,一个专用接口只能接入一个用户分支网络。同一VPLS网络中的所有PE之间通过虚电路(VC)相互连接形成一个全互连拓扑,并且每条VC都是特定VPLS网络专用的,它与两端PE上相应的VPLS实例绑定。两个PE之间可能建立多条VC连接。
图2.8
u Attachment Circuit—AC
CE与PE之间的连接链路为AC,AC用于CE与PE之间传输以太帧。PE将以太帧封装在VC标记分组中并通过跨越MPLS骨干网的VC连接发送到对端PE上。对端PE从VC标记分组中抽取出以太帧后通过相应的AC将以太帧发送到目的CE。
u VC(虚电路)
为了互连用户的各分支网络并以类似以太网的方式在个分支网络之间发送以太帧,PE之间需要建立全互连的VC。显然VC应该是双向,我们将利用封装于MPLS LSP隧道的两条方向相反的单向VC连接来实现此双向VC,为便于区分,我们将这两条单向VC称为U-VC(Uni-directional VC),LSP可同时承载多条U-VC并通过VC标记加以区分。我们以LDP扩展协议实现VC标记的分发。
VPLS实例可分为控制平面和转发平面两部分,控制平面负责建立PE之间的VC连接,下一章将讨论LDP协议中的VC创建过程及其改进,在此只介绍VPLS转发平面,VPLS转发平面的模块组成如下图所示:
图2.9
VPLS实例为用户分支网络(CE设备)提供链路层的互连服务,使得用户的各分支网络就像处于同一个以太网内一样。如上图所示,CE通过PE上的专用接口接入VPLS,同一VPLS域内的所有VPLS实例之间通过VC相互连接。由于多条VC可复用在同一物理接口上,所以我们将VC两端称为“虚接口”,即VPLS实例之间通过“虚接口”相互连接。VPLS实例在功能上相当于以太网交换机,我们可将“虚接口”和专用接口统称为“虚拟交换接口”。
Bridge模块
Bridge模块的功能与以太网交换机中的网桥模块类似,负责各“虚拟交换接口”上的MAC地址学习刷新过程以及接口的帧过滤过程。
VPLS Forwarder模块(转发模块)
转发模块根据目的MAC地址和各接口上的MAC地址学习表进行以太帧的转发决策,由于VPLS域内各PE之间通过VC形成全互连拓扑,所以转发模块还必须防止以太帧在VPLS域内的回环转发,利用全互连拓扑的特点,转发模块可利用Split-Horizon技术避免以太帧的回环转发。关于Split-Horizon技术请参见[4]。
图2.10
上图显示了用户分支网络的以太帧通过VC穿越MPLS骨干网的过程。
当PE1从Ingress AC上收到CE1发出的目的地为CE2的以太帧时,PE1将在以太帧头之前依次封装VC标记和LSP标记,并将形成的VC标记分组通过VC发送到对端PE2上(注意,在实际发送VC标记分组时还需要再封装MPLS骨干网的链路层帧头,在此为以太帧头),PE2收到此VC标记分组后将剥去外层以太帧头并弹出其中的LSP标记和VC标记,从而将VC标记分组还原为以太帧,然后通过Egress AC将其发送到CE2。
VC是双向的,CE2向CE1发送的以太帧可通过类似的过程转发至CE1。
本章主要介绍了MPLS平台的工作原理并简要地回顾了基于MPLS平台的VPLS技术的核心思想,为后续的研究工作做好相关知识准备。