MPLS基础

MPLS概述

前言

此前,路由器采用最长匹配算法逐跳转发数据包,成为网络数据转发的瓶颈
在各种方案中,IETF确定MPLS协议作为标准的协议。MPLS采用短而定长的标签进行数据转发,大大提高了硬件限制下的转发能力;而且MPLS可以扩展到多种网络协议(如IPv6,IPX等)

定义

MPLS协议从各种链路层协议得到链路层服务,又为网络层提供面向连接的服务。
MPLS能从IP路由协议和控制协议中得到支持,路由功能强大、灵活,可以满足各种新应用对网络的要求。

数据报文结构

在这里插入图片描述
1.标签是一个短而定长的、只有本地意义的标识,用于唯一标识去往同一目的地址的报文分组。
2.MPLS标签的长度为4个字节,共分4个字段:

Label:20bit,标签值域;
Exp:3bit,用于扩展。现在通常用做CoS(Class of Service),当设备发生阻塞时,优先发送优先级高的报文;
S:1bit,栈底标识。MPLS支持多层标签,即标签嵌套。S值为1时表明为最底层标签;
TTL:8bit,和IP报文中的TTL(Time To Live)意义相同。

3.标签空间是指标签的取值范围,标签空间划分如下:

0~15:特殊标签。如标签3,称为隐式空标签,用于倒数第二跳弹出(PHP);
16~1023:静态LSP和静态CR-LSP共享的标签空间;
1024及以上:LDP、RSVP-TE(Resource Reservation Protocol-Traffic Engineering)、MP-BGP(MultiProtocol Border Gateway Protocol)等动态信令协议的标签空间。

基本网络结构

在这里插入图片描述

1.LSP:标签交换路径,即到达同一目的地址的报文在MPLS网络中经过的路径。
2.FEC:转发等价类,一般指具有相同转发处理方式的报文。在MPLS网络中,到达同一目的地址的所有报文就是一个FEC。
3.LER:标签边缘路由器,在MPLS网络中,用于标签的压入或弹出,如上图RTB,RTD。
4.LSR:标签交换路由,在MPLS网络中,用于标签的交换,如图中的RTC。
5.根据数据流的方向,LSP的入口LER被称为入节点(Ingress);位于LSP中间的LSR被称为中间节点(Transit);LSP的出口LER被称为出节点(Egress)。
6.MPLS报文由Ingress发往Transit,则Ingress是Transit的上游节点,Transit是Ingress的下游节点;同理,Transit是Egress的上游节点,Egress是Transit的下游节点。

体系结构

控制层面:负责产生和维护路由信息及标签信息

路由信息表RIB:由IP路由协议生成,用于选择路由。
标签分发协议LDP:负责标签的分配、标签转发信息表的建立、标签交换路径的建立、拆除等工作。
标签信息表LIB:由标签分发协议生成,用于管理标签信息。

转发层面:即数据层面,负责普通IP报文的转发以及带MPLS标签报文的转发

转发信息表FIB:从RIB提取必要的路由信息生成,负责普通IP报文的转发。
标签转发信息表LFIB:简称标签转发表,由标签分发协议建立LFIB,负责带MPLS标签报文的转发。

MPLS路由器上报文的转发过程

1.当收到普通IP报文时,查找FIB表,如果Tunnel ID为0x0,则进行普通IP转发;如果查找FIB表,Tunnel ID为非0x0,则进行MPLS转发。

2.当收到带标签的报文时,查找LFIB表,如果对应的出标签是普通标签,则进行MPLS转发;查找LFIB表,如果对应的出标签是特殊标签,如标签3(0),则将报文的标签去掉,进行IP转发。

LSP的建立

建立方式

在这里插入图片描述

1.静态LSP:用户通过手工方式为各个转发等价类分配标签建立转发隧道;
2.动态LSP:通过标签发布协议动态建立转发隧道。

静态LSP

特点:
1.不使用标签发布协议(LDP),不需要交互控制报文,资源消耗比较小。
2.通过静态方式建立的LSP不能根据网络拓扑变化动态调整,需要管理员干预。
静态LSP适用于拓扑结构简单并且稳定的网络。

配置mpls时,需要为各路由器手工分配标签,需要遵循的原则是:前一节点出标签的值等于下一个节点入标签的值

动态LSP

1.通过LDP协议实现对FEC的分类、标签的分配及LSP的建立和维护等操作。
2.特点:
组网配置简单,易于管理和维护;
支持基于路由动态建立LSP,网络拓扑发生变化时,能及时反映网络状况。
3.建立过程:
在这里插入图片描述

