MPLS与LDP如何从入门到精通
当前位置:以往代写 > 大数据教程 >MPLS与LDP如何从入门到精通
2019-06-14

MPLS与LDP如何从入门到精通

  LDP(LabelDistributionProtocol,标签分发协议)是MPLS(Multi-ProtocolLabelSwitching,多协议标签交换)的一种控制协议,相当于传统网络中的信令协议,负责FEC(ForwardingEquivalenceClass,转发等价类)的分类、标签的分配以及LSP(LabelSwitchedPath,标签交换路径)的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。

      多协议标签交换(MPLS)是一种用于快速转发数据包的技术,它的出现就是为了提高转发效率。因为IP转发大多靠软件进行,在转发的每一跳都要进行至少一次最长匹配查找,操作复杂导致转发速度比较慢。有些厂商借鉴ATM的转发方式来简化IP转发过程,由此产生了一种结合IP和ATM的优势于一身的新技术—MPLS。在当时的条件下这可以说是一个很大的创举,其优势也是显而易见的,但后来IP转发领域有很多新技术产生,如硬件转发与网络处理器的出现,导致MPLS的速度优势体现不出来,纯MPLS转发在实际应用中几乎没有用武之地。

  虽然MPLS在实际转发应用中较少用到,但是由于其灵活可扩展,因此出现了许多基于MPLS的新技术,比如BGP/MPLSVPN、流量工程等技术。当前,MPLS越来越受重视,成为当今网络技术的热点,还有一些新的应用需求也正在利用MPLS来实现。

  1MPLS基础概念

  MPLS协议处于二层和三层之间,也就是MAC头和IP报文之间,是一个2.5层的协议。MPLS协议格式如下图所示:

MPLS与LDP如何从入门到精通_MPLS_网络技术_网络工程师_课课家教育

  Label:标签值,20bit,用于转发数据。

  Exp:流量等级,也成为TC,3bit。

  S:标志位,表示栈底协议,1bit。

  TTL:存活时间,8bit,与IP报文中的TTL值相似。

  MPLS中的一些概念

  FEC:转发等价类,MPLS将具有相同特征值(目的地址相同或服务等级相同)的报文归为一类。

  标签:本地意义的标识符,用于唯一标识一个报文所属的FEC,一个标签代表一个FEC。

  LSP:标签转换路径,同一个FEC在MPLS网络经过的路径。

  标签转发表:与IP网络中的FIB(转发信息库)类似,称为LFIB,LFIB中的信息有InLabel(入标签)、OutLabel(出标签)、出接口、操作类型(Pop/Swap)、下一跳等。

  MPLS中有控制平面和转发平面,控制平面负责标签分配,EFC标签映射、标签转发表建立、LSP建立等,相关的协议LDP、MP-BGP等;转发平面根据LFIB进行报文的转发。

  MPLS网络的基本单元是LSR。LSP建立的过程就是标签和FEC的绑定,在LSR上建立LFIB的过程。LSP分为静态LSP和动态LSP,静态LSP就是手动配置LSP的出入标签、下一跳等,适合网络拓扑简单且稳定的小型网络;动态建立LSP就是基于LDP或者MP-BGP等协议建立的LSP,建立过程是:下游LSR根据目的地址划分FEC,为特定FEC分配标签,将FEC标签的绑定关系告知上游LSR,上游LSR根据绑定关系建立LFIB,报文转发路径上所有LSR都为该FEC建立转发表项后,就成功建立了转发FEC的LSP。

  基于MPLS的L2VPN将用户二层数据封装成可以在MPLS网络或IP网络中传输的分组,通过IP路径或MPLS隧道转发封装后的分组,从用户角度来看,MPLS或IP网络就是一个二层交换网络。

  一个MPLS报文可以有多个Label,靠近二层头的Label为栈顶Label,靠近IP报文的Label为栈底Label,LSR执行Label交换时总是基于栈顶Label。有多个Label时,每个Label都包括以上完整的32bit,并不是其它的Label只包括20bit的Label值,如下图所示

