加载中...

MPLS协议

一、MPLS(多协议标签交换)协议简介

1.1 MPLS协议特点

​ 多协议标签交换(MPLS)技术是在20世纪90年代中期提出的,旨在解决当时IP网络快速发展中遇到的转发性能瓶颈问题。基于最长匹配算法的IP技术(解决最长匹配)必须使用软件方法查找路由,转发性能低下,所以IP的转发性能成为当时限制网络发展的瓶颈。在这种背景下,IETF提出了MPLS协议。

​ MPLS结合了IP路由的灵活性和ATM交换的高效性,通过在数据包中添加标签来实现快速转发。对IP网络和ATM网络进行对接的技术。后来应用比较广泛,MPLS-VPN,SR-MPLS等技术。

1.2 MPLS术语

Mpls domain

image-20250317065946958

​ MPLS网络的基本组成单元是标签交换路由器LSR(Label Switching Router),由LSR构成的网络区域称为MPLS域(MPLS Domain)。位于MPLS域边缘、连接其它网络的LSR称为边缘路由器LER(Label Edge Router)。

LSP

image-20250317065846289

LSP的起始节点称为入节点(Ingress);位于LSP中间的节点称为中间节点(Transit);LSP的末节点称为出节点(Egress)。

转发等价类

转发等价类FEC(Forwarding Equivalence Class)是一组具有某些共性的数据流的集合,即标识着一条路由。

1.3 路由器角色

image-20250317070311002

LSR label switching router 标签交换路由器

模式:Transit, 动作:swap 交换

LER label edge router:标签边界路由器

​ 角色: inbound LER: 模式:Ingress,动作:push 压入

​ 角色:outbound LER 模式:Egress, 动作:pop 弹出

二、MPLS(多协议标签交换)协议结构

2.1 MPLS报文结构

img

   +-------------------------------+
   |             IP Header         |
   +-------------------------------+
   |  (One or more MPLS labels)    |
   +                               +
   |     MPLS Label stack          |
   +-------------------------------+
   |              L2               |
   +-------------------------------+
   |              L1               |
   +-------------------------------+

MPLS消息封装在链路层和网络层之间,用于向IP层提供连接服务,同时又从链路层得到服务,Type=MPLS label switched packet (0x8847)。

2.2 MPLS报文首部

image-20250317070947771

字段 位数 描述
Label 20 bit 标签值,用于标识数据包的转发路径
0-15:保留
16-1023:静态LSP和静态CR-LSP共享的标签空间。
1024及以上:动态标签LDP、RSVP-TE、MP-BGP等动态信令协议的标签空间
Exp 3 bit 实验字段,通常用于 QoS(服务等级),实现QoS优先级控制。
S 1 bit 栈底标识,标记是否为标签栈的最底层。
TTL 8 bit 用于当网络出现环路时,防止标签报文被无限制转发(与IP TTL相互独立)。

2.2.1 特殊标签

标签值 含义 描述
0 IPv4 Explicit NULL Label 表示该标签必须被弹出,且报文的转发必须基于IPv4。如果出节点分配给倒数第二跳节点的标签值为0,则倒数第二跳LSR需要将值为0的标签正常压入报文标签值顶部,转发给最后一跳。最后一跳发现报文携带的标签值为0,则将标签弹出。
1 Router Alert Label 只有出现在非栈底时才有效。类似于IP报文的“Router Alert Option”字段,节点收到Router Alert Label时,需要将其送往本地软件模块进一步处理。实际报文转发由下一层标签决定。如果报文需要继续转发,则节点需要将Router Alert Label压回标签栈顶。
2 IPv6 Explicit NULL Label 表示该标签必须被弹出,且报文的转发必须基于IPv6。如果出节点分配给倒数第二跳节点的标签值为2,则倒数第二跳节点需要将值为2的标签正常压入报文标签值顶部,转发给最后一跳。最后一跳发现报文携带的标签值为2,则直接将标签弹出。
3 Implicit NULL Label 倒数第二跳LSR进行标签交换时,如果发现交换后的标签值为3,则将标签弹出,并将报文发给下最后一跳。最后一跳收到该报文直接进行IP转发或下一层标签转发。
4~13 保留 -
14 OAM Router Alert Label MPLS OAM(Operation Administration & Maintenance)通过发送OAM报文检测和通告LSP故障。OAM报文使用MPLS承载。OAM报文对于Transit LSR和倒数第二跳LSR(penultimate LSR)是透明的。
15 保留 -

