思博网络 发表于 2021-12-23 15:27:01

【SPOTO思博网络】【CCNA入门基础】MPLS《MPLS LDP》

【SPOTO思博网络】【CCNA入门基础】MPLS《MPLS LDP》
MPLS LDP简介
标签分发协议LDP(Label Distribution Protocol)是多协议标签交换MPLS的一种控制协议,相当于传统网络中的信令协议,负责转发等价类FEC(Forwarding Equivalence Class)的分类、标签的分配以及标签交换路径LSP(Label Switched Path)的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。

目的
MPLS支持多层标签,并且转发平面面向连接,故具有良好的扩展性,使在统一的MPLS/IP基础网络架构上为客户提供各类服务成为可能。

通过LDP协议,标签交换路由器LSR(Label Switched Router)可以把网络层的路由信息直接映射到数据链路层的交换路径上,动态建立起网络层的LSP。

目前,LDP广泛地应用在VPN服务上,具有组网、配置简单、支持基于路由动态建立LSP、支持大容量LSP等优点。

LDP基本概念
LDP对等体

LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签消息的两个LSR。LDP对等体通过它们之间的LDP会话获得对方的标签。

LDP邻居体

当一台LSR接收到对端发送过来的Hello消息后LDP邻接体建立。LDP邻接体存在两种类型:

本地邻接体(Local Adjacency):以组播形式发送Hello消息(即链路Hello消息)发现的邻接体叫做本地邻接体。

远端邻接体(Remote Adjacency):以单播形式发送Hello消息(即目标Hello消息)发现的邻接体叫做远端邻接体。

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

LDP会话

LDP会话用于LSR之间交换标签映射、释放等消息。只有存在对等体才能建立LDP会话,LDP会话分为两种类型:

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

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BCA.tmp.jpg
LDP工作机制
LDP协议规定了标签分发过程中的各种消息以及相关的处理过程。通过LDP,LSR可以把网络层的路由信息映射到数据链路层的交换路径上,进而建立起LSP。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BCB.tmp.jpg
LDP消息类型
LDP协议主要使用四类消息:

发现(Discovery)消息:用于通告和维护网络中LSR的存在,如Hello消息。

会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话,如Initialization消息、Keepalive消息。

通告(Advertisement)消息:用于创建、改变和删除FEC的标签映射。

通知(Notification)消息:用于提供建议性的消息和差错通知。

为保证LDP消息的可靠发送,除了Discovery消息使用UDP(User Datagram Protocol)传输外,LDP的Session消息、Advertisement消息和Notification消息都使用TCP(Transmission Control Protocol)传输。

LDP消息作用


LDP报文消息抓包示例
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BCC.tmp.jpg
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BCD.tmp.jpg

LDP工作过程

LDP工作过程主要分为两个阶段:

LDP会话的建立

通过Hello消息发现邻居后,LSR之间开始建立LDP会话。会话建立后,LDP对等体之间通过不断地发送Hello消息和Keepalive消息来维护这个会话。


LDP对等体之间,通过周期性发送Hello消息表明自己希望继续维持这种邻接关系。如果Hello保持定时器超时仍没有收到新的Hello消息,则删除Hello邻接关系。邻接关系被删除后,本端LSR将发送Notification消息,结束该LDP会话。


LDP对等体之间通过LDP会话连接上传送的Keepalive消息来维持LDP会话。如果会话保持定时器(Keepalive保持定时器)超时仍没有收到任何Keepalive消息,则关闭TCP连接,本端LSR将发送Notification消息,结束LDP会话。


LDP LSP的建立

会话建立后,LDP通过发送标签请求和标签映射消息,在LDP对等体之间通告FEC和标签的绑定关系,从而建立LSP。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BCE.tmp.jpg
LDP会话的建立

通过LDP发现机制发现LDP对等体用来建立LDP会话。只有建立了LDP会话后,才能建立LDP LSP来承载业务。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BDE.tmp.jpg
LDP发现机制
LDP发现机制用于LSR发现潜在的LDP对等体。LDP有两种发现机制:

