4.9 多协议标记交换MPLS

69a4be99eb9a4891b04b300342021e11.png

思维导图:

f745b5591af44cb1a27b030cfdb8537b.png

前言:

**4.9 多协议标记交换MPLS笔记**

1. **定义与背景**:
   - MPLS (多协议标记交换) 是一种由 IETF 开发的新协议。
   - “多协议”意味着 MPLS 的上层可以使用多种协议。
   - 该协议综合了多家公司的技术,如 Cisco 的 TAG Switching 和 Ipsilon 的 IP Switching。
   - 于2001年1月成为互联网建议标准。

2. **工作原理**:
   - MPLS 使用面向连接技术,使每个分组带有一个 "标记" (label)。
   - 分组到达交换机 (标记交换路由器) 时,通过标记检索分组转发表,提高了转发效率。

3. **与ATM的关系**:
   - MPLS 和 ATM 都采用面向连接的工作方式。
   - 一度人们认为 ATM 会是网络的未来,但高速 IP 路由器由于其价格低廉,占据了主导地位,导致 ATM 未成为主流。
   - MPLS 不是为了取代 IP,而是作为 IP 的增强技术在互联网中被广泛应用。

4. **MPLS 的特点**:
   - 支持面向连接的服务质量。
   - 支持流量工程,可以平衡网络负载。
   - 有效支持虚拟专用网 (VPN)。

5. **其他说明**:
   - MPLS 中的 "label" 通常被翻译为 "标记",尽管也有其他翻译如 "标签"。

b1abde464e46495da547e8233c9cec8b.jpeg

4.9.1 MPLS的工作原理笔记

1. **传统IP网络问题**:
   - 分组在每个路由器都需查找路由表,按“最长前缀匹配”确定下一跳。
   - 大型网络路由表查找时间长,可导致缓存溢出、分组丢失和服务质量下降。

2. **MPLS解决方案**:
   - 在MPLS域入口,为IP数据报打上固定长度“标记”。
   - 根据标记用硬件转发IP数据报,速度加快。
   - 采用标记交换:不再上升到第三层,直接在第二层用硬件转发。

3. **MPLS域和LSR**:
   - MPLS域中所有路由器都支持MPLS技术,称为标记交换路由器LSR。
   - LSR同时具有标记交换和路由选择功能。

4. **MPLS基本工作过程**:
   - **标记分配与交换路径**:LSR使用标记分配协议LDP交换报文,确定与标记对应的标记交换路径LSP。例如路径A→B→C→D。
   - **打标记与转发**:IP数据报进入MPLS域时,入口结点打上标记并按转发表转发给下一个LSR。后续LSR都按标记转发。
   - **标记对换**:每个LSR在转发时,将入标记更换为出标记。
   - **标记移除**:IP数据报离开MPLS域时,出口结点移除标记,后续使用常规转发。

5. **分类**:
   - 分类指为IP数据报打标记的过程。
   - 三种分类:第三层(仅IP首部),第四层(加入TCP/UDP首部),第五层(考虑有效载荷)。

6. **显式路由选择与传统路由选择**:
   - MPLS采用显式路由选择,由入口LSR确定整个MPLS域内的转发路径。
   - 与常见的“每路由器逐跳选择”方式不同。

这些笔记摘要了MPLS的工作原理,从其与传统IP网络的区别、基本操作流程到重要概念,为读者提供了一个清晰的理解框架。

 我的理解:

我们可以用“机场快速通道”来类比MPLS的工作原理。

1. **标记(Label)的引入**:
   - 想象你进入一个国际机场,首先需要办理托运、安检等一系列手续。如果你是一个特定的VIP旅客,你会被赋予一个特别的徽章或贴纸。这就类似于MPLS中为数据报文加上的标记。

2. **硬件转发**:
   - 拥有VIP标记的你不再需要在每个检查点排队并按照常规流程办理,而是可以直接沿着专门为VIP设定的快速通道前进,类似于数据报文在MPLS域中的快速转发。

