MPLS(多协议标签交换)下

MPLS体系结构
在这里插入图片描述

  • 我们在了解MPLS的结构的时候,一般情况都会介绍两个平面,一个是控制平面,一个是转发平面

  • 控制平面:负责产生和维护路由信息以及标签信息。
    路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)生成,用于选择路由。 标签分发协议LDP(Label Distribution Protocol):负责标签的分配、标签转发信息表的建立、标签交换路径的建立、拆除等工作。
    标签信息表LIB(Label Information Base):由标签分发协议生成,用于管理标签信息。

  • 转发平面:即数据平面(Data Plane),负责普通IP报文的转发以及带MPLS标签报文的转发。
    转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
    标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,由标签分发协议在LSR上建立LFIB,负责带MPLS标签报文的转发。

  • 这两个灰色区域实际上能看作是一台路由器,这台路由器同时有两个平面去达到效果。
    ·首先我们在控制平面去运行路由协议,路由器之间形成路由表RIB。路由表能够用来做数据转发,也就是Forwarding,因此RIB和FIB有连线

  • 控制平面:IP信息表,在转发平面会有Ip forwading table。因此传统IP转发中,IGP是控制平面干的事情,一旦形成了IP转发表,数据来了的时候,就会使用转发平面的IPFI(IP转发表发送)。

  • 现在引入标签,由于标签的使用,也需要使用标签的分发协议,例如这个路由器运行了标签的路由协议,会生成一个标签转发表,因此分发标签就是控制平面做的事情,形成标签转发表,就是转发平面做的事情,也就是LFIB,标签转发数据库

  • 面试中会进行询问,控制平面的作用以及转发平面的作用,我们需要知晓,控制平面是协议去做的,例如IGP,形成路由表,标签协议形成标签表等等;转发平面就是使用形成的表进行数据转发,例如下一跳出接口等等。

  • 如果现在收到一个IP报文,那么就会去访问FIB,然后转发出去是一个IP报文或者是一个带标签的报文

  • 对于LFIB也是一样,接受到一个带着标签的报文,可能会转发出去一个普通的IP报文或者还是带标签的报文

  • 大家会发现FIB以及LFIB时间有个小箭头,这个小箭头代表的意思是:实际上在路由器中,如果没有使能MPLS,那么在IP转发表或者FIB中是没有任何标签信息的,一旦路由器使用了MPLS,那么就会生成标签转发表,那么标签信息满足条件的也会放入到FIB表中,也就是FIB表中实际上会出现标签信息,在这种情况下,FIB表转发的数据中会带有标签数据。

  • MPLS现在使用到的实际上都是帧模式,也有信元模式MPLS,实际上也就是ATM中使用的模式。但是由于ATM网络我们现在不用了,因此MPLS信元模式也基本上用不到。

MPLS数据报文结构
在这里插入图片描述
在这里插入图片描述

  • 附加:MPLS标签嵌套-标签栈(Lable Stack)
    在这里插入图片描述

  • MPLS VPN中,我们只会用到两个MPLS头部,一个是外层标签一个是内层标签

  • MPLS TE中,我们一般情况上都是3个MPLS标签,分别是顶层标签、中间标签以及底层标签,如果出现4个,那么就是比较复杂的情况
    - 如果没有MPLS,就一个纯的IGP,想用MPLS进行交换,那么就一层标签

  • 在进行通信的时候,实际上由RTA所连接的纯IP的网络,给RTA一个纯IP的数据,那么由RTA设备要去查FIB表,然后打上标签,传递给RTB设备。

  • 在这里插入图片描述

  • NHLFE由三个参数组成,第一个是Nexthop 第二个是Out-Interface,第三个是label Operation(动作):Push代表的就是打上一个标签或者去掉一个标签
    在这里插入图片描述

  • 华为设备用IP前缀去分FEC。

  • MPLS标签操作类型:
    -①PUSH
    在这里插入图片描述
    -②Swap
    在这里插入图片描述
    -③Pop
    在这里插入图片描述
    LSP建立方式

  • LSP概念:

  • LSP建立的方式有两种:
    -①静态LSP
    -②动态LSP:
    在这里插入图片描述