基本发现机制:用于发现链路上直连的LSR。

LSR通过周期性地发送LDP链路Hello消息(LDP Link Hello),实现LDP基本发现机制,建立本地LDP会话。

LDP链路Hello消息使用UDP报文,目的地址是组播地址224.0.0.2。如果LSR在特定接口接收到LDP链路Hello消息,表明该接口存在LDP对等体。

扩展发现机制:用于发现链路上非直连LSR。

LSR周期性地发送LDP目标Hello消息(LDP Targeted Hello)到指定IP地址,实现LDP扩展发现机制,建立远端LDP会话。

LDP目标Hello消息使用UDP报文,目的地址是指定IP地址。如果LSR接收到LDP目标Hello消息,表明该LSR存在LDP对等体。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BDF.tmp.jpg
LDP会话的建立过程
两台LSR之间交换Hello消息触发LDP会话的建立。LDP会话的建立过程如下图所示:

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE0.tmp.jpg
(1)两个LSR之间互相发送Hello消息。
Hello消息中携带传输地址(即设备的IP地址),双方使用传输地址建立LDP会话。

(2)传输地址较大的一方作为主动方,发起建立TCP连接。
如上图所示,LSR_1作为主动方发起建立TCP连接,LSR_2作为被动方等待对方发起连接。

(3)TCP连接建立成功后,由主动方LSR_1发送初始化消息,协商建立LDP会话的相关参数。
LDP会话的相关参数包括LDP协议版本、标签分发方式、Keepalive保持定时器的值、最大PDU长度和标签空间等。

(4)被动方LSR_2收到初始化消息后,LSR_2接受相关参数,则发送初始化消息,同时发送Keepalive消息给主动方LSR_1。
如果被动方LSR_2不能接受相关参数,则发送Notification消息终止LDP会话的建立。
初始化消息中包括LDP协议版本、标签分发方式、Keepalive保持定时器的值、最大PDU长度和标签空间等。

(5)主动方LSR_1收到初始化消息后,接受相关参数,则发送Keepalive消息给被动方LSR_2。
如果主动方LSR_1不能接受相关参数,则发送Notification消息给被动方LSR_2终止LDP会话的建立。
当双方都收到对端的Keepalive消息后,LDP会话建立成功。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE1.tmp.jpg
LDP LSP的建立
LDP通过发送标签请求和标签映射消息,在LDP对等体之间通告FEC和标签的绑定关系来建立LSP,而标签的发布和管理由标签发布方式、标签分配控制方式和标签保持方式来决定。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE2.tmp.jpg
标签的发布和管理
标签发布方式(Label Advertisement Mode)

在MPLS体系中,由下游LSR决定将标签分配给特定FEC,再通知上游LSR,即标签由下游指定,标签的分配按从下游到上游的方向分发。

标签发布方式有两种方式。具有标签分发邻接关系的上游LSR和下游LSR必须对使用的标签发布方式达成一致。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE3.tmp.jpg
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE4.tmp.jpg
标签分配控制方式(Label Distribution Control Mode)

标签分配控制方式是指在LSP的建立过程中,LSR分配标签时采用的处理方式。


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


有序标签分配控制方式(Ordered):对于LSR上某个FEC的标签映射,只有当该LSR已经具有此FEC下一跳的标签映射消息、或者该LSR就是此FEC的出节点时,该LSR才可以向上游发送此FEC的标签映射。


标签分配控制方式和标签发布方式的组合

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE5.tmp.jpg
标签保持方式(Label Retention Mode)

标签保持方式是指LSR对收到的、但目前暂时不需要的标签映射的处理方式。

LSR收到的标签映射可能来自下一跳,也可能来自非下一跳。

标签保持方式:

(1)自由标签保持方式(Liberal)

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

(2)保守标签保持方式(Conservative)

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

目前设备支持如下组合方式:


下游自主方式(DU)+ 有序标签分配控制方式(Ordered)+ 自由标签保持方式(Liberal),该方式为缺省方式。

下游按需方式(DoD)+ 有序标签分配控制方式(Ordered)+ 保守标签保持方式(Conservative)。

