目录
前言
- 修订说明
- 2025 年 7 月 16 日
- 修改了标题
- 修正了对于 mpls ldp 和 lsp-trigger all 两条命令的说明。
- 2025 年 7 月 16 日
正文
一、MPLS 简介
- MPLS 全称 Multi Protocol Label Switching 多协议标签交换,是建立于 IP 类型的网络协议(ospf、isis、bgp 等)之上的一种基于硬件转发的网络技术。
- MPLS 的标签
- 建立于 IP 类型的网络协议,当目的 IP 地址可达时,触发标签的生成,标签指向下一跳的邻居。
- 每个 IP 地址对应一个标签。在同一台路由器上,当不同来源的路由条目具有完全相同的目的 IP 和 MASK ,这些路由条目被称为 FEC(Forwarding Equivalent Class,转发等价类),这代表从这台路由器开始,他们都将根据 mpls 标签走同一条路径。
- MPLS 的标签储存在硬件上,当数据包通过 MPLS 转发数据时,不再需要进行路由的查询,而是直接通过硬件进行转发给邻居,使数据包在 CPU 性能匮乏的年代可以让数据进行高速转发。
- 行为类比
- IP 路由技术:每个路口(路由器)都有一副地图(SPF 树),在前往目的地的路上,每经过一个路口,就要看一次地图。
- MPLS:直接在路口的地图旁边增设指路牌(MPLS Label),跟着指路牌走就对了。
- 对 SPF 树感兴趣的同学可以去学习【SPF 树绘制 基础实验 精讲】。
- 应用场景
- 当前 IP 路由体系也已经实现了硬件转发,所以 MPLS 不再具备转发优势。
- 基于 MPLS 的标签转发特性,目前主流业务场景是 MPLS VPN。
二、实验说明
2.1 知识体系
- OSPF 基础。
2.2 实验目的
- 通过实验了解 MPLS 的基本特性。
三、拓扑图
- 按照图纸上的 MPLS 标记,在指定的接口配置 MPLS。
四、基础配置实验
4.1 配置脚本
- 基础实验配置包含 ospf 和 PC 的配置。
- 配置已验证,可放心使用。
- R1
system-view sysname R1 undo info-center enable interface Ethernet 0/0/0 ip address 172.16.1.254 24 interface GigabitEthernet 0/0/0 ip address 13.1.1.1 24 interface LoopBack 0 ip address 1.1.1.1 32 ospf 1 router-id 1.1.1.1 network 0.0.0.0 0.0.0.0 |
- R2
system-view sysname R2 undo info-center enable interface Ethernet 0/0/0 ip address 172.16.2.254 24 interface GigabitEthernet 0/0/0 ip address 23.1.1.2 24 interface LoopBack 0 ip address 2.2.2.2 32 ospf 1 router-id 2.2.2.2 network 0.0.0.0 0.0.0.0 |
- R3
system-view undo info-center enable interface GigabitEthernet 0/0/0 ip address 13.1.1.3 24 interface GigabitEthernet 0/0/1 ip address 23.1.1.3 24 interface GigabitEthernet 0/0/2 ip address 34.1.1.3 24 interface GigabitEthernet 0/0/3 ip address 36.1.1.3 24 interface LoopBack 0 ip address 3.3.3.3 32 ospf 1 router-id 3.3.3.3 network 0.0.0.0 0.0.0.0 |
- R4
system-view sysname R4 undo info-center enable interface GigabitEthernet 0/0/0 ip address 34.1.1.4 24 interface GigabitEthernet 0/0/1 ip address 45.1.1.4 24 interface LoopBack 0 ip address 4.4.4.4 32 ospf 1 router-id 4.4.4.4 network 0.0.0.0 0.0.0.0 |
- R5
system-view undo info-center enable interface Ethernet 0/0/0 ip address 172.16.5.254 24 interface GigabitEthernet 0/0/0 ip address 45.1.1.5 24 interface LoopBack 0 ip address 5.5.5.5 32 ospf 1 router-id 5.5.5.5 network 0.0.0.0 0.0.0.0 |
- R6
system-view sysname R6 undo info-center enable interface GigabitEthernet 0/0/0 ip address 36.1.1.6 24 interface GigabitEthernet 0/0/1 ip address 67.1.1.6 24 interface LoopBack 0 ip address 6.6.6.6 32 ospf 1 router-id 6.6.6.6 network 0.0.0.0 0.0.0.0 |
- R7
system-view undo info-center enable interface Ethernet 0/0/0 ip address 172.16.7.254 24 interface GigabitEthernet 0/0/0 ip address 67.1.1.7 24 interface LoopBack 0 ip address 7.7.7.7 32 ospf 1 router-id 7.7.7.7 network 0.0.0.0 0.0.0.0 |
4.2 验证基础配置
- 验证 OSPF
# 在任意路由器查看 OSPF 的 LSDB,此处以 R1 为例 # 能学习到 7 台设备的 Router-ID,则认为 ospf 配置正确。 |
- 验证 PC 互通
# 使用 PC1 ping 其他 PC |
# 所有 PC 都互通,则配置正确。剩余的 PC 请自行验证。 |
五、实验步骤:基于动态 ldp 分配
5.1 配置 MPLS
- 以 R1 为示例,在 R1 相邻 R2 的接口配置 MPLS
# 1、在系统视图下,为 MPLS 配置 lsr-id,lsr-id 类似于 ospf 的 router-id,是 mpls 网络中路由器的编号。lsr-id 必须是一个网络可达的 IP 地址,也称为 Transport Address。 # lsr 全称 Label Switched Router,标签转发路由器 |
# 2、全局开启 mpls [R1] mpls |
# 3、配置触发机制,为所有 IGP 路由添加 mpls 标签。 # 触发机制有多种,此处使用 lsp-trigger all 为所有路由条目配置标签(包括非 /32)。 [R1-mpls] lsp-trigger all # lsp 标签交换路径 Label Switched Path # ★★★★★重要说明:默认情况下,mpls 只为 /32 的主机路由分配标签。配置 lsp-trigger all 命令可以让 ldp 协议为所有 mpls 域内的路由条目分配标签。在大型网络环境下,一般禁止这种配置方式,因为这将导致路由器被占用大量的运算资源。 # 配置 lsp-trigger all 前 # 配置 lsp-trigger all 后 |
# 4、在 mpls 内开启 ldp 协议。 # ldp 全称 Label Distribution Protocol,标签分发协议。 # ldp 的作用简述:维持 mpls 邻居关系、动态建立标签转发路径 lsp、为 /32 位主机路由自动分发标签。 [R1-mpls] mpls ldp |
# 5、进入与其他路由器相连的直连接口,在接口下开启 MPLS 和 ldp。 [R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/1] mpls [R1-GigabitEthernet0/0/1] mpls ldp |
# 6、检查配置 # 检查全局 mpls 配置 <R1> display current-configuration configuration mpls # 检查接口 mpls 设置 [R1-GigabitEthernet0/0/1] display this # 检查接口使能 mpls 的情况 |
- 配置过程比较简单,剩下的按照 R1 的方法进行配置
- 配置的时候注意切换到系统视图下,拓扑图中所有接口带有 MPLS 标记的路由器都需要配置全局 MPLS 和 ldp。
- R3
mpls lsr-id 3.3.3.3 lsp-trigger all |
- R4
mpls lsr-id 4.4.4.4 lsp-trigger all |
- R5
mpls lsr-id 5.5.5.5 lsp-trigger all |
- R6
mpls lsr-id 6.6.6.6 lsp-trigger all |
- 验证配置,以 R3 为示例
# 查看当前路由器与邻居的 session(会话)。 # Status 的属性值 Operational 表示邻居建立成功。 |
# 查看 mpls 的标签交换路径 lsp <R3> display mpls lsp |
- 会话建立成功,剩余路由器请自行测试。
5.2 抓包测试
- 以 R1 --> R7 为示例,从 PC1 ping PC7,在 R1 的 G0/0/0 口抓包,观察 ICMP 包是否被打上 MPLS 标签。
- ping 测试
- 发包
- 回包
5.3 原因分析
- PC1 --> PC7 单向路径分析
# 首要事项说明: 1、只有当路由器全局配置 MPLS 和 LDP,路由器才能建立 mpls 邻居。 2、mpls ldp 命令为所有 /32 位主机路由分发 mpls 标签。 3、只有当路由器配置了触发机制(lsp-trigger all),mpls 才会为所有路由条目分配标签(包括非 /32)。 |
# 路由器属性分析 # R1 LER:Label Edge Router,标签边缘路由器。 Ingress:mpls 域入口,流量在这里被压入(push)标签。 # R3 LSR:Label Swtiched Router,标签交换路由器,只执行正常的标签交换;且只有配置了 MPLS 和 LDP 的接口才能进行 mpls 数据转发。 在这个位置,标签被弹出(pop)。 # R6 LER:Label Edge Router,标签边缘路由器。 Egress:mpls 域出口 |
# 图示 # 在这个方向,标签只存在于 R1 --> R3 的路径上。 |
- PC7 --> PC1 单向路径分析
# 图示 |
# 分析 3、当路由条目到达 R1 的 G0/0/0 口时,已经没有携带 mpls 标签了。 |
- 自此,mpls 标签的携带情况分析完毕,剩余的线路请自行进行分析验证。