1)Egress路由器RTD为本地存在的路由分配标签,并将路由和标签的绑定关系主动发送给上游邻居路由器RTC;
2)路由器RTC收到下游邻居路由器RTD的路由和标签的绑定关系后,将其记录到LIB中,并将自己分配的标签和路由的绑定关系发送给上游邻居路由器RTB;
3)RTB执行相同的动作将标签和路由的绑定关系发送给上游邻居路由器RTA,RTA为Ingress路由器,没有上游邻居,因此动态的LSP完成建立。

LDP邻居发现

在这里插入图片描述
1.MPLS路由器通过周期性地发送LDP链路Hello消息,实现LDP邻居的发现,并建立本地LDP会话。
2.LDP的Hello消息使用UDP封装。UDP是无连接的协议,为了保证邻居的有效性和可靠性,Hello消息周期发送,发送周期为5s,使用组播224.0.0.2作为目的IP地址,意思是“发送给网络中的所有路由器”。
3.LDP的Hello消息中,携带有Transport Address字段,该字段与设备配置的LSR ID一致,表明与对端建立邻居关系时所使用的IP地址。如果该字段IP地址是直连接口IP地址,则直接建立邻居关系;如果该字段地址是LoopBack接口IP地址,保证该接口IP地址路由可达,才能建立邻居关系

LDP邻居建立

1.LDP协议使用4种消息:

发现(Discovery)消息:用于通告和维护网络中邻居的存在,如Hello消息。
会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话,如Initialization消息、Keepalive消息。
通告(Advertisement)消息:用于创建、改变和删除FEC的标签映射,如Address消息、Label Mapping消息。
通知(Notification)消息:用于提供建议性的消息和差错通知。

2.建立过程
在这里插入图片描述

LDP邻居建立过程如图所示:
1)两个LSR之间互相发送Hello消息。
Hello消息中携带传输地址,双方使用传输地址建立LDP会话。
2)传输地址较大的一方作为主动方,发起TCP连接。
如图所示,RTB作为主动方发起TCP连接,RTA作为被动方等待对方发起连接。
TCP连接建立成功后,由主动方RTB发送初始化消息,协商建立LDP会话的相关参数。
3)LDP会话的相关参数包括LDP协议版本、标签分发方式、Keepalive保持定时器的值、最大PDU长度和标签空间等。
4)被动方RTA收到初始化消息后,如果RTA接受相关参数,则发送初始化消息,同时发送Keepalive消息给主动方RTB。
5)如果被动方RTA不能接受相关参数,则发送Notification消息终止LDP会话的建立。
主动方RTB收到初始化消息后,接受相关参数,则发送Keepalive消息给被动方RTA。
6)如果主动方RTB不能接受相关参数,则发送Notification消息给被动方RTA终止LDP会话的建立。
7)当双方都收到对端的Keepalive消息后,LDP会话建立成功。LDP会话建立成功后,进行FEC的创建与标签的分发

标签的发布方式

1.DU(下游自主方式):对于一个到达同一目地址报文的分组,LSR无需从上游获得标签请求消息即可进行标签分配与分发。
2.DoD(下游按需方式):对于一个到达同一目的地址报文的分组,LSR获得标签请求消息之后才进行标签分配与分发。
3.华为设备默认采用DU的方式发布标签。
4.DU无需等待上游的请求消息,可以直接向邻居分配标签。在网络拓扑发生变化时,采用DU方式可以快速反应为新的拓扑分发标签,收敛时间相对于DoD方式较短。

标签的分配控制方式

1.Independent(独立标签分配控制方式):本地LSR可以自主地分配一个标签绑定到某个IP分组,并通告给上游LSR,而无需等待下游的标签。
2.Ordered(有序标签分配控制方式):只有当该LSR已经具有此IP分组的下一跳的标签,或者该LSR就是该IP分组的出节点时,该LSR才可以向上游发送此IP分组的标签。

3.华为设备默认采用Ordered的方式分配标签。
4.采用Ordered方式,只有当该LSR已经具有此IP分组的下一跳的标签时,才能向上游分发标签,这样是为了避免下游IP分组的标签未分配或收敛时间较长,上游的标签已分配,数据开始转发造成的数据丢失。

标签的保持方式

1.Liberal(自由标签保持方式):对于从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都保留。
2.Conservative(保守标签保持方式):对于从邻居LSR收到的标签映射,只有当邻居LSR是自己的下一跳时才保留。
3.华为设备默认采用自由标签保持方式保存标签。

Penultimate Hop Popping(PHP)

举例说明
在这里插入图片描述
PHP(倒数第二跳弹出),具体过程:

1.RTC收到RTB发送的带标签1026的报文,查找LFIB表,发现分配的出标签为隐式空标签3,于是执行弹出标签的动作,并将IP数据包转发给下游路由器RTD;
2.RTD收到RTC发送的IP报文,直接查找自己的FIB表,根据FIB表中的出接口进行IP数据的封装并转发。

engress标签边缘路由可以直接查找FIB表转发,而不用查找LFIB,提高转发效率。

知识点参考于华为HedX文档

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值