ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MPLS LDP协议

2020-08-18 23:31:17  阅读:379  来源: 互联网

标签:协议 标签 报文 MPLS LDP LSR ID


一、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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有