一个MPLS报文可以有多个Label,靠近二层头的Label为栈顶Label,靠近IP报文的Label为栈底Label,LSR执行Label交换时总是基于栈顶Label。有多个Label时,每个Label都包括以上完整的32bit,并不是其它的Label只包括20bit的Label值,如下图所示

  2MPLS转发流程

  MPLS技术综合了第二层交换和第三层路由的功能,将第二层的快速交换和第三层的路由有机地结合起来。MPLS网络边缘的LER主要完成以下工作:三层路由、分析IP包头用于决定对应的FEC和标签交换路径(LSP),进而标记报文。而在MPLS网络核心的LSR采用基于标签的第二层交换,工作相对较简单。从这里就可以看出MPLS的好处,虽然处在MPLS网络边缘的LER工作较复杂,但处在核心的LSR只需要像FR或ATM交换机那样执行二层交换就可以了,根本不需要最长匹配和多次查找。

  典型的MPLS转发过程如下:

  Step1:所有LSR启用传统路由协议(OSPF、IS-IS等),在LSR中建立IP路由表

  Step2:由LDP结合IP路由表来建立LSP

  Step3:IngressLER接收IP包,分析IP包头并对应到FEC,然后给IP包加上标记,根据标签转发表中的LSP将已标记的报文送到相应的出接口。

  Step4:LSR收到带有标记的报文,将只分析标记头,不关注标记头之上的部分,根据Label头查找LSP,替换Label,送到相应的出接口

  ……………..(中途转发过程与Step4类似)

#p#分页标题#e#

  Stepn-1:倒数第二跳LSR收到带有标记的报文,查找标记转发表,发现对应的出口标签为隐式空标签或显式空标签,弹出标签,发送IP报文到最后一跳LSR

  Stepn:在最后一跳EgressLER上执行三层路由功能,根据报文的目的IP地址转发

  3LDP协议基础

  LDP协议在[RFC3036]中详细定义,LDP的协议报文除Hello报文基于UDP外,其它报文都是在TCP之上,端口号为646。当发生传输丢包时,能够利用TCP协议提供错误指示,实现快速响应和恢复。与BGP相似,这种基于TCP的可靠连接使得协议状态机较为简单。

  LDP基本概念

  MPLS体系有多种标签发布协议,LDP(LabelDistributionProtocol)是其中使用较广的一种。LDP(LabelDistributionProtocol)规定了标签分发过程中的各种消息以及相关的处理过程。LSR之间将依据本地转发表中对应于一个特定FEC的入标签、下一跳节点、出标签等信息联系在一起,从而形成标签交换路径LSP。关于LDP的详细介绍可以参考RFC5036(LDPSpecification)。LDP邻接体当一台LSR接收到对端发送过来的hello消息,意味着可能存在LDP对等体,此时建立维护对端存在的LDP邻接体。LDP邻接体存在两种类型:本地邻接体(LocalAdjacency)和远端邻接体(RemoteAdjacency)。LDP对等体LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签消息的两个LSR。

  LDP对等体通过它们之间的LDP会话获得对方的标签。

  LDP报文格式

  LDPPDU头部

LDPId:长度为48bit,前32bit为LSR-ID,后16bit为标记空间标志,全局空间为“0”,局部接口空间为“1”。如:收到的LDPPDU中的LDP-ID为192.168.1.2:0,表示对方的LSR-ID为192.168.1.2,标签空间为全局空间。

  版本号:16bit,目前LDP只有一个版本,版本号始终为1;

  PDU长度:为16bit,值为LDPPDU头部以后的数据部分的长度,不包括LDPPDU头部;

  LDPId:长度为48bit,前32bit为LSR-ID,后16bit为标记空间标志,全局空间为“0”,局部接口空间为“1”。如:收到的LDPPDU中的LDP-ID为192.168.1.2:0,表示对方的LSR-ID为192.168.1.2,标签空间为全局空间。

  LDP消息格式

LDPId:长度为48bit,前32bit为LSR-ID,后16bit为标记空间标志,全局空间为“0”,局部接口空间为“1”。如:收到的LDPPDU中的LDP-ID为192.168.1.2:0,表示对方的LSR-ID为192.168.1.2,标签空间为全局空间。

  U:这一位总是为“0”,代表可识别的消息,为“1”代表不可识别的消息;

  类型域:协议根据这个域识别不同的消息;

  长度域:指示出长度域之后的数据部分的长度;

  消息ID:用来唯一地标识这个消息,如果消息为Notification,则ID与导致产生Notification的消息ID相关联。

  LDP消息种类

  按照功能来划分,LDP消息可分为4种类型消息:

  邻居发现消息:在启用LDP协议的接口上周期性发送该消息

  Hello消息

  会话建立和维护消息:用来建立和维护LDP会话

  Initialization消息

  KeepAlive消息

  标签分发消息:用来请求、通告及撤销标签绑定

  Addressmessage

  AddressWithdrawmessage

  Labelrequestmessage

  Labelmappingmessage

  Labelwithdrawmessage

  Labelreleasemessage

  Labelabortrequestmessage

  错误通知消息:用来提示LDP对等体在会话过程中的重要事件

  Notification消息

  LDP相关概念

  标签空间

  可分为全局标签空间和接口标签空间,全局标签空间表示LSR为特定目的地的FEC产生唯一的Label,接口标签空间表示LSR在每个接口上为特定目的地的FEC产生唯一的Label。在帧模式的链路上为全局标签空间,在信元模式的链路上为接口标签空间。LDP报文中的LDP-ID域中指示出标签空间值。

  上游LSR和下游LSR

