当前位置: 首页 > news >正文

MPLS原理

背景

90年代,为解决流量快速增长而设备性能受到限制,相较于传统的基于IP路由表转发已经无法满足需求,MPLS多协议标签交换被提出,创新式的提出基于标签转发,一定情况下缩短了包处理时间,而后续随着设备性能不断迭代,MPLS因为其转控分离,支持多层标签嵌套分发更多被用于VPN和QOS领域当中

相关概念

MPLS域:一系列运行MPLS的设备组成的域

LSR:运行MPLS的设备

FEC:转发等价类,是一组具有某些共性的数据流集合,通常用路由条目或DSCP等特征划分

LSP:标签交换路径,是标签报文穿越MPLS域到达目的地的路径,对于同一个FEC其标签是一样的

设备角色

根据所属MPLS域的位置

ler:位于MPLS域边缘的设备

core lsr:MPLS域内部的设备

根据对流量处理的方式

ingress入站LSR:通常指向IP报文中压入标签的设备

transit中转LSR:通常指将MPLS报文进行置换标签,并将其在MPLS域内继续传递的设备

egress出站LSR:通常指将MPLS报文进行剥离标签,还原为IP报文的设备

行为

PUSH:压入标签

SWAP:交换标签

POP:弹出标签

报文

MPLS标签报文被嵌入在数据链路层和网络层之间,自持嵌套包含

Label20bit,范围0-15,16-1023静态分布,1023-1048575被用于动态分配

Experimental Use实验字段3bit:同于CoS(class of servive)

S栈底位1bit:用于标识该标签是不是最后一个MPLS标签,如果是置1,不是置0

TTL8bit:作用同IP报文的TTL

重要表项

FTNFEC-to-NHLFE)在ingress存在

包括:Tunnel IDFECNHLFE映射信息

NHLFE下一跳标签转发表项(Next Hop Label Forwarding Entry)在ingress和transit存在

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

ILM标签映射(ILMIncoming Label Map)在transit和egress存在

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

转发流程

1.当流量进入根据FIB表项查看如果发现Tunnel-id不为0X0即视为进入标签转发(对应图中1)

2.通过Tunnel-id查询NHLFE表项关联流量(对应图中2)

3.依据NHLFE表项对流量进行相关操作,这里是压入标签Z并转发到1.1.1.2(对应图中3,4)

4.R2收到数据查ILM表(对应图中5)

6.由ILM表的Tunnel-id关联NHLFE表项(对应图中6)

7.明确行为位交换标签并且下一跳为2.2.2.2执行(对应图中7)

8.R3收到查ILM表项根据表项进行下一步处理即出站去除标签还原为IP报文(对应图中8,9)

配置案例

结合以上拓扑现要求实现1.1.1.1访问3.3.3.3实现双向标签转发

实验步骤

1.IP地址配置

R1

R2

R3


2.OSPF路由互通


3.激活MPLS

本操作以R1为例

mpls lsr-id 1.1.1.1
mpls
INT E0/0/0 
MPLS


4.静态LSP配置

[R3]static-lsp egress 1 incoming-interface Ethernet0/0/0 in-label 666
[R1]static-lsp ingress 1 destination 3.3.3.3 32 nexthop 10.0.12.2 out-label 777
[R2]static-lsp transit 1 incoming-interface Ethernet0/0/0 in-label 777 nexthop 10.0.
23.3 out-label 666
1.1.1.1 ---->3.3.3.3[R3]static-lsp ingress 2 destination 1.1.1.1 32 nexthop 10.0.23.2 out-label 666
[R2]static-lsp transit 2 incoming-interface Ethernet0/0/1 in-label 666 nexthop 10.0.
12.1 out-label 777
[R1]static-lsp egress 2 incoming-interface Ethernet0/0/0 in-label 777
3.3.3.3 ---->1.1.1.1

效果查看

对于入栈设备查看FIB表得到tunnel id,再通过nhlfe表项得知具体行为

对于中转设备查看ILM表得到tunnel id,再通过nhlfe表项得知具体行为

对于出栈设备查看ILM表可看到其弹出栈的行为

以下以R1为例查看

ping包携带标签

http://www.xdnf.cn/news/1347319.html

相关文章:

  • 基于SamGeo模型和地图客户端的实时图形边界提取
  • Rust Web开发指南 第一章
  • 计算机网络:TCP、UDP
  • 【Dubbo】高性能的 RPC
  • RK3506 开发板:重塑嵌入式系统领域的新标杆
  • 整数规划学习总结
  • 靶机 - SAR
  • 【学习记录】c完整线程池实现
  • 集成算法学习笔记
  • C++ OpenGL中几个常见库及其区别
  • Python实现从Parquet文件生成Redshift表并存储SQL语句
  • Eigen 中Sparse 模块的简单介绍和实战使用示例
  • (纯新手教学)计算机视觉(opencv)实战八——四种边缘检测详解:Sobel、Scharr、Laplacian、Canny
  • Day11 数据统计 图形报表
  • RKLLM 模型转换从0开始
  • vagrant怎么在宿主机操作虚拟机里面的系统管理和软件安装
  • 2025软件供应链安全技术路线未来趋势预测
  • vim的使用
  • Retrieval-Augmented Generation(RAG)
  • 为什么访问HTTPS站点时,会发生SSL证书错误
  • Trie 树(字典树)
  • 8月22号打卡
  • FFmpeg及 RTSP、RTMP
  • GitGithub相关(自用,持续更新update 8/23)
  • 文件下载和文件上传漏洞
  • LeetCode第1695题 - 删除子数组的最大得分
  • CSS自定义属性(CSS变量)
  • Jenkins发布spring项目踩坑——nohup java -jar发布后显示成功,但实际jps查询并未运行
  • kubernetes中pod的管理及优化
  • Python打卡Day49 CBAM注意力