下游自主方式(DU)+ 独立标签分配控制方式(Independent)+ 自由标签保持方式(Liberal)。

下游按需方式(DoD)+ 独立标签分配控制方式(Independent)+ 保守标签保持方式(Conservative)。


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE6.tmp.jpg

LDP LSP的建立过程LSP的建立过程实际就是将FEC和标签进行绑定,并将这种绑定通告LSP上相邻LSR的过程。如下图所示,下面结合下游自主标签发布方式和有序标签控制方式来说明其主要步骤。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE7.tmp.jpg
(1)缺省情况下,网络的路由改变时,如果有一个边缘节点(Egress)发现自己的路由表中出现了新的主机路由,并且这一路由不属于任何现有的FEC,则该边缘节点需要为这一路由建立一个新的FEC。

(2)如果MPLS网络的Egress有可供分配的标签,则为FEC分配标签,并主动向上游发出标签映射消息,标签映射消息中包含分配的标签和绑定的FEC等信息。

(3)Transit收到标签映射消息后,判断标签映射的发送者(Egress)是否为该FEC的下一跳。若是,则在其标签转发表中增加相应的条目,然后主动向上游LSR发送对于指定FEC的标签映射消息。

(4)Ingress收到标签映射消息后,判断标签映射的发送者(Transit)是否为该FEC的下一跳。若是,则在标签转发表中增加相应的条目。这时,就完成了LSP的建立,接下来就可以对该FEC对应的数据报文进行标签转发。

上面介绍的是普通LDP LSP的建立,还有一种代理Egress LSP。

代理Egress(Proxy Egress)是能够针对非本地路由触发建立LSP的Egress节点,当路由器使能倒数第二跳弹出时,倒数第二跳节点实际上就是一种特殊的代理Egress。

一般情况下,代理Egress由配置产生。代理Egress可以应用于网络中有不支持MPLS特性的路由器场景,也可用于解决BGP路由负载分担问题。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE8.tmp.jpg
LDP的安全机制
为了提高LDP报文的安全性,MPLS提供了三种保护机制:LDP MD5认证、LDP Keychain认证和LDP GTSM。

LDP Keychain认证是比LDP MD5认证更安全的加密认证,对于同一邻居,只能选择其中一个加密认证;而LDP GTSM用来防止设备受到非法LDP报文的攻击,其可以与前面两个配合使用。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BE9.tmp.jpg
LDP MD5认证
MD5(Message-Digest Algorithm 5)是RFC1321定义的国际标准摘要密码算法。MD5的典型应用是针对一段信息计算出对应的信息摘要,从而防止信息被篡改。
MD5信息摘要是通过不可逆的字符串变换算法产生的,结果唯一。

因此,不管信息内容在传输过程中发生任何形式的改变,只要重新计算就会产生不同的信息摘要,接收端就可以由此判定收到的是一个不正确的报文。

LDP MD5应用其对同一信息段产生唯一摘要信息的特点来实现LDP报文防篡改校验,比一般意义上TCP校验和更为严格。其实现过程如下:


LDP会话消息在经TCP发出前,会在TCP头后面填充一个唯一的信息摘要再发出。而这个信息摘要就是把TCP头、LDP会话消息以及用户设置的密码一起作为原始信息,通过MD5算法计算出的。




当接收端收到这个TCP报文时,首先会取得报文的TCP头、信息摘要、LDP会话消息,并结合TCP头、LDP会话消息以及本地保存的密码,利用MD5计算出信息摘要,然后与报文携带的信息摘要进行比较,从而检验报文是否被篡改过。


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BEA.tmp.jpg

LDP Keychain认证
Keychain是一种增强型加密算法,类似于MD5,Keychain也是针对同一段信息计算出对应的信息摘要,实现LDP报文防篡改校验。

Keychain允许用户定义一组密码,形成一个密码串,并且分别为每个密码指定加解密算法(包括MD5,SHA-1等)及密码使用的有效时间。

