zoukankan      html  css  js  c++  java
  • 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命令

  • 相关阅读:
    Pycharm的快捷键
    【Python】笔记1:Spyder常用快捷键
    npm常用命令整理
    MVC4 IIS7.5 403.14错误的解决办法
    AO 获取系统自带的工具条
    CentOS 7.3下安装Redis
    CentOS 7.3下安装MySql
    安装sql server 2005时出现“安装汇编”错误的解决办法
    解决IIS下localhost访问需要输入用户名和密码的问题
    不断沟通,反复确认
  • 原文地址:https://www.cnblogs.com/PBDragon/p/13460642.html
Copyright © 2011-2022 走看看