MPLS LDP原理与配置

1.LDP基本概念
(1)LDP协议概述

(2)LDP会话、LDP邻接体、LDP对等体

(3)LSR ID 与LDP ID

(4)LDP消息

⦁    按照消息的功能,LDP消息一共可以分为四大类型:发现消息(Discovery Message),会话消息(Session Message),通告消息(Advertisement Message)和通知消息(Notification Message)。
⦁    发现消息:用来宣告和维护网络中一个LSR的存在;用于通告和维护网络中LSR的存在,如Hello报文。
⦁    会话消息:用于建立、维护和终止LDP对等体之间的会话,如Initialization报文、KeepAlive报文。
⦁    通告消息:用来生成、改变和删除FEC的标签映射;
⦁    通知消息:用来宣告告警和错误信息。
⦁    LDP消息承载在UDP或TCP之上,端口号均为646 。其中发现消息用来发现邻居,承载在UDP报文上。其他消息的传递要求可靠而有序,所以LDP使用TCP建立会话,会话、通告和通知消息都基于TCP传递。

(5)LDP报文封装

⦁    LDP头部长度为10Byte,包括Version,PDU Length和LDP Identifier三部分。
⦁    Version占用2Byte,表示LDP版本号,当前版本号为1。
⦁    PDU Length占用2Byte,以字节为单位表示除了Version和PDU Length以外的其他部分的总长度。
⦁    LDP Identifier,即LDP ID,长度6Byte,其中前4Byte用来唯一标识一个LSR,后2Byte用来表示LSR的标签空间。
⦁    LDP消息包含五个部分。
⦁    U占用1个bit,为Unknown Message bit。当LSR收到一个无法识别的消息时,该消息的U=0时,LSR会返回给该消息的生成者一个通告,当U=1时,忽略该无法识别的消息,不发送通告给生成者。
⦁    Message Length占用2个bytes,以字节为单位表示Message ID、Mandatory Parameters和Optional Parameters的总长度。
⦁    Message ID占用32个bit,用来标识一个消息。
⦁    Mandatory Parameters和Optional Parameters分别为可变长的该消息的必须的参数和可选的参数。
⦁    Message Type表示具体的消息类型,目前LDP定义的常用的消息有Notification,Hello,Initialization,KeepAlive,Address,Address Withdraw,Label Mapping,Label Request,Label Abort Request,Label Withdraw,Label Release。

2.LDP工作原理
(1)LDP会话状态机

LDP Session协商过程可以通过状态机来描述。如图所示,有5种状态。分别是Non-Existent,Initialized,OpenRec,OpenSent,Operational。
Non-Existent状态:该状态为LDP Session最初的状态,在此状态双方发送HELLO消息,选举主动方,在收到TCP连接建立成功事件的触发后变为Initialized状态。
Initialized状态:该状态下分为主动方和被动方两种情况,主动方将主动发送Initialization消息,转向OpenSent 状态,等待回应的Initialization消息;被动方在此状态等待主动方发给自己的Initialization消息,如果收到的Initialization消息的参数可以接受,则发送Initialization和KeepAlive转向OpenRec状态。主动方和被动方在此状态下收到任何非Initialization消息或等待超时时,都会转向Non-Existent状态。
OpenSent 状态:此状态为主动方发送Initialization消息后的状态,在此状态等待被动方回答Initialization消息和KeepAlive消息,如果收到的Initialization消息中的参数可以接受则转向OpenRec状态,如果参数不能接受或Initialization消息超时则断开TCP连接转向Non-Existent状态。
OpenRec状态:在此状态不管主动方还是被动方都是发出KeepAlive后的状态,在等待对方回应KeepAlive,只要收到KeepAlive消息就转向Operational状态;如果收到其它消息或KeepAlive超时则转向Non-Existent状态。
Operational状态:该状态是LDP Session成功建立的标志。在此状态下可以发送和接收所有其它的LDP消息。在此状态如果KeepAlive超时或收到致命错误的Notification消息(Shutdown消息)或者自己主动发送Shutdown消息主动结束会话,都会转向Non-Existent状态。
LDP状态切换信息可以通过指令debug mpls ldp session看到。