3. **标记交换(Label Swapping)**:
   - 当你从一个航站楼走到另一个航站楼时,可能需要更换你的VIP徽章或贴纸,因为在不同的航站楼中,标识VIP的方法可能不同。这就像MPLS中数据报文在每个路由器上更换标记。

4. **确定路径与LSP**:
   - 在机场内,有明确标示的路线图,指引VIP旅客应该如何快速通过机场各个环节。这与MPLS中预先设定的标记交换路径(LSP)相似。

5. **退出MPLS域**:
   - 当你最终到达登机口,准备登机时,你的VIP标记可能会被移除,你将与其他所有旅客一样登机。这与数据报文在离开MPLS域时去除标记的过程相似。

6. **显式路由选择**:
   - 这就像机场为VIP旅客提供的专用路线,不同于常规旅客的路径,整个过程都已预先规划好,不需要在每个环节重新决策。

所以,MPLS就像是网络中的“VIP快速通道”,能够更高效地处理数据流,并确保数据报文快速、稳定地到达目的地。

a82a236f15f540b1a184cf386e231a5d.jpeg

**MPLS转发等价类FEC**

**定义**:
- **FEC (Forwarding Equivalence Class)**:一组被路由器以相同方式处理的IP数据报集合。这种相同的方式处理可以是:同样的接口转发、相同的下一跳地址、相同的服务类别、相同的丢弃优先级等。

**FEC的例子**:
1. 与特定IP地址前缀匹配的目的IP数据报(类似于普通的IP路由器)。
2. 所有源地址和目的地址都相同的IP数据报。
3. 满足某种服务质量需求的IP数据报。

**特性**:
- FEC的划分非常灵活,完全取决于网络管理员的需求和判断。
- 一个入口节点不是给每一个IP数据报都分配一个独特的标记,而是给同一FEC的IP数据报分配相同的标记。
- FEC与标记之间是一对一的关系。

**FEC在负载平衡中的应用**(参考图4-62):
- 传统路由选择方法可能导致某条路径过载,如A→B→C。
- 使用MPLS和FEC,可以通过定义多种FEC来实现负载平衡。
  - 例如,A可以为来自H₁目的地为H₃的数据定义FEC,并选择路径H₁→A→B→C→H₃;
  - 而为来自H₂目的地为H₄的数据定义另一个FEC,并选择路径H₂→A→D→E→C→H₄。
- 这样的策略使得网络负载更均衡,称为流量工程(Traffic Engineering)或通信量工程。

**其他**:
- 『标记对换』与『标记交换』在MPLS上下文中的使用注意。虽然MPLS的LS表示“标记交换”,实际功能是“标记对换”。

【图4-62解读】:
- 传统路由可能导致A→B→C路径过载。
- 通过使用MPLS和自定义FEC,可以使负载更均衡,例如通过路径H₁→A→B→C→H₃和H₂→A→D→E→C→H₄。

 我的理解:

我们可以用一个"火车站调度"的比喻来解释。

---

想象一下,IP数据报是一列列火车,而我们的网络就是一套复杂的铁路系统。每列火车都有自己的起点和目的地,需要在这个铁路系统上找到一条适当的路径。在普通的路由方式中,所有火车都会被调度到最短或最快的路径,比如从A站到C站只经过B站。这就像一个繁忙的火车站,所有的火车都尝试走最快的线路,结果造成了这条线路的拥堵。

而**FEC**就像是火车站的调度员,他们可以为火车分配特定的轨道。比如,从H₁出发去H₃的火车可能被分配到A-B-C这条线路,而从H₂出发去H₄的火车可能被分配到A-D-E-C这条线路。这样,火车的流量就被合理地分散开,使得整个铁路系统运行得更加平稳和高效。

