MPLS——LDP协议(工作过程、标签发布和管理方式)

目录

建立LSP的两种方式

静态LSP

动态LSP

LDP协议

LDP动态建立LSP涉及的基本概念

LDP工作过程——三个阶段、四种消息类型、五种状态

LDP建立LSP

LDP标签发布和管理

PHP


建立LSP的两种方式

LSP是MPLS报文在MPLS网络中转发时经过的路径(数据转发路径),建立LSP主要有两种方式,静态手工建立LSP和LDP协议动态生成LSP

静态LSP

静态LSP是管理员通过手工方式为各个FEC(转发等价类)分配标签而建立的,不需要标签分发协议参与,也不需要IP路由参与(但是需要通过IP路由实现MPLS网络内三层互通),资源消耗比较小,适用于拓扑结构简单并且稳定的网络

对于不同的节点配置不同的标签

(Ingress)入节点:只需要配置出标签,需要指定LSP的目的IP地址和下一跳

(Transit)中间节点:需要同时配置入标签和出标签,需要配置入接口和入标签

(Egress)出节点:只需要配置入标签,需要配置入接口

注意LSP是单向的,要实现源和目的都通过标签相互通信,需要分别以两端LER位出节点创建双向的LSP

MPLS——LDP协议(工作过程、标签发布和管理方式)_第1张图片

动态LSP

通过标签分发协议(LDP、MP-BGP、RSVP-TE等)动态建立,同时需要IP路由参与,按照路由路径在相邻节点间彼此交换针对具体FEC的MPLS标签

标签发布协议

LDP

LDP是专为标签发布而制定的协议,根据IGP和BGP对应的IP路由信息以逐跳方式建立LSP,为其路由分配标签

MP-BGP

MP-BGP是在BGP协议基础上扩展的协议,支持为MPLS VPN业务中私网路由和跨域VPN的标签路由分配BGP LSP标签

RSVP-TE

RSVP-TE(资源预留协议流量工程)是对RSVP的扩展,用于建立基于约束路由的LSP,具有发布带宽预留请求、带宽约束、链路颜色和显式路径等功能


LDP协议

通过LDP协议建立动态LSP,实现对FEC的分类、标签的分配以及LSP的建立和维护等操作。

特点

  • 组网配置简单,易于维护和管理
  • 基于路由动态建立LSP,网络拓扑发生变化时,能及时反映网络状况
  • LDP协议需要IGP协议配合使用
  • LDP使用UDP和TCP两种承载协议,端口号都为646(其中Hello报文基于UDP,其余报文基于TCP)

LDP动态建立LSP涉及的基本概念

LDP邻接体

当一台LSR接收到对端LSR发送到Hello消息后,两端之间就建立了LDP邻接体关系

两种类型

  • 本地邻接体:以组播224.0.0.2为目的地址发送Hello消息发现的邻接体
  • 远端邻接体:以单播为目的地址发送Hello消息发现的邻接体(手工指定邻接体)

LDP会话

LDP邻接体建立LDP会话,用于在LSR之间交换标签映射、释放会话等信息

两种类型

  • 本地LDP会话:建立会话的两个LSR之间是直连的本地邻接体关系
  • 远端LDP会话:建立会话的两个LSR之间可以是直连本地邻接关系、也可以是非直连的远端邻接关系

LDP对等体

  • 两个LSR之间存在着LDP会话,可以直接使用LDP来交换标签信息,这两个LSR就为LDP对等体

注意事项

  • 本地LDP会话可以和远端LDP会话共存
  • LDP通过邻接体来维护对等体的存在,对等体的类型取决于维护它的邻接体的类型(如果由本地和远端邻接体共同维护,则对等体类型为本远共存对等体)
  • 一个对等体可以由多个邻接体来维护

LDP工作过程——三个阶段、四种消息类型、五种状态

MPLS——LDP协议(工作过程、标签发布和管理方式)_第2张图片

MPLS——LDP四种消息类型及其报文、五种状态_ldp消息类型_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/127383082?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127383082%22%2C%22source%22%3A%22m0_49864110%22%7D第一阶段——LDP邻接建立(通过Discovery消息类型实现)

接口周期性的发送LDP Hello报文,自动建立邻居并维护邻接关系

周期默认5s,邻居失效时间为15s,DIP为组播(224.0.0.2)/单播,端口为UDP的646端口

第二阶段——LDP会话建立(包含TCP建立和Session消息类型)

LDP邻居之间建立TCP连接

  • Hello报文中会携带传输地址(默认是LSR-ID),可以通过修改为直连接口的IP地址
  • 必须保证传输地址之间路由可达,否则TCP连接无法建立成功
  • 传输地址大的作为主动方,传输地址小的作为被动方
  • 主动方会向被动方发起端口号为646的TCP连接
锐捷配置
mpls ldp discovery transport-address interface   配置直连接口的IP地址作为传输地址

建立LDP会话

  • TCP连接建立成功后,主动方向被动方发起Initialization报文进行参数协商
  • 被动方收到此消息后,如果接受相关参数,则发送Intialization报文和KeepAlive报文回应;如果不能接受相关参数,则发送Notification报文终止LDP会话建立
  • 主动方收到被动方发来的Initialization报文和KeepAlive报文后,如果接受相关参数,则回复KeepAlive报文和Address报文;如果不接受相关参数,则发送Notification报文终止LDP会话建立
  • 当双方都受到对端发来的KeepAlive报文后,LDP会话建立成功