(2)LDP会话建立 - 发现阶段与TCP连接建立

除了基本发现机制外,可以通过拓展发现机制发现非直连的远端邻接体,该内容不属于课程的重点,详细内容可以查阅RFC5036相关内容。
LDP的传输地址用于与邻居建立TCP连接。
两台LSR之间在建立LDP会话之前,需要先建立TCP连接,以便进行LDP协议报文的交换。
设备的传输地址被包含在LDP Hello报文中,LSR通过Hello报文知晓邻居的传输地址。
在使用Hello报文发现邻居并且知道了对方的传输地址后,邻居之间就会开始尝试TCP三次握手(基于传输地址),并且交互LDP的初始化报文、标签映射报文等,这些报文都使用双方的传输地址作为源、目的IP地址。
LSR必须拥有到达邻居的传输地址的路由。
缺省情况下,公网的LDP传输地址等于设备的LSR ID,私网的传输地址等于接口的主IP地址。
在接口视图下,使用mpls ldp transport-address命令,可以修改传输地址。

(3)LDP会话建立-会话建立与保持

(4)LDP邻居状态

(5)LDP会话状态

LDP会话的状态:
NonExistent:表示LDP会话的最初状态。在此状态双方互相发送Hello消息,在收到TCP连接建立成功事件的触发后变为Initialized状态。
Initialized:表示LDP会话处于初始化状态。
Open Sent:表示LDP会话进入初始化状态后,主动方给被动方发送了Initialized消息,并等待对方的回应。
Open Recv:表示LDP会话进入初始化状态后,当双方都收到了对方发送的KeepAlive消息后,LDP会话进入Operational状态。
Operational:表示LDP会话建立成功。

3.LDP标签分发
(1)标签的发布和管理

(2)上游与下游

(3)标签发布模式-DU模式

标签分配:LSR从本地标签空间中取出一个标签与FEC绑定。
标签分发:LSR将标签与FEC的绑定关系通知给上游LSR。
标签发布方式为DU时,系统默认支持LDP为所有对等体分标签,即每个节点都可以向所有的对等体发布标签映射关系,不再区分上下游关系。因为在只给上游对等体分标签情况下,发送标签映射消息的时候,要根据路由信息对会话的上下游关系进行确认。

(4)标签发布方式-DOD模式

只有上游邻居向自己请求标签映射时,LSR才会通告标签映射给该邻居

(5)标签分配控制方式-独立模式

标签分配控制方式需要与标签发布方式结合使用:
在使用DU作为标签分发方式的情况下,如图所示,R2和R3对192.168.4.0/24这条FEC,可以在上游LSR无请求,且自身没有收到下游LSR的标签绑定信息的情况下,主动向上游LSR通告标签绑定信息。
采用DoD作为标签发布方式时,如图所示,R2和R3对192.168.4.0/24这条FEC,只要收到上游LSR的标签请求消息,可以在自身没有收到下游LSR的标签绑定信息的情况下,向上游LSR通告标签绑定信息。

(6)标签分配控制方式-有序模式

当标签控制方式为Ordered,只有当LSR收到特定FEC下一跳发送的特定FEC标签映射消息或者LSR是LSP的出口节点时,LSR才可以向上游发送标签映射消息。
当标签分发方式为DU时,如图所示,对于192.168.4.0/24这条FEC,不论上游LSR是否有请求,必须收到下游LSR对此FEC的标签绑定信息才向上游LSR发布标签绑定信息,所以必须由Egress LSR,也就是R4作为LSP建立的“起点”。
当标签发布方式采用DoD时,如图所示,对于192.168.4.0/24这条FEC,只有收到上游LSR请求的请求,且自身已经收到下游LSR的标签绑定信息的情况下,才向上游LSR通告标签绑定信息。因此,必须由Ingress LSR(R1)发起请求,逐跳请求到Egress LSR(R4),最终由R4开始,向上游建立LSP。

(7)标签保留-自由模式