#p#分页标题#e#

可分为全局标签空间和接口标签空间,全局标签空间表示LSR为特定目的地的FEC产生唯一的Label,接口标签空间表示LSR在每个接口上为特定目的地的FEC产生唯一的Label。在帧模式的链路上为全局标签空间,在信元模式的链路上为接口标签空间。LDP报文中的LDP-ID域中指示出标签空间值。

  对于某FEC(图示中的IPv4前缀)来说,C是B的下游路由器,A是B的上游路由器

  倒数第二条弹出

  在实际应用当中(如MPLSVPN),对于EgressLSR在弹出最外层Label后还需要进行其它较复杂的三层工作。而事实上最外层标签的作用在MPLSVPN的应用中只是为了将报文送到EgressLSR。因此,在倒数第二跳LSR已知报文下一跳的情况下,可以将最外层的标签弹出后转发到最后一跳LER,而不必进行标签替换。这样使得最后一跳LSR的工作相对简单了一些。因此在[RFC3032]中规定,最后一跳LSR发给倒数第二跳LSR的标签为隐式空标签“3”。据此,收到标签“3”的上游LSR就知道自己是该FEC的倒数第二跳,就知道自己在用该LSP转发Label报文时,应执行倒数第二跳弹出。

在实际应用当中(如MPLSVPN),对于EgressLSR在弹出最外层Label后还需要进行其它较复杂的三层工作。而事实上最外层标签的作用在MPLSVPN的应用中只是为了将报文送到EgressLSR。

  (倒数第二跳弹出)

  标签分发方式

  1DU(DownstreamUnsolicited)

  下游LSR如果工作在DU方式(下游主动分发)下将根据某一触发策略向上游LDP邻居主动分发标签。下图中LSR-C标签分发触发策略是为直连32位掩码的路由分配标签,因此LSR-C通过Labelmappingmessage向上游LDP邻居主动通告自己的直连路由172.16.1.1/32的标签,Comware系统缺省工作在DU方式。

下游LSR如果工作在DU方式(下游主动分发)下将根据某一触发策略向上游LDP邻居主动分发标签。下图中LSR-C标签分发触发策略是为直连32位掩码的路由分配标签,因此LSR-C通过Labelmappingmessage向上游LDP邻居主动通告自己的直连路由172.16.1.1/32的标签,Comware系统缺省工作在DU方式。

  2DOD(DownstreamOnDemand)

  下游LSR如果工作在DOD方式(下游按需分发)下,只有在接收到上游LDP邻居的Labelrequestmessage后才回应Labelmappingmessage分发标签(针对标记请求消息所指定的FEC)。下图中LSR-C工作在DOD模式下,LSR-A的触发策略生效(LSR-A转发到172.16.1.0/24的报文流量达到设定阀值)后将向172.16.1.0/24的下游发送标记请求消息Labelrequestmessage(请求172.16.1.0/24的标签)。最终LSR-C收到请求,发送Labelmappingmessage响应。

下游LSR如果工作在DOD方式(下游按需分发)下,只有在接收到上游LDP邻居的Labelrequestmessage后才回应Labelmappingmessage分发标签(针对标记请求消息所指定的FEC)。下图中LSR-C工作在DOD模式下,LSR-A的触发策略生效(LSR-A转发到172.16.1.0/24的报文流量达到设定阀值)后将向172.16.1.0/24的下游发送标记请求消息Labelrequestmessage(请求172.16.1.0/24的标签)。最终LSR-C收到请求,发送Labelmappingmessage响应。

  标签控制协议

  1独立控制方式

  LSR如果工作在独立控制方式下,如果标签分发方式是DU,即使在没有获得下游标签的情况下也会直接向上游分发标签。在标签控制的方式上显得很“独立”,不依赖下游LSR;如果标签分发方式是DOD,发送标签请求的LSR的直连上游LSR会直接回应标签,而不必等待来自最终下游的标签。