2.2.2 标签栈

标签栈按后进先出(Last In First Out)方式组织标签,从栈顶开始处理标签。

img

2.3 LSP的建立

2.3.1 静态LSP

image-20250317082012554

# ingress设备配置
[Huawei]static-lsp ingress tor6 destination 6.6.6.6 32 outgoing-interface GigabitEthernet 0/0/0 nexthop 10.1.45.5 out-label 23

# transit设备配置
[Huawei]static-lsp transit A incoming-interface g 0/0/0 in-label 23 nexthop 10.1.56.6 outgoing-interface g 0/0/1 out-label 34

# egress设备配置
[Huawei]static-lsp egress tor6 incoming-interface g 0/0/1 in-label 34

2.3.2 动态LSP

动态LSP有很多种,本次使用LDP

协议 用途
LDP 基于IGP路由自动分配标签,建立最短路径LSP。
RSVP-TE 支持流量工程(TE),显式指定路径并预留带宽。
MP-BGP 用于MPLS VPN场景,传递VPN路由并分配内层标签(VPN Label)。
[Huawei]mpls ldp 
[Huawei-mpls-ldp]q
[Huawei]int g 0/0/0
[Huawei-GigabitEthernet0/0/0]mpls ldp

三、LDP协议

3.1 LDP协议简介

LDP(Label Distribution Protocol),标签分发协议,是MPLS网络中 动态分配标签 的标准协议,基于IGP路由自动建立标签交换路径(LSP),负责FEC的分类,专门用于标签分配分发、控制、存储。以及LSP的建立与维护。

3.2 LDP分发与管理

Huawei设备的分配控制默认只有Ordered,默认按黄色部分执行

分类 Frame Mode(帧模式 IP) Cell Mode(信元模式 ATM)
标签空间 全局标签空间(Label Space ID=0)
所有接口使用相同标签池,统一分配标签。
接口标签空间
每个接口独立分配标签池,不同接口标签不重复。
标签分发 DU(下游自主分发)
下游主动向上游推送标签,无需请求。
DoD(下游按需分发)
下游仅在收到上游请求时响应标签分发。
分配控制 Independent(独立分配)
各节点独立分配标签,无需等待下游完成(快速建立LSP,可能产生临时黑洞)。
Ordered(有序分配)
从出口到入口逐跳分配标签,确保路径可靠(延迟高,但避免临时黑洞)。
标签存储 Liberal(自由保留)
保存所有邻居的标签映射,支持快速路径切换。
Conservative(保守保留)
仅保留最优路径标签映射,减少资源占用。
优点 1. 配置简单,兼容IP网络。
2. 标签分发速度快(DU模式)。
3. 路径切换灵活(Liberal存储)。
1. 标签按需分发(DoD),减少冗余。
2. 路径可靠性高(Ordered分配)。
3. 安全性强(Conservative存储)。

3.3 LDP报文

3.3.1 MPLS LDP Discovery

消息用于通告和维护网络中LSR的存在。

image-20250317080552115

封装在udp 646报文, Sip 接口IP,Dip 组播:224.0.0.2

携带IPv4 Transport Address 通过TLV来携带,这个默认是LSR-ID的地址

当LSR-ID不可达时,可修改

Interface g0/0/0
   mpls ldp transport-address interface

3.3.2 MPLS LDP Initialization

在LDP会话建立阶段发送。

image-20250317081117477