当基于IP网络部署MPLS时,LSR根据IP路由表判断接收到的标签映射是否来自下一跳。
Liberal方式的最大优点在于路由发生变化时能够快速建立新的LSP进行数据转发,因为Liberal方式保留了所有的标签。缺点是需要分发和维护不必要的标签映射。
DU标签分发方式下,如果采用Liberal保持方式,则R3保留所有LDP邻居 R2和R5发来的关于192.168.1.0/24这个FEC的标签,无论该R2和R5是否是IP路由表中到达192.168.1.0/24的下一跳。
DoD标签分发方式下,如果采用Liberal保持方式, LSR会向所有LDP邻居请求标签。但通常来说,DoD分发方式都会和Conservative保持方式搭配使用。

(8)标签保留-保守模式

Conservative方式的优点在于只需保留和维护用于转发数据的标签,以达到节约标签的目的。
当使用DU标签分发方式时,LSR可能从多个LDP邻居收到到同一网段的标签映射消息,如图中R3会分别从R2和R5收到网段192.168.1.0/24的标签映射消息。如果采用Conservative保持方式,则R3只保留下一跳R2发来的标签,丢弃非下一跳R5发来的标签。
当使用DoD标签分发方式时, LSR根据路由信息只向它的下一跳请求标签。
当网络拓扑变化引起下一跳邻居改变时:
使用自由标签保持方式,LSR可以直接利用原来非下一跳邻居发来的标签,迅速重建LSP,但需要更多的内存和标签空间。
使用保守标签保持方式,LSR只保留来自下一跳邻居的标签,节省了内存和标签空间,但LSP的重建会比较慢。
保守标签保持方式通常与DoD方式一起,用于标签空间有限的LSR。

(9)PHP特性

在标签发布时,R3为作为192.168.3.0/24这条FEC的Egress LSR。分配标签时,R3为该FEC分配了标签3,并将该标签绑定信息通告给R2。
在数据转发时,R2作为到达192.168.3.0的次末跳(倒数第二跳),发现出标签值为3,于是将标签头部弹出,将IP报文转发给R3,而R3则仅需执行一次查询操作(查询FIB表)即可获得相应的转发信息,转发效率得到了提升。

(10)隐式空标签与显式空标签(1)

(11)隐式空标签与显式空标签(2)

在MPLS视图下,执行命令label advertise { explicit-null | implicit-null | non-null },配置向倒数第二跳分配的标签。
根据参数的不同,可以配置Egress向倒数第二跳分配不同的标签。
缺省情况下,使用的是implicit-null,Egress向倒数第二跳节点分配隐式空标签,值为3。
如果配置的是explicit-null,Egress节点向倒数第二跳分配显式空标签,值为0。当需要支持MPLS QoS属性时,可以选用explicit-null。
如果配置的是non-null,Egress向倒数第二跳正常分配标签,即分配的标签值不小于16。

4.LDP工作过程详解
(1)组网介绍

华为设备目前缺省模式为下游自主方式(DU)+ 有序标签分配控制方式(Ordered)+ 自由标签保持方式(Liberal)。
对于从R1进入,到达192.168.4.0/24的数据,R1为Ingress LSR,R4为Egress LSR。

(2)标签分发-Egress LSR

注:缺省情况下,根据32位的主机IP路由触发LDP建立LSP。可以通过手工配置触发非32位路由的LSP建立。

(3)标签分发-Transit LSR

注:当R2发生故障时,OSPF路由将会重新收敛,此时R1的路由表中192.168.4.0/24路由的下一跳将会切换至R3,此时R1将启用R3所通告的、关于192.168.4.0/24的标签。

(4)标签分发-Ingress LSR

当R1收到发往192.168.4.1的IP报文时,首先在其FIB表中查询该目的IP地址,它发现所匹配的表项的Tunnel ID为非0,因此继续在NHLFE中查询该Tunnel ID,然后意识到需要将对该IP报文压入标签并进行标签转发,出接口为GE0/0/0、下一跳为R2、出站标签为1021,于是为报文插入标签头部并转发出去。

下一跳标签转发项(Next Hop Label Forwarding Entry) 下一跳标记转发入口NHLFE

(5)标签转发-Igress LSR

当R1收到发往192.168.4.1的IP报文时,首先在其FIB表中查询该目的IP地址,它发现所匹配的表项的Tunnel ID为非0,因此继续在NHLFE中查询该Tunnel ID,然后意识到需要将对该IP报文压入标签并进行标签转发,出接口为GE0/0/0、下一跳为R2、出站标签为1021,于是为报文插入标签头部并转发出去。