在收发报文时,系统会按照用户的配置选出一个当前有效的密码,并按照与此密码相匹配的加密解密算法以及密码的有效时间,进行发送时加密和接收时解密报文。
此外,系统可以依据密码使用的有效时间,自动完成有效密码的切换,避免了长时间不更改密码导致的密码易破解问题。

Keychain的密码、所使用的加解密算法以及密码使用的有效时间可以单独配置,形成一个Keychain配置节点,每个Keychain配置节点至少需要配置一个密码,并指定加解密算法。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BEB.tmp.jpg

LDP GTSM
通用TTL安全保护机制GTSM(Generalized TTL Security Mechanism)是一种通过检查IP报文头中的TTL值是否在一个预先定义好的范围内来实现对IP业务进行保护的机制。使用GTSM的两个前提:


设备之间正常报文的TTL值确定


报文的TTL值很难被修改

LDP GTSM是GTSM在LDP方面的具体应用。

GTSM通过判定报文的TTL值,确定报文是否有效,从而保护设备免受攻击。

LDP GTSM是对相邻或相近(基于只要跳数确定的原则)设备间的LDP消息报文应用此种机制。

用户预先在各设备上设定好针对其他设备报文的有效范围,使能GTSM,这样当相应设备之间应用LDP时,如果LDP消息报文的TTL不符合之前设置的范围要求,设备就认为此报文为非法攻击报文予以丢弃,进而实现对上层协议的保护。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BFC.tmp.jpg

LDP扩展
LDP跨域扩展

LDP跨域扩展通过使能LDP按最长匹配原则查找路由,使LDP能够依据聚合后的路由建立起跨越多个IGP区域的LDP LSP。

(1)产生原因

当网络规模比较大时,通常需要部署多个IGP区域来达到灵活部署和快速收敛的目的。

在这种情况下,IGP区域间进行路由通告时,为了避免路由数量多而引起的对资源的过多占用,区域边界路由器(ABR)需要将区域内路由聚合,再通告给相邻的IGP区域。

然而,LDP在建立LSP的时候,会在路由表中查找与收到的标签映射消息中携带的FEC精确匹配的路由,对于聚合路由,LDP只能建立Liberal LSP,无法建立跨越IGP区域的LDP LSP。

因此,引入LDP跨域扩展来解决这个问题。

注:已经被分配标签,但是没有建立成功的LSP叫做Liberal LSP。

(2)实现过程

如下图所示,存在Area10和Area20两个IGP区域。

在Area10区域边缘的LSR_2的路由表中,存在到LSR_3和LSR_4的两条主机路由,为了避免路由数量多而引起的对资源的过多占用,在LSR_2上通过ISIS路由协议将这两条路由聚合为1.3.0.0/24发送到Area20区域。

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps4BFD.tmp.jpg
LDP在建立LSP的时候,会在路由表中查找与收到的标签映射消息中携带的FEC精确匹配的路由,对于上图中的情况,LSR_1的路由表中只有这条聚合后的路由,而没有32位的主机路由。

对于聚合路由,LDP只能建立Liberal LSP,无法建立跨越IGP区域的LDP LSP,以至于无法提供必要的骨干网隧道。

因此,在LSR_1上需要按照最长匹配方式查找路由建立LSP。在LSR_1的路由表中,已经存在聚合路由1.3.0.0/24。

当LSR_1收到Area10区域的标签映射消息时(例如携带的FEC为1.3.0.1/32),按照最长匹配的查找方式,LSR_1能够找到聚合路由1.3.0.0/24的信息,把该路由的出接口和下一跳作为到FEC 1.3.0.1/32的出接口和下一跳。

这样,LDP就可以建立跨越IGP区域的LDP LSP。



文章来源:CSDN技术平台,因觉优质,特此分享,侵删。

进入全国网络工程师交流群 ,请扫描下方二维码↓↓↓
群里有行业大咖、实战分享、技术交流、技术咨询、企业内推等机会
若群满,请添加老杨微信(spotoa),邀你进群


页: [1]
查看完整版本: 【SPOTO思博网络】【CCNA入门基础】MPLS《MPLS LDP》