LDP邻居发现
在这里插入图片描述

  • LDP(Label Distribution Protocol):业界规范标签分发协议。不同厂商存在不同标准,例如思科也有相应的分发协议,也就是思科的TDP,也是分配标签的,但是只能在思科设备上进行发送,由于不同厂商有不同的标准,因此我们就使用一个LDP进行统一
  • 在建立LDP邻居的时候,必须要在需要做邻居的这几台设备上,开启LDP,类似于我们想要转发路由信息,我们也必须在路由器上开启ospf那样。
    在这里插入图片描述
  • 创建完邻居之后就是分配标签,依据就是根据FEC进行分配,华为设备上默认使用前缀进行分析。
  • 总的来说,LDP是用来在LSR之间建立LDP Session并交换Label/FEC映射信息的协议。
  • LDP发现机制实际上有两种:
    -①LDP基本发现机制 发现直接连接在同一链路上的LSR邻居,实际上就是自己直连链路上的LDP邻居,类似于建立OSPF邻居关系那样,那么在OSPF中我们建立邻居关系发送hello包使用组播,那么实际上对于LDP基本发现机制而言,使用的也是组播,是224.0.0.2
    -②LDP扩展发现机制 发现非直连的LSR邻居,例如我们如果使用二层VPN等,这些应用需要跨多个设备去建立远端的LDP Session,那么基本的发现机制就搞不定了,需要使用扩展的发现机制。这个时候用的就不是组播而是单播了。
  • 在基本发现机制中,发现邻居非常的简单,就是互相发送hello包后,建立TCP连接,也就是TCP三次握手即可。
  • 基本发现机制的Hello特点:
    ①消息封装在UDP中
    ②源目端口号为646
    ③消息的目的IP地址为组播地址,224.0.0.2
  • 如果hello交互完成之后,要去创建TCP连接的时候,用的是TCP目的端口号为646。
  • 那么这个TCP连接是由Transport Address大的发起,这个transport address是用来建立TCP连接使用的

LDP邻居建立

  • LDP消息类型:(以下只是类型,不是真正的协议报文)
    ①Discovery message 宣告和维护网络中一个LSR的存在
    ②Session message 建立、维护和终止LDP Peers之间的LDP Session
    ③Advertisemnet message 生成、改变和删除FEC的标签映射
    ④Notification message 宣告告警和错误信息 (和BGP里面的很像,都是出问题了进行报告使用的)
  • 华为LDP通告原则:
    ①设备默认情况下只为/32的主机前缀分配标签
    ②设备产生某条前缀的标签后,会发送给所有的邻居。
    ③标签产生情况:
    1、本设备上所有/32的网络都会产生
    2、通过路由表中的目的网段的下一跳路由器收到标签,那么这个时候我们要发送标签

Penultimate Hop Popping
在这里插入图片描述

  • 在没有使用PHP,也就是次末跳弹出之前,RTA发送数据包要去往100.1.1.1/32的数据转发过程为
    ①:RTA查看自身LIB表,将数据包根据LIB里面的参数进行转发,那么就会给数据包打上MPLS的标签为1027
    ②:RTB收到RTA发来的带着标签的数据包的时候,不需要通过FIB然后直接通过LFIB查询后,知道了标签的in和out,因此就会将1027改为1026,进行操作为swap,然后将这个数据包发送给RTC,发给RTC之后,在没有PHP的情况下,实际上又会进行个swap操作,然后对于RTD来说,首先需要去LFIB,看到里面的out Label数值为null,因此需要拆掉这个标签,然后再通过自己的FIB进行查看,找到自己的目的地怎么去,因此给RTD多加了一些资源耗损。【也就是RTD这台设备所耗损的资源比其他设备要高,容易让MPLS达到瓶颈】
  • 为了应对这种情况,PHP的作用就出现了,引入PHP技术后,在倒数第二跳此网络中的RTC,会收到来自最后一跳的路由器RTD一个值为3(保留)的标签,叫做隐式标签。这个隐式标签给次末跳的路由器,这样它的LFIB表里面就会出现一个out label=3的项,在这种情况下,它知道如果要将数据发出去,需要将label进行拆除,拆除之后,RTD就只需要去查看自己FIB表就能将数据包转到100.1.1.1/32

【注意】:如果是基于MPLS要使用QoS的话,需要考虑一个问题,就是我们的标签实际上都需要存在,在这种情况我们需要使用显式标签(0)

发布了28 篇原创文章 · 获赞 15 · 访问量 872

猜你喜欢

转载自blog.csdn.net/weixin_45948002/article/details/105183410