(6)标签转发-Transit LSR

当R2收到携带1021标签的标签报文时,查询ILM,根据ILM对应到NHLFE中的表项。于是,R2对该标签报文通过swap操作将标签更换为1041,并从相应的接口转发出去。

(7)标签转发-Engress LSR

当R4收到携带1041标签的标签报文时,查询ILM,根据ILM查询到操作为Pop。于是,R4对该标签报文通过Pop操作将最外层标签剥离,此时该报文已经变成了标准IP报文,R4将对该IP报文执行标准的IP转发流程。
R4在转发该报文时分别查询了LFIB和FIB表,作为最后Egress LSR,其存在转发效率提升的可能性,怎么做?

(8)在MPLS中,运行LDP协议的LSR的操作小结

5.LDP基础配置
(1)LDP基本配置命令(1)

(2)LDP基本配置命令(2)
(3)LDP基本配置命令(3)

6.案例拓扑

以AR1为例子

[czyAR1]mpls lsr-id 10.0.1.1

[czyAR1]mpls 
[czyAR1]mpls ldp
[czyAR1]inter g0/0/0
[czyAR1-GigabitEthernet0/0/0]mpls ldp

因为192.168.1.0/24不是32掩码的路由,所以要额外配置触发LSP建立:

备注这里触发LSP建立的时候会导致AR4学不到AR1的10.0.1.1,目前我还没搞清楚是什么原理,如果需要让24位的网络和环回口都被学习到的话需要lsp-trigger all

[czyAR1]ip ip-prefix ldp permit 192.168.1.0 24
[czyAR1]mpls
[czyAR1-mpls]lsp-trigger ip-prefix ldp

同理AR4也是

[czyAR4]ip ip-prefix ldp permit 192.168.4.0 24
[czyAR4]mpls 
[czyAR4-mpls]lsp-trigger ip-prefix ldp

验证

7.总结

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NFS(Network File System)和LDP(Label Distribution Protocol)是两种不同的网络协议,于不同的应用场景。 NFS的工作原理: NFS是一种用于在网络上共享文件系统的协议。它允许远程计算机通过网络访问和操作另一个计算机上的文件系统,就像本地文件系统一样。以下是NFS的工作原理步骤: 1. 客户端请求:客户端计算机通过NFS客户端软件发起对NFS服务器上文件的访问请求。 2. 服务器响应:NFS服务器接收到请求后,将相应的文件或目录信息发送回客户端。 3. 数据传输:如果需要读取或写入文件内容,NFS客户端和服务器之间将进行数据传输。在数据传输过程中,会使用NFS协议规定的数据块大小和缓存机制。 4. 文件锁定:如果多个客户端同时对同一个文件进行访问或修改,NFS提供了文件锁定机制,以确保数据的一致性和避免冲突。 总的来说,NFS的工作原理是基于客户端-服务器模型,通过在客户端和服务器之间传输文件和元数据来实现远程文件访问。 LDP的工作原理LDP是一种用于建立和维护标签交换路径(LSP)的协议,用于MPLS(Multiprotocol Label Switching)网络。以下是LDP的工作原理步骤: 1. 邻居发现:LDP路由器通过发送和接收Hello消息来发现相邻的LDP路由器,并建立邻居关系。 2. 标签分配:LDP路由器之间进行标签分配,为每个路由表中的前缀分配唯一的标签。这些标签用于识别和转发数据包。 3. 标签分发:LDP路由器通过标签分发协议(如LDP、MP-BGP等)将标签信息传播到整个MPLS网络,以确保每个路由器都知道如何转发特定标签的数据包。 4. 标签交换:当数据包进入MPLS网络时,LDP路由器根据接收到的标签信息进行转发决策。它们使用标签交换表(Label Switching Table)将输入接口上的标签映射到输出接口上的新标签,以实现数据包的转发。 总的来说,LDP的工作原理是基于标签交换路径(LSP),通过在MPLS网络中建立和维护标签分配、分发和交换来实现数据包的转发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值