通过Parameters字段携带各种协商参数

3.3.3 MPLS LDP KeepAlive

维护MPLS LDP会话的状态

image-20250317081331938

3.3.4 MPLS LDP地址(Address)

MPLS LDP Address消息用于LSR发送地址消息到LDP邻居,以公告其接口地址。

image-20250317081456272

Addresses字段携带自身设备LSR-ID和使能mpls ldp接口的地址

3.3.5 Label Mapping

发送FEC的状态信息

image-20250317081557179

FEC Elements 携带FEC路由

Generic Label 对应的标签信息

3.4 LDP状态机

image-20250317080158118

Non-Existent

​ 该状态为LDP Session最初的状态,在此状态双方发送HELLO消息,选举主动方,在收到TCP连接建立成功事件的触发后变为Initialized状态。

​ 发起TCP连接,transport ip 大向transport ip小发起tcp 646连接

image-20250317075952300


Initialized

​ 该状态下分为主动方和被动方两种情况,主动方将主动发送Initialization消息,转向OpenSent 状态,等待回应的Initialization消息;被动方在此状态等待主动方发给自己的Initialization消息,如果收到的Initialization消息的参数可以接受,则发送Initialization和KeepAlive转向OpenRec状态。

image-20250317080029736


OpenSent

主动方发送完Initialization消息


OpenRec

发送KeepAlive报文后的状态,被动方率先到达


Operational

只要收到KeepAlive报文后就进入这个状态

3.5 LDP配置

[Huawei]mpls ldp 
[Huawei-mpls-ldp]q
[Huawei]int g 0/0/0
[Huawei-GigabitEthernet0/0/0]mpls ldp

四、MPLS(多协议标签交换)协议机制

4.1 控转平面

image-20250317082537563

[!NOTE]

在静态LSP中不存在LIB表,因为是手动分配的。

LDP协议下才能产生LIB表!

在华为模拟器中,LFIB表包含ILF 和 NHLFED 的所有信息,其余动作应该先差ILF表,再查NHLFE表,这两个动作视为查询一次LFIB表。

4.2 MPLS转发术语

4.2.1 FTN

FEC到一组NHLFE的映射(FEC-to-NHLFE)

4.2.2 ILM

入标签到一组下一跳标签转发表项的映射称为入标签映射ILM(Incoming Label Map)。

ILM包括:Tunnel ID、入标签、入接口、标签操作类型等信息。

ILM在Transit节点的作用是将标签和NHLFE绑定。通过标签索引ILM表,就相当于使用目的IP地址查询FIB,能够得到所有的标签转发信息。

4.2.3 NHLFE

下一跳标签转发表项NHLFE(Next Hop Label Forwarding Entry)用于指导MPLS报文的转发。

NHLFE包括:Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息。

4.2.4 Tunnel ID

为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为各种隧道分配了一个ID,也称为Tunnel ID。该Tunnel ID只是本地有效。

4.2.5 PHP

倒数第二跳弹出特性PHP(Penultimate Hop Popping),在倒数第二跳节点处将标签弹出,减少最后一跳的负担。最后一跳节点直接进行IP转发或者下一层标签转发。

4.3 数据转发分析

ingress设备

1.查询FIB表

image-20250317083511581

发现是TunnelID 0x1,MPLS转发

2.查询NHLFE表

image-20250317083601854

压入标签23 转发 出口 G 0/0/0

transit设备

用display mpls lsp verbose信息来代替(华为在LFIB表包含了NHLFE和ILM)

image-20250317083647623

实际上,先查询ILM表,通过Tunnel ID(Token)关联到NHLFE,执行swap动作。


[!CAUTION]

在LDP的标签分配或 Implicit NULL Label(特殊3)标签的分发上,执行PHP的动作时,transit设备逻辑是

用display mpls lsp verbose信息来代替(华为在LFIB表包含了NHLFE和ILM)

image-20250317084424331