注意:如果双方协商采用的是DU标签发送方式,则在主动端发送了Address报文后,被动端也会发送一个Address报文

第三阶段——标签通告,构建LSP(包含Advertisement消息类型)

  • 主要通过标签映射信息(Label Mapping)来实现标签的学习通告
  • 一个LDP报文可以承载多个标签映射信息
  • 每个标签映射消息主要包含FEC TLC和Label TLV

注意事项

LDP的邻居通过Hello报文维护,LDP会话通过Keepalive报文维护

LDP邻居建立起来后,LDP会话不一定能够建立起来(因为LDP邻居是使用物理接口建立的,会话是使用传输地址建立的)

LDP建立LSP

为哪些路由建立LSP

  • 华为设备上LDP默认只为非物理接口路由(32位路由)触发创建LSP
  • 锐捷路由器会为所有任意网段主机路由产生LSP(不为缺省路由产生LSP)
  • LDP为自己直连非物理接口主机路由作为Egress创建一条LSP
  • LDP对自己非直连的非物理接口主机路由产生作为入节点和中间节点的两条LSP

非物理接口主机路由就指的是Loop Back口(华为设备上当配置了24为Loop地址时,华为还是会生成一条32位的主机路由)  但是传输给邻居的时候还是24位的

华为设备可以通过Lsp-trigger all/host 命令来修改

在不同的节点执行Lps-trigger host命令,配置效果不同

       Ingress节点执行:触发所有的32位路由建立LDP LSP

       Egress 节点执行:触发本地的32位路由建立LDP LSP

LSP建立过程

  • 当边缘节点(Eggress)发现自己的路由表出现了新的主机路由,并且这一路由不属于任何现有的FEC,则该Eggress需要位这一路由建立一个新的FEC
  • 如果此Egress有可供分配的标签,则为FEC分配标签,并主动向上游发出标签映射消息(包含分配的标签和绑定的FEC等信息)
  • 中间节点(Transit)收到标签映射消息后,判断标签映射信息的发送者(Egress)是否为该FEC的下一跳,若是,则在其标签转发表中增加相应的条目,然后主动向上游LSR发送对于指定FEC的标签映射消息
  • 边缘节点(Ingress)收到标签映射消息后,判断标签映射的发送者(Transit)是否为该FEC的下一跳,若是,则在其标签转发表中增加相应的条目。
  • 此时,LSP完成建立,接下来就可以对该FEC对应的数据报文进行标签转发

LDP标签发布和管理

标签如何产生

IN Label  自己产生的标签,发给邻居;Out Label 邻居分配给我的邻居,我拿来用

静态LSP:上游的出标签就是下游的入标签

动态LSP:标签分配的方向是LSP的反方向(即标签分配方向就是路由发布的方向),下游的入标签就是上游的出标签

标签发布方式

下游自主DU:下游LSR不要等上游发请求,直接给上游进行标签发布

下游按需DoD:下游LSR需要等到上游发送的请求后,才会给上游进行标签发布

华为设备默认采用DU发布方式

MPLS——LDP协议(工作过程、标签发布和管理方式)_第3张图片

标签分配控制方式

独立Independent:本地LSR无需等下游的标签,直接给上游发标签

有序Ordered:本地LSR要等待下游分配标签,然后再向上游分标签

华为默认采用有序控制的方式,采用独立标签分配方式可能导致LSP不完整

MPLS——LDP协议(工作过程、标签发布和管理方式)_第4张图片

MPLS——LDP协议(工作过程、标签发布和管理方式)_第5张图片

标签保持方式

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

保守Conservative:对于从邻居LSR收到的标签映射,只有当邻居LSR是自己的下一跳时才保留。

华为默认采用自由的方式,LSP重建比较快

MPLS——LDP协议(工作过程、标签发布和管理方式)_第6张图片

MPLS——LDP协议(工作过程、标签发布和管理方式)_第7张图片

PHP

PHP(Penultimate Hop Popping)全称倒数第二条弹出,为避免边缘路由器Egress同时查找标签表和IP表,负担太大,可以通过PHP技术将标签在倒数第二条发出时弹出,这样边缘路由器Egress就只用处理IP报文了,减轻了负担

具体做法

当倒数第二个路由器收到带标签的报文后,查找FIB表,发现邻居分配给自己的标签为隐式空标签3(implicit-null),直接将标签3弹出,不压入标签,将报文从相应接口转发给出节点

Egress收到报文发现是IP报文,直接按照IP信息转发

显式空标签

可以通过命令 label advertise explicit-null 分配显示空标签0

当倒数第二个路由器收到带标签的报文后,查找FIB表,发现邻居分配给自己的标签为显式式空标签0,则将0标签正常压入标签栈顶,转发给出节点

Egress收到的是标签报文,检查到报文标签是0,不查找ILM表,直接将0标签弹出,再根据IP首部信息决定报文走向

注意事项

只会为本地的直连路由分配POP标签

以上都是在标签只有一层的前提下可以实现的

收到3的标签不一定弹出,只有收到后使用标签3才会弹出

你可能感兴趣的:(#,路由交换协议理论讲解,网络,网络协议,MPLS,运维)