**标记**可以看作火车上挂的标志或者车票,告诉火车应该走哪条线路。同一种FEC的火车都有相同的标志或车票,因此它们都会走相同的路径。

这种方法,也就是为火车(或IP数据报)分配特定的轨道(或路径),使得火车流量更均匀地分布在整个铁路系统上,就叫做“流量工程”或“通信量工程”。

---

fce90ca61999414ea6d8542c42960f94.jpeg

笔记:MPLS首部的位置与格式

  1. 邮递标签的需要

    • 通常,我们发送的邮件只需要一个地址标签。但有时,为了特殊处理或更高效的投递,我们可能需要加上一个额外的标签。
    • 同样,IP数据报在传输时需要一种特殊的“标签”,即MPLS标记。但是,像IPv4这样的标准邮递方式并没有为这种特殊标签预留空间。因此,我们需要一个方法将其加入。
  2. 标签的位置

    • 假设你的邮件是放在一个信封里的。在你的信和信封之间,你加上了这个特殊的邮递标签。
    • 同样地,MPLS首部就像这个特殊标签,位于数据报和以太网帧之间,确切地说,它位于第二层和第三层之间。
  3. 标签的识别

    • 为了让邮递员知道这是一个特殊的包裹,这个邮递标签有一个特定的标记或颜色。
    • 对于MPLS,当帧携带MPLS标记时,以太网的类型字段会有特定的值,使接收方知道这是一个带有MPLS标记的帧。
  4. 标签的细节

    • 这个邮递标签上有几个重要的字段或部分,如特殊处理要求、优先级和有效期等。
    • MPLS首部有四个字段:标记值、试验、栈S和生存时间TTL。其中,标记值就像一个特定的编号,指明如何处理这个数据报。生存时间TTL像邮递标签上的有效期,确保邮件不会在邮局里不断地被传递,而无法被投递。

a80db11713e640baa2ae776e1a102374.jpeg 

02d4ce6f76454c2591c413ef3312ed14.jpeg

 多协议标记交换 (MPLS) 总结

**重点:**

1. **标记和标记交换**:MPLS的核心是给数据包打标签并在网络中交换这些标签,以高效地路由数据包。
2. **转发等价类 (FEC)**:相同处理方式的IP数据报的集合。一旦一个数据包被分配到一个FEC,它就被赋予一个标签,此后在MPLS网络中,数据包的路由基于这个标签而非其原始IP头。
3. **性能优化**:MPLS允许流量工程和QoS(服务质量)优化,从而实现更高效和可靠的网络性能。
4. **层次结构**:MPLS操作在第2层(数据链路层)和第3层(网络层)之间,这意味着它可以在多种物理网络上工作。

**难点:**

1. **配置和管理**:由于MPLS提供了高度的灵活性,配置和管理可能会复杂,尤其是在大型网络中。
2. **理解标签堆栈**:在某些情况下,MPLS标签可以堆叠在一起,这需要对MPLS有深入的理解。
3. **流量工程**:虽然MPLS支持流量工程,但要正确和有效地实现它可能需要深入的网络知识和实践经验。

**易错点:**

1. **误解标签操作**:可能会混淆MPLS标签和常规IP路由。重要的是要记住,一旦数据包进入MPLS网络,它是基于其标签而不是IP头进行路由的。
2. **配置错误**:由于MPLS的灵活性,配置错误可能导致数据包路由不当,或网络性能下降。
3. **标签资源管理**:不当地管理和分配MPLS标签可能会浪费网络资源。

通过对MPLS的深入理解和实践,网络工程师可以避免这些常见的误区并充分利用其提供的优势。

edd541db542142d7ad9e3aa91d9405d0.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/145524.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker从入门到入土 2】Docker数据管理、网络通信和网络模式 1.0

