30、MPLS LDP

LDP基本概念

LSR之间可以运行标签分发协议(Label Distribution Protocol,LDP)来告知其他LSR本设备上的标签绑定信息,从而实现标签报文的正确转发。

LDP是MPLS的一种控制协议,相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。

LDP的工作过程主要分为两部分:

  1. LSR之间建立LDP会话。
  2. LSR之间基于LDP会话动态交换标签与FEC的映射信息,并根据标签信息建立LSP。

image-20250329092211055

下游设备向上游设备发送自己的入标签信息,上游设备收到后,自然就知道需要发给下游设备时的出标签需要为,下游设备的入标签。

上游:信息流的起始方向。

下游:信息流的终点方向。

会话建立

LSR之间交互标签绑定消息之前必须建立LDP会话。LDP会话可以分为:

  • 本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的;
  • 远程LDP会话(Remote LDP Session):建立会话的两个LSR之间可以是直连的,也可以是非直连的。

两台LSR之间交互Hello消息之后,即建立起邻接体(Adjacency)关系;

交互LDP会话消息,建立起LDP会话,两台设备之间形成LDP对等体关系:

LSR ID与LDP ID

每一台运行了LDP的SR除了必须配置LSR ID,还必须拥有LDP ID。

LDP由LSR ID+标签空间标识符构成。例如2.2.2.2:0

标签空间标识一般存在两种形态:

  • 值为0:表示基于设备(或基于平台)的标签空间;
  • 值非0:表示基于接口的标签空间。

image-20250329092853202

目前学的,均使用基于设备(或基于平台)的标签空间。

LDP消息

运行LDP协议的LSR之间通过交换LDP消息来实现邻居发现、会话建立与维护以及标签管理等功能。

image-20250329093225774

LDP报文封装

image-20250329093519220

LDP工作原理

LDP会话建立

LDP使用5种状态描述LDP会话状态机。

image-20250329093641968

发现阶段与TCP连接建立阶段

Hello包UDP646端口,IP组播224.0.0.2。

image-20250329094135500

根据抓包结果:Hello包的UDP报文中,源和目的端口都是646

后续的TCP报文,是主动方通过随机端口发送给被动方的TCP646端口,建立TCP连接并保持LDP会话。

LDP会话建立与保持

缺省情况下,公网的LDP传输地址等于设备的LSR ID,私网的传输地址等于接口的主IP地址。

image-20250329095310630

LDP邻居状态

image-20250329095352961

LDP会话状态

image-20250329112557291

标签的发布和管理

在MPLS网络中,下游LSR决定标签和FEC的绑定关系,并将这种绑定关系发布给上游LSR

LDP通过发送标签请求和标签映射消息,在LDP对等体之间通告FEC和标签的绑定关系来建立LSP标签的发布和管理由标签发布方式、标签分配控制方式和标签保持方式来决定。

image-20250329095748098

DU下游自主模式:下游自动将标签信息发送给上游

DoD下游按需模式:上游请求了,下游才发

Independent独立模式:即使本设备上没有标签映射,也可以自己产生一个标签信息,并向上游发送。

例如,下图中,R3没有到达4.0网段的这个FEC下一条的标签映射,仍然可以向上游通告。

image-20250329100452090

Ordered有序模式:只有当该LSR已经具有此FEC下一跳的标签映射消息、或者该LSR就是此FEC的出节点时,该LSR才可以向上游发送此FEC的标签映射。

image-20250329100412399

Liberal自由模式:对于从邻居收到的标签映射,无论邻居是否时自己的下一跳都保留。

image-20250329100913231

Conservative保守模式:只有当邻居时自己的下一跳时才保留。

image-20250329101012203

PHP特性

PHP(Penultimate Hop Popping,次末跳弹出),如果激活了PHP特性,那么egress节点在为本地路由分配标签的时候,会分配一个特殊标签3,该标签被称为隐式空标签(Implicit NULL Label)。

当LSR转发一个标签报文时,如果发现对应的出标签值为3,则LSP会将栈顶标签弹出,并将里面所封装的数据转发给下游LSR。

image-20250329101212714

隐式空标签于显式空标签

缺省情况下,Egress节点向倒数第二跳分配隐式空标签(implicit-null),即特殊标签3。

但在部署QoS的场景下,标签被弹出后,其中的优先级也会一并丢失。

image-20250329101332845

显式空标签机制,Egress节点向倒数第二跳分配特殊标签0

R3在转发标签报文时,若出标签封装为0,则不会将标签头部弹出,标签头部中的QoS信息得以保存。R4在收到带0标签的报文的时候,直接弹出标签,不用去查找ILM表项

缺省情况下,Egress?分配的是隐式空标签。

image-20250329101430326

LDP工作过程概述

  1. LSR首先通过运行IGP协议(例如OSPF、IS-IS等)来构建路由表、FIB表;
  2. LDP根据相应的模式,为路由表中的路由前缀(FEC)分配标签;
  3. LDP根据相应的模式,将自己为路由前缀分配的标签,通过LDP标签映射报文通告给LDP邻居;
  4. LSR将自己为路由前缀分配的标签,以及LDP邻居为该路由前缀通告的标签存储起来,并与出接口、下一跳地址等信息形成关联(标签转发表项);
  5. 当LSR转发到达目的网络的标签报文时,所使用的出站标签总是下游LDP邻居所通告的标签,此处所指的下游邻居,是设备的路由表中到达该目的网络的下一跳设备。

LDP基本配置命令

image-20250329102120906

缺省情况下,根据32位地址的IP路由出发LDP建立LSP。也就是说,默认情况下,display mpls lsp看到的就都只有主机路由的lsp。

image-20250329102212568

image-20250329102449448

配置案例

# 配置lsr-id
mpls lsr-id 1.1.1.1
# 使能mpls
mpls
# 使能mpls ldp	(全局或mpls视图下都可)
mpls ldp
# 在接口下使能mpls和mpls ldp
mpls
mpls ldp

image-20250329112855823

路由器之间跑ospf,并把环回口也加入到ospf,保证各网段路由可达。

思考题

image-20250329113426729

  1. C

  2. B

image-20250329113507997

posted @ 2025-05-28 12:16  最爱喝开水  阅读(137)  评论(0)    收藏  举报