MPLS LDP协议
作者:互联网
一、LDP 协议
LDP(Label Distribution Protocol,标签分发协议),应用于MPLS网络,具有配置简单、可提供路由拓扑驱动建立LSP、支持大容量LSP等优点。
LDP的工作需要依靠底层的IGP协议。是MPLS的一种控制协议,LDP通过Hello报文发现邻居,并且基于TCP建立邻居间的会话,能够动态地为FEC分配标签,并建立LSP(Label Switched Path,标签交换路径)。
二、LDP对等体及LDP会话
LDP对等体
LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签信息的两个LSR。LDP对等体通过它们之间的LDP会话获得对方的标签映射,LDP对等体也称为LDP邻居。
LDP会话
本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的。(如图:R1和R2、R2和R3、R3和R4)
远程LDP会话(Remote LDP Session):建立会话的两个LSR之间可以是直连的,也可以是非直连的。(如图:R2和R4)
三、LDP四种报文类型
(1)发现(Discovery)报文:用于通告和维护网络中LSR的存在,使用Hello报文。
(2)会话(Session)报文:用于建立、维护和终止LDP对等体之间的会话,如Initialization报文、Keepalive报文。
(3)通告(Advertisement)报文:用于创建、改变和删除FEC的标签映射。
(4)通知(Notification)报文:用于提供建议性的报文和差错通知。
为保证LDP报文的可靠发送,除了Discovery报文使用UDP传输外,LDP的Session报文、Advertisement报文和Notification报文都使用TCP传输。
四、基本概念
4. 1 LSR ID
(1)每一台运行MPLS的LSR必须拥有一个域内唯一的LSR ID。
(2)激活MPLS之前,必须为设备配置 MPLS ID(使用配置命令 mpls lsr-id)。
(3)LSR ID长度为32bit,与IPv4地址的格式相同。
(4)通常情况,我们选择使用Loopback接口地址作为 LSR ID。
4.2 LDP ID
(1)每一台运行了LDP的LSR设备必须拥有LSR ID外,还必须拥有LDP ID。
(2)LDP ID的长度为48bit,由32bit的LSR ID 与 16bit的标签空间标识符(Label Space ID)构成。
(3)LDP ID以 “LSR ID : 标签空间标识” 的形式表示,如 2.2.2.2:0。
(4)标签空间标识一般存存两种形态:
值为0:表示基于设备(或基于平台)的标签空间。
值为1:表示基于接口的标签空间。
4.3 传输地址
(1)互为邻居的LSR需基于双方的传输地址(Transport Address)建立TCP连接。
(2)邻居之间通过Hello报文知晓邻居的传输地址。
(3)在邻居知道了通信双方的传输地址后,邻居之间尝试TCP三次握手(基于传输地址),来交互LDP的初始报文、标签映射报文,这些报文都使用传输地址来通信。
(4)传输地址会被用于邻居间TCP连接,因此LSR必须拥有到达邻居传输地址的路由。
(5)缺省情况下,公网LDP的传输地址等于设备的LSR ID,私网的传输地址等于接口的主IP地址。
(6)在接口视图下,使用mpls ldp transport-address命令,可以修改传输地址。
五、LDP会话建立过程
(1)通过发Hello报文发现邻居。
(2)通过TCP三次握手来创建会话。
六、在MPLS中,运行LDP协议的过程
(1)LSR 首先通过运行IGP协议(如:OSPF、IS-IS)来构建路由表,FIB表。
(2)LDP根据相应的模式,为路由表中的路由前缀(FEC)分配标签。
(3)LDP根据相应的模式,将自己为路由前缀分配的标签,通过LDP通告给LDP邻居。
(4)LSR将自己为路由前缀分配的标签,以及LDP邻居为路由前缀通告的标签存储起来,并形成关联。
(5)当LSR转发到达目的网络的标签时,所使用的出站标签总是下游LDP邻居所通告的标签(即设备到达目的网络的下一跳设备)。
七、隐定空标签、PHP特性
PHP(Penultimate hop popping,次末跳弹出);值为3的标签,被称为隐式空标签(Implicit Null Label)。
(1)倒数第地跳LSR进行标签交换时,如果发现交换后的标签值为3,则将标签弹出,并将报文直接发给最后一跳,最后一跳收到报文直接进行IP转发或下一层标签转发。
(2)MPLS标签在LSP的最后一跳是没有使用价值的,因此可以在倒数第二跳就弹出MPLS标签,从而提升转发效率。
八、显示空标签
为了保证端到端的Qos信息不丢失,在配置MPLS Qos的应用时,需要配置 label advertise explicit-null,使LSR设备在给最后一跳设备传值时,使用的是显示空标签。标签值为特殊的值:0。
九、LDP的基础配置
(1)在R1、R2、R3、R4上运行OSPF,实现全网互通。
(2)在RR1、R2、R3、R4上激活MPLS及LDP,设备的Loopback 0接口作为LSR ID。
(3)R1的配置如下(R2、R3、R4配置类拟):
[R1] mpls lsr-id 1.1.1.1 //配置lSR-ID
[R1] mpls ldp //激活全局ldp功能
[R1-ldp] lsp-trigger all //配置LSP触发策略
[R1] int gi0/0/0
[R1-Gi0/0/0] mpls en //在接口激活mpls
[R1-Gi0/0/0] mpls ldp en //激活ldp功能
九、相关命令
dis mpls ldp peer //查看LDP的邻居
dis mpls interface //查看MPLS的接口信息
dis mpls ldp interface //查看LDP的接口信息
dis mpls lsp //查看MPLS的LSP路径
dis mpls lsp ver //查看MPLS的LSP路径详细
dis mpls ldp lsp //查看LDP的LSP路径
[mpls] label advertise { explicit-null | implicit-null | non-null } //分别对应显示空标签、隐式空标签、正常标签
ping lsp //ping命令
tracert lsp //tracert命令
标签:协议,标签,报文,MPLS,LDP,LSR,ID 来源: https://www.cnblogs.com/PBDragon/p/13460642.html