-
1.1? MPLS
概述
MPLS
(
Multiprotocol
Label
Switching
)最初是用来提高路由器的转发速度
p>
而提出的一个协议,但由于其在流量工程(
Traffic
Engineering
)和
VPN
(
Virtual Private Network
)这两项目前在
IP
网络中非常关键的技术中的
表现,
MPLS
已日益成为扩大
IP
网络规模的重要标准。
MPLS
协议的关键是引入了标签(
Label
)的概念。它是一种短的易于处理的、
不包含拓扑信息、
只
具有局部意义的信息内容。
在
MPLS
网络中,
IP
包在进入
第一个
MPLS
设备时,
MPLS
边缘路由器就用这些标签封装起来,
MPLS
边缘路
由器分析
IP
包的内容并且为这些
IP
包选择合适的标签。
相对于传统的
IP
路
由分析,
MPLS
不仅分析
IP
包头中的目的地址信息,
它还分析
IP
包头中的其
他信息,如
TOS
等;之后所有
MPLS
网络中的节
点都是依据这个简短标签来作
为转发判决依据。当该
IP
包最终离开
MPLS
网络时,标签被边缘路由器分离。
1.2? MPLS
原理
如图
1-1
所示,
MPLS
网络的基本构成单元是标签交换路由器
LSR
(
Label
Switching
Router
),由
LSR
构成的网络叫做
MPLS
域。位于
MPLS
域边缘和
其它用户网络相连的
LSR
称为边缘
LSR
(
LER
,
Labeled Edge Router
),
位于区域内部的
LSR
则称为核心
LSR
。标签分组沿着由一系列
LSR
构成的标
签交换路径
LSP
(
Label
Switched
Path
)
传送,
< br>其中入口
LSR
叫
Ingress
,
出口
LSR
叫
Egress
。
图
1-1 MPLS
基本原理
1.2.1?
基本概念
首先介绍几个
MPLS
中特有的基本概念。
1.
标签及其结构
标签(
label
)是一个短的、
长度固定的数值,由报文的头部所携带,不包含
拓扑信息,只具有局部意义。标签同
p>
ATM
的
VPI/VCI
以及
Frame Relay
的
DLCI
类似,是一种连接的标识符。如果链路层协议具有标签域,如
ATM
的
VPI/VCI
和
Frame Relay
的
DLCI
,则标签封装在这些域
中;如果不支持,则
标签封装在链路层和
IP
层之间的一个垫层中。
这样,
标签能够被任意的链路
层
所支持。
标签的封装结构如图
1-2
所示,
它位于链路层包头和网络层分组之间,
长度为
< br> 4
个字节。标签共有
4
个域:
图
1-2
标签的封装结构
Label
:标签值字段,长度为
20bits
,用于转发的指针。
Exp
:
3bits
,保留,用于试验。
S
:
1bit
,
MPLS
支持标签的分层结构,即多重标签。值为
1
时表明为最底
层标签。
TTL
:
8bits
,和
IP
分组中的
TTL
意义相同。
2.
等价转发类
转发等价类(
FEC
——
Forwarding Equivalence
Class
)是在网络中遵循相
同转发路径的报文的集合。<
/p>
例如,
在传统的最长匹配算法的
IP
转发中,
到同一
个目的地址的所有报文
是一个转发等价类。
实际上,
转发等价类的划分方式是非
常灵活的,可以是源地址、目的地址、源端口、目的端口、协议类型、
VPN
等
信息的任意组合。在
MPLS
中,一个标签标识了一个转发等价类。
3.
标签交换路径
一个转发等价类在
MPLS
网络中走过的路径称为标签交换路径
(LSP
——
Label
Switched
Path)
。
LSP
在功能上同
ATM
和
Frame
Relay
的虚电路是等
价的,它是从入口到出口的一个单向路径。
LSP
中的每个节点称为标签转发路
由器
(LSR)
,
其中,
入口和出口节点
分别称为入口
LSR
(
Ingress
)
和出口
LSR
(
Egress
)。
4.
标签分配和分发
在
MPLS
体系中,将特定标签分配给特定
FEC
的决定由下游
LSR
作出,下游
LSR
随后通知上游
LSR
。即标签由下
游指定,分配的标签按照从下游到上游的
方向分发。
MPLS
中使用的标签分发方式有两种:
下游自主标签分发方式
(
DU
,
Downstream
Unsolicited
)和下游按需标签分发方式(
DoD
,
Downstream
On
Demand
)。
对于一个特定的
FEC
,
LSR
无须从上游获得标签请求
消息即进行标签分配与分
发的方式,称为下游自主标签分配。
对于一个特定的
FEC
,
LSR
获得标签请求消息之后才
进行标签分配与分发的方
式,称为下游按需标签分配。
具有标签分发邻接关系的上游
LSR
和下游
LSR
之间必须对使用哪种
标签分发
方式达成一致。
5.
标签控制方式
标签控制方式分为两
种:
独立
(
Independent
)
标签控制方式和有序
(
ordered
)
标签控制方式。
当使用独立标签控制方式时,
每个
LSR
可以在任意时间向和它连接的
LSR
通告
标签映射。
当使用有序标签控制方式时,
只有当
LSR
收到某一特定
FEC
下一跳的特定标签
映射消息或者
LSR
是
LSP
的出口节点时,
LSR
才可以向上游发送标签映射消
息。
6.
标签保持方式
标签保持方式分为两
种:自由标签保持方式和保守标签保持方式。
假设两台路由器
Ru
和
Rd
,对于一个特定的
FEC
,如果
LSR Ru
收到了来自
LSR
Rd
的标签绑定:
当
Rd
不是
Ru
的下一跳时,
如果
Ru
保存该绑定,
则称
Ru
使用的是自由标签保持方式;
如果
Ru
丢弃该绑定,
则称
Ru
使用的是保守标签
保持方式。
当要求
LSR
能够迅速适应路由变
化时可使用自由标签保持方式;
当要求
LSR
中
保存较少的标签数量时可使用保守标签保持方式。
1.2.2?
标签报文的转发
在
Ingress
,
将进入网络的分组根据其特征划分成转发等价类
FEC
(一般根据
IP
地址前缀或者主机地址来划分
FEC
)。这些具有相同
FEC
分组在
MPLS
区
域中将经过相同的路径(即
LSP
)。
LSR
对到来的
FEC
分组分配一个短而
定
长的标签,然后从相应的接口转发出去。
在
LSP
沿途的
LSR
上都已建立了输入
/
输出标签的映
射表(该表的元素叫下
一跳标签转发条目,简称
NHLFE
,
Next
Hop
Label
Forwarding
Entry
)。对
于接收到的标签分组,
LSR
只需根据标签从表中找到相应的
NHLFE
,
并用新的
标签来替换原来的标签,然后对标签分组进
行转发,这个过程叫输入标签映射
ILM
(
Incoming Label Map
)。
MPLS
在网络入口处指定特定分组的
FEC
,
后续路由器只需简单的转发即可,
比
常规的网络层转发要简单的多,转发速度得以提高。
?
?
说明:
TTL
处理:
标签化分组时必须将原
IP
分组中的
TTL
值拷贝到标签中的
TTL
域。
LSR
在转发标签化分组时,
要对栈顶标签的
TTL
域作
减一操作。标签出栈时,再将栈顶的
TTL
值拷贝回
IP
分组或
下层标签。
但是,当
LSP
穿越由
ATM-LSR
或
FR-LSR
构成的非
TTL LSP
段时,
域内的
LSR
无法处理
TTL
域。
这时,
需要在进入非
TTL
LSP
段时对
TTL
进行统一处理,即一次性减去反映该非
TTL
LSP
段长度的值。
?
1.2.3? LSP
的建立
LSP
的建立其实就是将
FEC
和标签进行绑定,并将这种绑定通告
LSP
上相邻
LSR
的过程。这个过程是通过标签分发协议
LDP
(
Label Distribution
Protocol
)来实现的。
LDP
规定了
LSR
间的消息交
互过程和消息结构,以及
路由选择方式。
1. LDP
的工作过程
LSR
通过周期性地发送
Hello
消息来发现
LSR
邻居,
然后与新发现的相邻
LSR
间建立
LDP
会话。
通过
LDP
会话,
相邻
LSR
间通告标签交换方式、
标签空间、
会话保持定时器值等
信息。
LDP
会话是
TCP
连接,需通过
LDP
消息来维护,
如果在会话保持定时器值规定的时间内没有其它
LDP
p>
消息,那么必须发送会话
保持消息来维持
LDP
会话的存在。
图
1-3
标签分发过程
为
LDP
标签分发示
意图。
图
1-3
标签分发过程
在一条
LSP
上,
沿数据传送的方向,
相邻的
LSR
分别叫上游
LSR
和下游
LSR
。
如在
图
1-3
标签分发过程
中的
LSP1
上,
LSR B
为
LSR C
的上游
LSR
。
前面提到,标签的分发过程有两种模式:
DoD
(
downstream-on-demand
)模
式和
DU
(
downstream
unsolicited
)模式。这两种模式的主要区别在于
标签
映射的发布是上游请求还是下游主动发布。
DoD
(
downstream-
on-downstream
)
模式下标签的分发过程是这样
:
上游
LSR
向下游
LSR
发送标签请求消息
(包含
FEC <
/p>
的描述信息)
,
下游
LSR
为此
FEC
分
p>
配标签,
并将绑定的标签通过标签映射消息反馈给上游
LSR
。
下游
LSR
在何时
反馈标签映射消息,取决于该
LSR
采用独立标签控制方式还是有序标签控制方
式。当下游
LSR
采用有序标签控制方式时,只有收到它的下游返回的
标签映射
消息后才向其上游发送标签映射消息;当下游
LSR
采用独立标签控制方式时,
则不管有没有收到它的下游返回的标
签映射消息都立即向其上游发送标签映射
消息。上游
LSR
一般是根据其路由表中信息来选择下游
LSR
的。图
1-4
中
LSP1
沿途的
LSR
都采用有序标签控制方式,
LSP2
上
LSR F
采用独立标签控
制方式。
DU
(
downstream
unsolicited
)
模式下分
发标签的过程:
下游
LSR
在
LDP
会
话建立成功,
主动向其上游
LSR
发布标签映射消息。
上游
LSR <
/p>
保存标签映射信
息,并根据路由表信息来处理收到的标签映射信息
。
2.
基于约束路由的
LDP
MPLS
还支持基于约束路由的
LDP
机制(
CR-LDP
,
Constrain-based
Routing
LDP
)。所谓
CR-LDP
,就是入口节点在发起建立
LSP
时,在标签请求消息中
对
LSP <
/p>
路由附加了一定的约束信息。
这些约束信息可以是对沿途
LSR
的精确指
定,此时叫严格的显式路由
;也可以是对选择下游
LSR
时的模糊限制,此时叫
松散的显式路由。
3. LSP
的环路控制
在
MPLS
域中建立
LSP
也要防止路径循环。
防止
LSP <
/p>
的路径循环有最大跳数和
路径向量两种方式。
最大跳数方式是在传递标签绑定的消息中包含跳数信息,每经过一跳该值就加<
/p>
一,
当该值超过规定的最大值时就认为出现了环路,
从而终止
LSP
的建立过程。
路径向量方式是在传
递标签绑定的消息中记录路径信息,
每经过一跳,
相应的路
p>
由器就检查自己的
ID
是否在此记录中,
如果没有就将自己的
ID
添加到该记录
中,若有就说明出现了环路,终止
LSP
的建立过程。