-
1.1
介绍
定义
LDP
(
Label
Distribution
Protocol
,标签分发协议)是
MPLS
(
Multi-Protocol
Label Switching
< br>,多协议标签交换)的一种控制协议,相当于传统网络中的信
令协议,负责
FEC
(
Forwarding
Equivalence Class
,转发等价类)的分类、标
签的分配以及
LSP
(
Label
Switched Path
,标签交换路径)的建立和维护等操
作。
LDP
规定了标签分发过程中的各种消息以及相关处理过
程。
目的
MPLS
支持多层标签,并且转发平面面向连接,故具有良好的扩展性,使在统一
的
MPLS/IP
基础网络架构上为客户提供
各类服务成为可能。通过
LDP
协议,
LSR
(
Label Switched Router
,标签交换路由器)可以把网络层的路由信息直接映
射到数据链路层的
交换路径上,建立起网络层的
LSP
。目前,
< br>LDP
广泛地应用在
VPN
服务
的提供上,具有组网、配置简单、支持路由拓扑驱动建立
LSP
、支持大
容量
LSP
等优点。
1.2
参考标准和协议
本特性的参考资料清单如下:
文档
RFC5036
RFC3215
RFC5443
RFC3478
描述
LDP Specification
LDP State
Machine
备注
只支持
DU+Ordered+Liberal
方
式
,不支持环路检测。
-
LDP
IGP Synchronization
不支持
end-
of-lib
消息,其它
支持。
Graceful Restart
Mechanism
for Label
Distribution Protocol
The MD5 Message-Digest
Algorithm
LDP Applicability
Maximum Transmission
Unit
Signalling
-
RFC1321
RFC3037
RFC3899
-
-
-
文档
描述
Extensions for
the Label
Distribution Protocol
备注
1.3
原理描述
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1.3.1
LDP
基本概念
1.3.2
LDP
会话
1.3.3
标签的发布和管理
1.3.4
LDP LSP
的建立
1.3.5
LDP-IGP
联动
1.3.6
LDP GR
1.3.7 LDP
FRR
1.3.8 LDP MTU
1.3.9 LDP MD5
1.3.10 LDP
为
BGP
分标签
1.3.11 LDP over
TE
1.3.12 LDP
GTSM
1.3.13
LDP
本远端会话共存
1.3.14
LDP
为所有
Peer
分标签
1.3.1
LDP
基本概念
MPLS
体系有多种标签发布协议,
LDP
(
Label Distribution Protocol
)是其中
使用较广的一种。
LDP
(
Label
Distribution
Protocol
)规定了标签分发过程中的各种消息以及相
关的处理过程。
LSR
之间将依据本地转发表中对应于一个特定
FEC
p>
的入标签、下
一跳节点、出标签等信息联系在一起,从而形成标签交
换路径
LSP
。
关于
LDP
的详细介绍可以参考
R
FC5036
(
LDP
Specification
)。
LDP
邻接体
当一台
LSR
接收到对端发送过来的
hello
消息,
意味着可能存在
LD
P
对等体,
此
时建立维护对端存在的<
/p>
LDP
邻接体。
LDP
< br>邻接体存在两种类型:
本地邻接体
(
Local
Adjacency
)和远端邻接体(
Remote Adjacency
)。
LDP
对等体
LDP
对等体是指相互之间存在
LDP
会话、使用
LDP
来交换标签消息的两个
LSR
。
LDP
对等体通过它们之间的
LDP
会话获得对方的标签。<
/p>
LDP
会话
LDP
会话用于
LSR
之间交换标签映射、释放等消息。
LDP
会话分为两种
类型:
本地
LDP
< br>会话(
Local LDP Session
):建立会
话的两个
LSR
之间是直连
的;
?
远端
LDP
会话(
Remote
LDP
Session
):建立会话
的两个
LSR
之间可以是
直连的,也可
以是非直连的。
?
本地
LDP
会话和远端
LDP
会话可以共存。
LDP
邻接体
/
对等体
/
会话之间的关系
LDP
通过邻接体来维护对等体的存在,
对等体的类型取决于维护它的邻接体的类
型。
一个对等体可以由多个邻接体来维护,
可以由
本地邻接体和远端邻接体两者
来维护,则对等体类型为本远共存对等体。只有存在对等体
才能建立
LDP
会话。
LDP
消息类型
LDP
协议主要使用四类消息:
p>
发现(
Discovery
)消息:用于通
告和维护网络中
LSR
的存在;
?
会话(
S
ession
)消息:用于建立、维护和终止
LDP
对等体之间的会话;
?
通告(
Advertisement
)
消息:用于创建、改变和删除
FEC
的标签映射;
?
通知(
Notification
)消息:用于提供建议性的消息和差错通知。
p>
?
为保证
p>
LDP
消息的可靠发送,除了
Discov
ery
消息使用
UDP
外,
LDP
的
Session
消息、
Advertisement
消息和
Notification
消息都使用
TCP
传输。
标签空间与
LDP
标识符
?
标签空间
LDP
对等体之间分配标签的数值范围称为标签空间(
Label
Space
)。可
以分为:
全局标签空间(
Per-Platform
Label
Space
):整个
p>
LSR
使用一个
标签空间。
o
接口标签空间(
Per-Interface Label S
pace
):为
LSR
的每个接
口指定一个标签空间。
?
LDP
标识符
o
LDP
标识符(
LDP Identi
fier
)用于标识特定
LSR
的标签
空间范围。
LDP
标识符的格式为
:
,长度为六字节,其中:
LSR ID
:表示
LSR
标识符,占四字节。
o
Label space
ID
:表示标签空间标识符,占两字节。
o
1.3.2
LDP
会话
LDP
发现机制
LDP
发现机制用于
LSR
发现潜
在的
LDP Peer
。
LDP
有两种发现机制:
?
基本发现机制:用于发现链路上直
连的
LSR
。
LSR
通过周期性的发送
LDP
p>
Hello
报文,实现
LDP
基本发现机制,建立本
地
LDP
会话。
Hello
报文中携带
LDP
Identifier
及一些其他消息(例如
hold
time
、
transport address
)。如果
LSR
在特定接口接收到
< br>LDP Hello
消息,表
明该接口存在
LDP
对等体。
?
扩展发现机制:用于发现链路上非
直连
LSR
。
LSR
周期性的发送
Targeted
Hello
消息到指定地址,实现
LDP
扩展发现
机制,建立远端
LDP
会话
。
Targeted Hello
消
息使用
UDP
报文,目的地址是指定地址,目的端口是
LDP
端口(
646
)
。
Targeted
Hello
消息同样携带
LDP
p>
Identifier
及一些
其他信息(例
如:
transport
address
、
hold
time
)。如果
LSR
在特定接
口接收到
Targeted hello
消息,表明该接口存在
LDP
对等体。
LDP
Session
建立过程
两台
LSR
之间交换
Hello
< br>消息触发
LDP
session
的建立。
LDP S
ession
的建立过程如
图
1-1<
/p>
所示:
图
1-1 LDP
Session
建立过程
1.
两个
L
SR
之间互相发送
Hello
消息。<
/p>
Hello
消息中携带传输地址,双方使
用传输地址建立
LDP
会话。
首先选择
传输地址较大的一方作为主动方,
发
起建立
TCP
连接。如
图
1-1
所示,
LSR-A
作为主动方发起建立
TCP
连接,
LSR-B
作为被动方等待对方发起连接。
2.
TCP
连接建立成功后,由主动方
LSR-A
发送
Initialization
消息,协商
建立
LDP
会话的相关参数,
包括
LDP
协议版本、
标签分发方式、
Keepalive
保持定时器的值、最大
PDU
长度和标签空间等。
3.
被动方
LSR-B
收到
Initialization
消息后,如果不能接受相关参数,则
发送
Notification
消息终止
LDP
会话的建立;如果被动方
LSR-B
p>
能够接
受相关参数,则发送
Initial
ization
消息,同时发送
Keepalive
消息给
主动方
LSR-A
。
4.
主
动方
LSR-A
收到
Initiali
zation
消息后,如果不能接受相关参数,则
发送
Notification
消息给被动方
LSR
-B
终止
LDP
会话的建立;如果能够
接受相关参数,则发送
Keepalive
消息给被动方
LSR-B
。
p>
当双方都收到对端的
Keepalive
消
息后,
LDP
会话建立成功。
1.3.3
标签的发布和管理
<
/p>
LDP
会话建立后,
LDP
协议开始交换标签映射等消息用于建立
LSP
。
p>
RFC5036
分别
定义了标签发布方式、
标签分配控制方式、
标签保持方式来决定
LSR
如何发布和
管理标签。
p>
NE80E/40E
支持如下组合方式:下游自主方式(
DU
)+有序标签控制方式
(
Ordered
)+自由标签保持方式(
Liberal<
/p>
)。
标签发布方式
在
MPLS
体系中,
由下游
LSR<
/p>
决定将标签分配给特定
FEC
,
再通知上游
LSR
。
即
标
签由下游指定,标签的分配按从下游到上游的方向分发。
标签发布方式(
Label Advertisement
Mode
)可以分为以下两种:
?
下游自主方式
下游自主方式
DU
(
Downstream Unsolic
ited
)是指对于一个特定的
FEC
,
LSR
无须从上游获得标签请求消息即进行标签分配与分发。
如
图
1-2
所示,对于目的地址为
192.168.1.1/32
的
FEC
,根据主机方式
触发,下游(
Egress
)通过标签映射消息主动向上游(
Transit
)通告自
己的主机路由
192.168.1.1/32
的标签。
图
1-2
DU
方式
?
下游按需方式
下游按需方式
DoD
(
Downstream on Dem
and
)是指对于一个特定的
FEC
,
LSR
获得标签请求消息之后才进行标签分配与分发。
下游
LSR
何时响应
标签映射消息,取决于该
LSR
采用的标签控制方式。
采用
Ordered
方式时,
只有收到下游返回的标签映射消息后,
或者
该
LSR
是此
FEC<
/p>
的出节点时,才向上游发送标签映射消息。
o
采用
In
dependent
方式时,
不管有没有收到下游返回的标签映
射消
息,都立即向上游发送标签映射消息。
o
如
图
p>
1-3
所示,对于目的地址为
192.16
8.1.1/32
的
FEC
,根据主机
方式
触发,上游(
Ingress
)向
下游发送标签请求消息,下游(
Egress
)收到
标签请求消息后,才会向上游发送标签映射消息。
图
1-3
DoD
方式
具有标签分发邻接关系的上游
LSR
和下游
LSR
必须对使用的标签发布方式达成一
致。
标签分配控制方式
标签分配控制方式(
Label Distribution
Control Mode
)是指在
LSP
的建立过
程中,
LSR
分配标签时
采用的处理方式。
标签分配控制方式可以分为以下两种:
?
独立标签分配控制
独立标签分配控制
(
Independent
)是指本地
LSR
可以自主地分配一个标
签绑定到某个
FEC
,并通告给上游
LSR
,而
无需等待下游的标签。
如
图
1-2
所示,如果标签发布方式为
DU
,且标签分配控制方式为
Independent
,
则
LSR
(
Transit
)
无需等待下游
(
Egress
)
的标签,
就会直接向上游(
Ingress
)分发标签。
p>
o
如
图
1-3
所示,如果标签发布方式为
DoD
,且标签分配控制方式为
Independ
ent
,则发送标签请求的
LSR
(<
/p>
Ingress
)的直连下游
(
Transit
)
会直接回应标签,
而不必等待来自最终下游
(
Egress
)
的标签。
?
有序标签分配控制
o
有序标签分配控制(
Ordered
)是指对于
LSR
< br>上某个
FEC
的标签映射,只
有
当该
LSR
已经具有此
FEC
下一跳的标签映射消息、或者该
LSR
就是此<
/p>
FEC
的出节点时,该
LSR
才可以向上游发送此
FEC
的标签映射。
如
图
1-2
所示,
如果标签发布方式为
DU
,
且标签分配控制方式为
Ordered
,
则
LSR
(
Transit
)只有收到下游(
Egress
p>
)的标签映射消息,才会向上
游(
Ingr
ess
)分发标签。
标签保持方式
标签保持方式(
Label
Retention
Mode
)是指
LSR
对收到的、但目前暂时不需要
的
标签映射的处理方式。
标签保持方式可以分为以下两种:
?
自由标签保持方式
自由标签保持方式
(
Liberal
)是指对于从邻居
L
SR
收到的标签映射,无
论邻居
LSR
是不是自己的下一跳都保留。
?
保守标签保持方式
保守标签保持方式
(
Conservative
)
是指对于从邻居
LSR
收到的标签映射,
p>
只有当邻居
LSR
是自己的下一跳时才保留
。
当网络拓扑变化引起下一跳邻居改变时:
使用自由标签保持方式,
LSR
可以直接利用原来非下一跳
邻居发来的标
签,迅速重建
LSP
,但
需要更多的内存和标签空间。
?
<
/p>
使用保守标签保持方式,
LSR
只保留来
自下一跳邻居的标签,节省了内存
和标签空间,但
LSP
的重建会比较慢。
?
保守标签保持方式通常与
DoD
方式一起,用于标签空间有限的
LSR<
/p>
。
1.3.4 LDP
LSP
的建立
LSP
的建立过程实际就是将
FEC
和标签进行绑定,
并将这种绑定通告
LSP
上相邻
LSR
。下面结合下游自主标签发布方式和有序标签控制方式来说明其主要步
骤:
1.
当网络的路由改变时,
如果有一个边缘节点发现自己的路由表中出现了新
的目的地址,并且这一地址不属于任何现有的
FEC
,
则该边缘节点需要为
这一目的地址建立一个新的
FEC
。
2.
如果
MPLS
网络的出节点有可供分配的标签,则
为
FEC
分配标签,并主动
向上游发出
标签映射消息,
标签映射消息中包含分配的标签和绑定的
FEC
等信息。
3.
收到标签映射消息的
LSR
在其标签转发表中增加相应的条目,
然后主
动向
上游
LSR
发送对于指定
FEC
的标签映射消息。
4.
当入节点
LSR
收到标签映射消息时,
它也需要在标签转发表中增加相
应的
条目。
这时,
就完成了
LSP
的建立,
接下来就可以对该
FEC
对应的数据分
组进行标签转发。
1.3.5 LDP-
IGP
联动
LDP-IGP
联动是一种通过改变
IGP
发布路由的方式,<
/p>
保证
IGP
和
L
DP
流量一致的
技术。
在存在主备链路的组网中有如下问题:
当主链路发生故障时,
IGP
路由和
LSP
均切换到备份链路上。但当主链路
从故障中恢复时,由
于
IGP
路由比
LDP
收敛速度快,
IGP
会先于
L
DP
切换
回主链路,因此造成
LSP<
/p>
流量丢失。
?
当主链路正常,但主链路节点间的
LDP
会话发生故障时,
IGP
路由仍然使
用主链路,
而主链路的
LSP
被删除。
同时,
由
于备份链路不存在
IGP
路由,
故
p>
LSP
无法在备份链路建立,导致
LSP<
/p>
流量丢失。
?
LDP-IGP
< br>联动的基本原理是:
通过抑制
IGP
发布正常路由,
来保证
LDP
完成
收敛。
也就是在
LSP
发生故障的时候
,
IGP
改变发布路由的方式,以便
L
DP
和
IGP
达到
收敛一致。
LDP-
IGP
联动包括三个定时器:
Hold-down timer
?
Hold-max-cost timer
?
Delay timer
?
LDP-
IGP
联动主要应用于以下场景:
图
1-4 LDP-
IGP
联动需要解决的回切问题
如
图
1-4
所
示,
在存在主备链路的组网中,
当主链路故障恢复后,
流量从
备份链路切换到主链路。
但是如果当
p>
IGP
收敛之后,
原来的
< br>LSP
路径无法
再被使用时,新的
LSP
还没有建立,则在这个时间差内,流量被丢弃。在
这种
情况下,
可以通过配置
LDP-IGP
联动,
令
IGP
推迟路由的回切,
p>
直至
LDP
完成收敛。即在新的
LSP
没有收敛时,保持原来的
LSP
,让流量继续
从原来的
LSP
路径转发,直至新的
LSP
建立成功,再删除原来的
LSP
。具
体过程如下:
1.
链路故障恢复;
2.
LSR2
与
LSR3
之间建立
LDP
会话,同时
IGP
抑制邻居关系的建立;
3.
流量仍然会
按照原来的
LSP
转发;
4.
LDP
会话建立,交换标签消息,通告
IGP
启动同步;
5.
IGP
启动邻居关系建立,
IGP
收敛到主链路上,
p>
LSP
重新建立并下
发转发表(一般在毫秒
级)。
?
当主链路节点间的
LDP
会话发生故障时,主链路上的
LSP
被删除,但是
IGP
仍然使用主链路,
导致
LSP
流量
不能切换到备份链路,
流量持续丢失。
在这种情况下,可以配置
LDP-IGP
联动。在
LDP
会话发生故障时,
LDP
向
< br>IGP
通告
LDP
会话故障,这
样
IGP
就会在该链路上发布最大开销值,实现
路由切换至备份链路,从而
LSP
也切换至备份链路,
具体过程如下:
1.
主链路节点间
LDP
会话故障;
< br>
?
2.
LDP
通告
IGP
主链路会话故障,
IGP<
/p>
在主链路发布最大开销值;
3.
IGP
路由切换至备份链路;
4.
LSP
在备份链路重新建立并下发转发表项。
为防止
LDP
会话一直不能重新建立,
可通过配置
Hold-max-cost
定时器为
永久发布最
大开销值,
使流量在主链路的
LDP
会
话重新建立之前,
一直都
使用备份链路。
1.3.6 LDP GR
LDP
GR
(
Graceful
Restart
)是借助邻居设备(
Helper
)的帮助,实现主备倒换
或协议重启的设备(
< br>Restarter
)转发不中断。
< br>在没有
GR
能力的情况下,
发生
主备倒换时,
邻居会因为会话进入
Down
状态而删
除
LSP
,
产生流量短时间中断、
业务短时间中断。
对于以上情
况,
如果配置了
LDP
GR
能力,可以保证意外主备倒换或者协议重启前后的标签保持一致,即保持了
MPLS
转发不中断。具体过程如
图
1-5
所示:
1.
主备倒换前,
< br>LDP
邻居在建立
LDP
会话时
进行
GR
能力协商。
2.
Helper
< br>感知到
Restarter
进行主备倒换或者
LDP
协议重启后,启动
GR
< br>Reconnect
定时器,在该定时器超时前保留
Re
starter
相关的转发表项。
其中转发不中断的前提是
p>
Restarter
保留了
MPLS
转发表项。
3.
如果在
Helper
的
GR Reconnect
定时器超时前
Restar
ter
和
Helper
之间
的
LDP
会话重建完成,则
Helper
会删除
GR
Reconnect
定时器,并启动
GR
Recovery
定时器。
4.
在
He
lper
的
GR
Recovery<
/p>
定时器超时前,
Helper
会协助
p>
Restarter
恢复
转发表项,
Restarter
也会协助
Helper<
/p>
恢复转发表项,该定时器超时后,
Helper
< br>会删除所有未恢复的与
GR
Restarter
相关的转发表项。
5.
与此同时,
Restarter
进行主备倒换或者协议重启后,
会启动
Forwarding
State Holding
定时器。该定时器超时前,
Restarter
保留重启前的转发
表项,
并在
Help
er
的协助下进行转发表项的恢复工作。
该定时器超时后,
p>
Restarter
将删除所有未恢复的转发表项。
图
1-5 LDP
GR
实现原理
1.3.7 LDP FRR
LDP
FRR
(
Fast Re-Route
)为
MPLS
网络提供快速重路由功能,实现了本地的端
口备份。
LDP
FRR
原理是通过
LDP
信令的
Liberal
标签保持方式,先获取
Lib
eral
Label
,
为该标签申请
转发表项资源,
并将转发信息下发到转发平面作为主
LSP
p>
的备用转
发表项。当接口故障(接口自己感知或者结合
BFD
检测)或者主
LSP
不通(结合
BFD
检测)
时,
可以快速的将流量切换至备份路径,
从而实现了对主
LSP
的保护。
因为
LDP
p>
FRR
生成的备用转发表项依附于主
LSP
,
所以
LDP
FRR
没有回切的概念。
手动配置的
LDP
FRR
需要使用命令来指定建立的备份
LSP
的出接口和
下一
跳。当
Liberal
Labe
l
的来源匹配指定的出接口和下一跳的时候,就能够
建立备份<
/p>
LSP
并下发转发表项。
?
LDP Auto
FRR
依赖
IP
FRR
的实现。只有
Liberal Label
的来源匹配存在
的备份路由,即保留的
Libera
l
Label
来自备份路由出接口和下一跳,并
且满足备份
LSP
触发策略,
同时没有根据该备份路由手工配置的备份
LSP
存在的时候,
才能够为之建立备份
LSP
并下发转发表项。
< br>LDP Auto FRR
策略默认是
32
位的备份路由触发
LDP
建立备份
< br>LSP
。
在手工配置的
LDP
FRR
和
LDP
Auto
FRR
同时满足创建条件的
时候,
优先建立手工配置的
LDP
FRR
。
?
应用场景