Part2 一、Docker网络模式(面试高频)1.1 Docker 网络实现原理1.2 host模式1.3 container模式1.4 none模式1.5 bridge模式1.6 自定义网络 二、Docker网络通信2.1 端口映射2.2 容器互联 三、Docker资源控制3.1 Cgroup简介3.2 CPU资源控制3.2.1 设置CPU使用…

java--自增自减运算符

1.自增自减运算符 注意:、--只能操作变量,不能操作字面量的。 2.自增自减的使用注意事项 1.、--如果不是单独使用(如果在表达式中、或者同时有其它操作),放在变量前后会存在明显区别 1.1放在变量前面,先对变量进行1、-1&#xff…

6、centos7安装DNS服务器结合Nginx Proxy Manager实现局域网自定义域名解析

前言 我想在物理主机(windows11)、虚拟机(CentOS7)、虚拟机上部署的k8s集群所在的局域网内实现自定义域名的访问,通过Nginx Proxy Manager反向代理。 最终效果:在Nginx Proxy Manager的页面配置的域名能准确解析到代理的目标主机…

低代码助力软件开发

低代码开发工具正在日益变得强大,它正不断弥合着前后端开发之间的差距。对于后端来说,基于低代码平台开发应用时,完全不用担心前端的打包、部署等问题,也不用学习各种框架(Vue、React、Angular等等)&#x…

数据结构: map与set的简单实现

目录 map与set的模拟实现 1.基本框架 2.模拟实现map与set所需要做的事 1.使用模板 , 达到泛性编程 2.比较问题 3.迭代器 RBTree中: operator operator-- 4.map [ ] 的实现 5.使用普通迭代器构造const迭代器 效果 map与set的模拟实现 1.基本框架 map set 2.模拟实…

如何在Potplayer中使用公网访问群晖WebDav?

文章目录 1 使用环境要求:2 配置webdav3 测试局域网使用potplayer访问webdav4 内网穿透,映射至公网5 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内容让人一言难尽,就算是购买了国外的优秀作品,也总是在关键剧情上删删…

【必看技巧】Access开发者必备:如何用代码隐藏功能区、导航区、状态栏?

hi,大家好呀! 今天想着给大家分享点啥呢?最近几个月断更的有些“勤快”了,那就给大家分享个几行代码。 当我们在access中开发完成后,为了让我们的系统更加的像一个系统,我们会把access的功能区&#xff0…

ubuntu系统由于英伟达显卡驱动问题黑屏或者其他报错开机无法进入系统解决办法!

背景: 硬件:CPU:AMD PRO 3955WX、硬盘:一块固态(ubuntu)一块固态(windows)双系统、英伟达丽台RTX4000显卡; 故障: 把显卡拆出来,拿到别的地方测…

GoLong的学习之路(五)语法之数组

书接上回,上回书说到,循环语句,在go中循环语句的少了whlie这个关键词,但是与之for可以改这个改这个特点。并且在终止关键词中,又有标签可以方便,停止。这次说数组 文章目录 Array(数组)数组的初始化方法一方…

iOS原生、Android 原生, flutter 三种方式给照片流添加文字(水印)

效果图:三中代码实现的效果差不多 Swift:代码 import UIKitclass ImageWatermarking: NSObject {static func textToImage(drawText text: String, inImage initImage: UIImage, atPoint point: CGPoint) -> UIImage {let textColor = UIColor.whitelet textFont = UIFon…

el-table相同的值合并单元格+多级表头

<el-table border :data"costList" :span-method"objectSpanMethod" ><el-table-column label"类别" prop"类别" width"120"> </el-table-column><el-table-column label"费用科目" prop&qu…

golang 反射机制

在 go 语言中&#xff0c;实现反射能力的是 reflect包&#xff0c;能够让程序操作不同类型的对象。其中&#xff0c;在反射包中有两个非常重要的 类型和 函数&#xff0c;两个函数分别是&#xff1a; reflect.TypeOfreflect.ValueOf 两个类型是 reflect.Type 和 reflect.Value…