实际上,先查询ILM表,通过Tunnel ID(Token)关联到NHLFE,发现Out- Label 为 3 ,执行POP动作,变为IP包发送。

egress设备

1.收到带有标签的包,先查询LFIB表

image-20250317083729479

实际上,先查询ILM表,Tunnel ID(Token)为0,执行pop,查询FIB表。

五、MPLS-VPN应用

5.1 MPLS-VPN简介

​ MPLS-VPN:使用BGP在运营商骨干网(IP网络)上发布VPN路由,使用MPLS在运营商骨干网上转发VPN报文。BGP/MPLS IP VPN又被简称为MPLSVPN,是一种常见的L3VPN(Layer 3VPN)技术。

5.2 组件介绍

image-20250317085529589

PE:Provider Edge Router,骨干网的边缘路由器,是运营商的设备

CE:Custom Edge Router,用户网边缘路由器,是用户的设备。

P router: Provider Router,骨干网路由器,负责MPLS转发。

ASBR:在域间中的边缘路由器。

5.3 常见术语

VRF(VPN Routing and Forwarding table)

VRF(VPN Routing and Forwarding table),也叫VPN实例(VPN-instance),三层本地虚拟化 本质是一个虚拟路由器/虚拟路由表

VPN-IPv4地址结构

包括8字节的路由标识符RD和4字节的IPv4地址前缀,为了区分使用相同地址空间的IPv4前缀,仅本地有效。

image-20250317085740650

MP-BGP

为了正确处理VPN路由,VPN使用相关标准(Multiprotocol Extensions for BGP-4)中规定的MP-BGP,即BGP-4的多协议扩展传递Vpnv4路由

VPN Target

BGP/MPLS IP VPN使用64位的BGP扩展团体属性-VPN Target来控制VPN路由信息的发布。

Export Target(ERT):本地PE从直接相连Site学到IPv4路由后,转换为VPN-IPv4路由,并为这些路由设置Export Target属性。

Import Target(IRT):PE收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。匹配时,PE就把路由加入到该VPN实例的路由表。

5.4 常见方案

5.4.1 跨域VPN-OptionA

image-20250317090315326

VPN-OptionA也称为背靠背VRF,ASBR作为CE角色

ASBR之间运行普通IPv4路由协议(如eBGP/静态路由),不传递VPNv4路由。

跨域流量:VPN数据包在AS间传递时被 解封装为原始IP报文,由对端ASBR重新压入标签转发。

5.4.2 跨域VPN-OptionB

image-20250317090840363

ASBR间传递VPNv4路由,ASBR之间通过MP-EBGP,交换VPNv4路由,跨域流量始终携带两层标签。

5.4.3 跨域VPN-OptionC1

image-20250317091029286

当本端ASBR从对端的ASBR学到对端AS域内的带标签BGP公网路由后,通过策略为该路由分配标签,发布给支持标签能力的IBGP邻居PE,从而建立一条完整的公网LSP。

image-20250317093214317

#
route-policy 5T2 permit node 10 
 if-match ip-prefix 6.6 
 apply mpls-label
#
route-policy 5T2 permit node 20 
BGP
 ipv4-family unicast
  peer 10.1.45.4 enable
  peer 10.1.45.4 route-policy 5T2 export
  peer 10.1.45.4 label-route-capability

# 要传递到RR设备上,即收到对端ASBR设备的标签后继续为RR分配

5.4.4 跨域VPN-OptionC2

image-20250317092107995

在PE和ASBR之间不用配置IBGP邻居。当ASBR从对端的ASBR学到对端AS域的带标签BGP公网路由后,通过将本端ASBR上的BGP路由引入IGP协议中,并触发为带标签的公网BGP路由建立LDP LSP,从而建立一条完整的公网LSP。

# 减少C1的分标签设备数量,直接引入到OSPF中自动为32位主机路由分配
ospf
import-route bgp

posted @ 2025-03-18 20:15  江寒雨  阅读(285)  评论(0)    收藏  举报