HCIP-17.1.7 LDP标签分发原理(下)

数通

一、标签的发布方式

6.22-6

标签的发布方式:

(1)DU(Downstream Unsolicited,下游自主方式):对于一个到达同一目的地址报文的分组,LSR无需从上游获得标签请求消息,即可进行标签分配与分发。

(2)DoD(Downstream on Demand,下游按需方式):对于一个到达同一目的地址报文的分组,LSR获得标签请求消息之后,才进行标签分配与分发。

华为设备默认Du方式,Du无需等待上游的请求消息,可以直接向邻居分配标签。在网路拓扑发生变化时,采用DU方式可以快速反应为新的拓扑分发标签,收敛时间相比DoD方式短。

二、标签的分配控制方式

763

标签的分配控制方式:

(1)Independent(独立标签分配控制方式):本地LSR可以自主的分配一个标签绑定某个IP分祖,并通告给上游LSR,无需等待下游的标签。

(2)Ordered(有序标签分配控制方式):只有当LSR已经具有此IP分组的下一跳的标签,或者该LSR是该IP分组的出节点时,该LSR才可以向上游发送此IP分组的标签。

采用Order方式,只有当LSR已经具有此IP分组的下一跳的标签时,才向上游分发标签,这样是为了避免下游IP分组的标签未分配或收敛时间较长,上游的标签已分配,数据开始转发造成的数据丢失。

三、标签的保持方式

image-20241024115210220

标签的保持方式:

  • Liberal(自由标签保持方式):对于从邻居LSR收到的标签映射,无论邻居LSR是不
    是自己的下一跳都保留。
  • Conservative(保守标签保持方式):对于从邻居LSR收到的标签映射,只有当邻居
    LSR是自己的下一跳时才保留。

当网络拓扑变化引起下一跳邻居改变时:

  • 使用自由标签保持方式,LSR可以直接利用原来非下一跳邻居发来的标签,迅速重建LSP,但需要更多的内存和标签空间。
  • 使用保守标签保持方式,LSR只保留来自下一跳邻居的标签,节省了内存和标签空间,但LSP的重建会比较慢。

* 华为设备默认采用自由标签保持方式

四、LDP建立LSP过程

589

  • IGP协议负责实现MPLS网络内路由可达,为FEC的分组提供路由。
  • LDP协议负责实现对FEC的分类,标签的分配,以及LSP的建立和维护等操作。

如图所示拓扑,LDP动态建立LSP的过程如下:

  • RTD上存在100.1.1.1/32的主机路由,因为RTD是Egress节点,所以直接向自己上游邻居RTC发布100.1.1.1/32与标签的绑定关系。
  • RTC收到下游邻居RTD分配的100.1.1.1/32与标签的绑定关系后,将标签记录在自己的LIB表中,并向上游邻居RTB发布100.1.1.1/32与标签的绑定关系,同时RTC查看自己IP路由表中到达100.1.1.1/32的下一跳是否为RTD,如果IP路由表中下一跳为RTD,则RTC使用RTD分配的标签封装到达100.1.1.1/32的数据;如果IP路由表中的下一跳不是RTD,则RTC保留RTD分配的标签作为备用标签。(Liberal 自由标签保持方式)
  • RTB收到下游邻居RTC分配的100.1.1.1/32与标签的绑定关系后,执行与RTC相同的动作。
  • RTA收到下游邻居RTB分配的100.1.1.1/32与标签的绑定关系后,查看自己IP路右边中到达100.1.1.1/32的系一条是否为RTB,如果IP路由表中的下一跳为RTB,则RTA使用RTB分配的标签封装到达100.1.1.1/32的数据;如果IP路由表中的下一跳不是RTB,则RTA保留RTB分配的标签作为备用。因为RTA是Ingress,最终到达100.1.1.1/32的LSP完成建立

配置LDP命令:

mpls lsr-id x.x.x.x   # 配置本节点的lsr id
mpls    # 全局使能mpls,并进入mpls视图
 mpls ldp # 使能ldp功能,并进入mpls-ldp视图
 #
int g0/0/0  # 进入需要建立LDP会话的接口视图
 mpls    # 使能接口的mpls功能
 mpls ldp   # 使能接口的mpls ldp功能

五、MPLS数据转发过程

499

如图所示拓扑,MPLS数据转发过程如下:

  • RTA上收到访问100.1.1.1/32的数据包,如果数据包为普通的IP报文,则查找FIB表,因为Tunnel ID为非 0x0,封装已分配的标签1027进行MPLS转发,如果数据包为带标签的报文,则查找LFIB表,封装已分配的1027进行MPLS转发。
  • RTB收到RTA发送的带标签1027的报文,查找LFIB表,封装已分配的出标签1026进行MPLS转发给RTC。
  • RTC收到RTB发送的带标签1026的报文,查找LFIB表,封装已分配的出标签1025进行MPLS转发给RTD。
  • RTD收到RTC发送的带标签1025的报文,查找LFIB表,出标签为NULL,表明数据已经到达Egress节点,所以路由器将数据包标签信息去掉,并对数据包进行三层处理,查找IP路由表发现100.1.1.1/32的路由为自己本地的路由,根据IP路由表中的出接口进行IP数据包封装并转发

如果MPLS网路中的业务量很大,则每次数据包在Egress节点都要进行两次处理才能进行正确的路由转发,这样会导致Egress节点的处理压力增加,路由器的处理性能降低。我们希望Egress节点上只处理一次就能将数据包正确转发,以提高Egress的转发性能,所以提出了PHP技术。

六、Penultimate Hop Popping

6.22-12

PHP(Penultimate Hop Popping,倒数第二跳弹出)具体过程如下:

  • RTC收到RTB发送的带标签1026的报文,查找LFIB表,发现分配的出标签为隐式空标签3,于是执行弹出标签的动作,并将IP数据包转发给下游路由器RTD。
  • RTD收到RTC发送的IP报文,直接查找自己的FIB表,根据FIB表中的出接口进行IP数据的封装并转发。