LSR如果工作在独立控制方式下,如果标签分发方式是DU,即使在没有获得下游标签的情况下也会直接向上游分发标签。在标签控制的方式上显得很“独立”,不依赖下游LSR;如果标签分发方式是DOD,发送标签请求的LSR的直连上游LSR会直接回应标签,而不必等待来自最终下游的标签。

#p#分页标题#e#

  在上图中,在LSR-B上采用独立控制方式。LSR-B路由表中有172.16.1.0/24的路由,但没有收到下游来的标签绑定。由于LSR-B工作于独立控制方式,所以对路由表中的所有路由都向上游发送标签。继而,无论LSR-A工作在独立模式还是有序模式,将向上游继续发送标签。这时,如果有目的IP为172.16.1.0/24的报文进入LSR-A,它将采用MPLS转发。但数据到LSR-B后,由于没有关联172.16.1.0/24的LSP,所以采用传统IP转发。

  2有序控制方式(Odered)

  LSR如果工作在有序控制方式下,如果标签分发模式为DU,则只有收到下游LSR分发的标签时才会向自己的上游LSR通告标签,如果没有收到下游的标签映射则不向上游LSR通告。Comware系统缺省工作在有序方式。

LSR如果工作在有序控制方式下,如果标签分发模式为DU,则只有收到下游LSR分发的标签时才会向自己的上游LSR通告标签,如果没有收到下游的标签映射则不向上游LSR通告。Comware系统缺省工作在有序方式。

  在上图中,LSR-B路由表中有172.16.1.0/24的路由,但由于LSR-B没有收到下游的标签且工作在有序模式,因而不向上游通告关于172.16.1.0/24的Label。如果LSR-A收到目的IP为172.16.1.0/24的报文将采用传统IP转发。可以看出,在有序控制方式下,是否向上游LSR分发标签取决于自己是否收到下游LSR的标签。

  标签保留方式

  1自由保留方式

  收到无效的Label通告后(没有对应的IP路由或路由通告与Label通告的下一跳不一致),虽然不生成LSP,但在标签绑定表里存储,并且LSR向上游通告其它FEC的Label绑定时也不占用这些标签,这种方式的优点是LSR应对网络拓扑变化的响应较快,缺点是浪费标签,所有不能生成LSP的Label通告都需要保留。

收到无效的Label通告后(没有对应的IP路由或路由通告与Label通告的下一跳不一致),虽然不生成LSP,但在标签绑定表里存储,并且LSR向上游通告其它FEC的Label绑定时也不占用这些标签,这种方式的优点是LSR应对网络拓扑变化的响应较快,缺点是浪费标签,所有不能生成LSP的Label通告都需要保留。

  在上图中LSR-A工作于自由保留方式,对于FEC为172.16.1.0/24将生成下一跳为LSR-B的LSP,LSR-C发来的Label通告将保留。如LSR-A和LSR-B之间的直连链路down掉,对于FEC:172.16.1.0/24的将很快生成下一跳为LSR-C的LSP。

  2保守保留方式

  工作于保守保留模式的LSR收到无效的Label通告后将不存放到标签绑定表里,在向上游通告Label时可以自由使用这些标签。保守保留模式的缺点是对拓扑变化的响应较慢,优点是节省标签。

2保守保留方式

  在上图中,LSR-A工作于保守保留模式,对于FEC为172.16.1.0/24将生成下一跳为LSR-B的LSP,LSR-C发来的Label通告将不保留。如LSR-A和LSR-B之间的直连链路down掉,对于FEC:172.16.1.0/24将不能很快生成下一跳为LSR-C的LSP。

     LDP(LabelDistributionProtocol)规定标签分发过程中的各种消息以及相关的处理进程。通过LDP协议,LSR可以把网络层的路由信息直接映射到数据链路层的交换路径上,进而建立起网络层上的LSP。LSP既可以建立在两个相邻的LSR之间,也可以终止于网络出口节点,从而在网络中所有中间节点上都使用标签交换。

更多详细内容尽在课课家哦!

    关键字:

在线提交作业