直说了,你可能从没真正理解MPLS

news2024/12/23 18:51:23

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

你们好,我的网工朋友。

尽管 MPLS 技术已经相当成熟,有关它的文章数不胜枚举,涵盖了从基本原理到 SR-MPLS 等方方面面。

然而,令人意外的是,实际上大多数网络工程师并没有真正理解 MPLS

今天就听听Juniper的网络工程师Chris怎么说,通过他的个人经历对此进行了阐述。

今日文章阅读福利:《 MPLS-华为详解指南 》

私信发送暗号“MPLS”,即可获取此份内容详实的pdf。

01 失败的 MPLS 面试

我是Juniper的网络工程师Chris。

大约13年前,我在一家ISP公司从事二线支持工作。每天,我都在处理被称作“MPLS电路”的客户问题。

当时,我并不明白这究竟意味着什么,但我清楚自己每天都在解决这些问题。于是,我决定参加一次与MPLS相关的工作面试。

我至今仍记得我的第一次面试。第一个问题是:“如何使用MPLS构建BGP-free core”。

我一头雾水。

我对面试官的问题毫无头绪,接下来又被问及流量工程和RSVP等问题……整个面试过程让我感到十分困惑。原来我对“MPLS”的理解完全错了。

那次面试让我认识到,当人们谈论“购买MPLS电路”时,实际上是在使用MPLS这个术语来特指MPLS的一个具体用例,而非更广泛的技术概念。

根据我多年来的经验,你现在也很有可能正在犯这个错误。

02 认知错误

MPLS在实质上是支撑几乎所有互联网服务提供商的技术。它并非一种会很快被取代的技术,事实上,它每年都在不断改进。

然而,每当提到MPLS时,总会有人声称“SD-WAN将取代MPLS”。但事实上,他们所指并非真正的MPLS,而是MPLS VPN,尤其是第三层MPLS VPN。

接下来,我们将详细探讨这一误解的含义,以及两者之间的区别。

正是因为这种误解,很多人不再深入学习MPLS。他们听说这是一种即将被“SD-WAN取代”的技术,于是错失了MPLS背后实际、更广泛含义的技术。

03 那么,MPLS 究竟是什么?

这个问题的答案很长。

MPLS 是一种服务提供商用来管理网络流量的技术。

通常,路由器会根据目标 IP 地址来转发数据包。然而,在大型网络中,特别是互联网服务提供商的网络中,这种简单的方式就不够用了。

首先,这些网络需要处理大量的路由信息,每个路由器都必须知道整个互联网的路由信息,以便能够正确地转发数据包。

此外,服务提供商可能希望为不同的流量指定不同的路径,而不是总是选择最短路径。

为了实现这一点,我们可以在网络的两端设置两台路由器,并通过一个隧道来传输数据。这个隧道可以沿着我们指定的路径,或者根据路由器的约束条件计算出的路径传输数据包。

隧道传输数据包的一种方式是在数据包上添加一个标签,该标签告诉下一个路由器该数据包应该如何转发。这种标签的好处是接收路由器不需要查看目标 IP 地址,只需要根据标签来进行转发。

例如,下图中有十个路由器,R1 和 R5 之间有两条隧道。蓝色隧道采用最短路径,可以专用于最重要的流量。

红色隧道采用较长的路径,可以用于不妨碍最重要流量的best-effort流量。

MPLS(多协议标签交换)就是通过标签交换来实现这一点的技术。

它允许在数据包上添加标签,并根据这些标签来转发数据包,而不是根据目标 IP 地址。这样一来,我们就可以在大型网络中更有效地管理流量,并为不同的流量分配不同的路径。

04 为什么需要隧道?

看到这里有人想问,为什么需要隧道?

原因有很多,以下是 MPLS 隧道的一些潜在用例:

01 BGP-free core

在核心路由器上运行时,不需要存储完整的互联网路由表,只需根据标签来转发数据包。

02 优先级隧道

创建采用最佳路径的高优先级隧道,以及采用较长路径到达目的地的低优先级隧道,通过将流量映射到这些隧道,可以将高优先级和低优先级的流量分开。

03 动态路径调整N

可以在检测到网络拥塞问题时动态更改路径。

04 创建VLAN

自动将低优先级隧道移动到不同的路径,以确保重要隧道能够访问最佳资源。

05 IPv4 到 IPv6 隧道

在 IPv4 核心上传输 IPv6 流量。

06 多播隧道

在核心中运行多播隧道,如为客户提供 IPTV。

07 VPN 隧道

通过核心网对客户的三层或二层 VPN 流量进行隧道传输。

08 连接服务提供商站点

大型服务提供商可以将较小服务提供商的两个站点连接在一起,使两个站点看起来像是合二为一,而较大的服务提供商则充当这些站点之间的隐形隧道。

这些只是 MPLS 在现代服务提供商网络中的一小部分基本用例。

05 标签交换路径

在前面的讨论中,我们提到了许多关于“隧道”的内容,实际上,“隧道”的另一个名称就是“标签交换路径”,而创建隧道的协议有很多种。

其中之一是LDP标签分发协议(Label Distribution Protocol)。LDP可以创建遵循最佳路径度量的隧道,同时也可以执行IPv6隧道、客户VPN隧道以及无BGP核心等操作。

此外,还有RSVP源预留协议(Resource Reservation Protocol),它以其流量工程功能而闻名。

另一种较新的方法是分段路由(Segment Routing),特别是SR-MPLS,它也提供了上述许多功能。

MPLS允许在数据包上添加标签,然后根据这些标签来转发数据包。MPLS与BGP的结合可以为整个互联网赋能,因此MPLS将在很长一段时间内继续存在。

“网络总是在变化,没有人知道未来会发生什么,但如果一个18岁的年轻人今天开始在服务提供商行业工作,并在退休后仍然使用MPLS,那一点也不令人惊讶。这正显示了MPLS对现代互联网的重要性!”

06 MPLS意味着什么?

MPLS的一个用例是通过核心网隧道传输客户VPN流量。

想象一下,一个客户在全国各地有数十个站点。每个站点都有至少一个私有IP地址范围的LAN,并且需要连接到其他站点的各个LAN。

这种连接可以是全网状的,每个站点都可以访问其他所有站点,也可以只是在几个选定的站点之间,或者只是从总部中心向外扩展。

由于运行 MPLS 的服务提供商只查看数据包上的标签,而不是 IP 本身,这使得服务提供商能够使用 MPLS 为此类客户提供 VPN 服务。

客户流量可以使用唯一的 MPLS VPN 标签进行标记,然后通过标签交换路径进行隧道传输。

隧道另一端的接收服务提供商路由器将该 VPN 标签映射到特定客户,从而使该客户的流量在逻辑上与任何其他客户(甚至是使用完全相同的私有 IP 的客户)分开。

一般来说,MPLS VPN 有两种“类型”。

一种是“三层VPN”(有时称为L3VPN、IPVPN或VPNv4),服务提供商了解每个站点的LAN范围,并在自己的网络中发布它们,将它们标记为属于特定客户VPN。

不论是用BGP、OSPF,或者可能只用静态路由,服务提供商的边缘路由器都有一个用于该客户VPN的三层路由表。

另一种是“二层VPN”,服务提供商不学习第三层IP范围,而是执行以下两项操作之一:

第一个操作;可以充当将两个站点连接在一起的虚拟线路,以便从一端进入的帧通过隧道传输到另一端。服务提供商不需要在这里学习MAC地址,因为从一端进入的所有流量都会在另一端发出。

第二个操作:充当虚拟交换机,服务提供商实际上可以在其中学习MAC地址。对于托管WAN电路的现场客户设备而言,它可以直接获知其他站点设备的MAC地址。

但实际上,就像物理交换机一样,服务提供商正在无形地检查流量,了解所有MAC地址的位置,并相应地转发和洪泛流量。VPLS(虚拟专用LAN服务)和EVPN(以太网VPN)是实现这一目的的两种不同方式。

07 “MPLS 电路”

不知道从什么时候开始,MPLS电路(MPLS circuits)这个词被用来代指MPLS VPN。

有趣的是,通过这些所谓的MPLS电路传输的数据包实际上并不携带任何MPLS标签!标签只出现在网络的服务提供商部分。客户现场路由器根本不支持MPLS。

相反,WAN电路的服务提供商端的接口将从公共互联网中取出,并放置到客户的私有路由实例中。然后,服务提供商使用MPLS在其网络中传输VPN流量。

因此,严格来说,MPLS电路并不涉及任何MPLS技术。

这种误用的结果是,许多网络工程师错误地认为“MPLS”这个术语只有MPLS VPN 和 L3VPN一个含义。他们也不了解标签、标签交换路径、LDP 或 RSVP等相关概念。

08 “SD-WAN 是 MPLS 杀手?”

自2010年代以来,关于“SD-WAN是MPLS的杀手”的言论层出不穷。

很多人只熟悉MPLS L3VPN,就宣称MPLS即将退出历史舞台,因为他们没有意识到MPLS一词还有另一个更广泛的含义。

我已经记不清我写过多少篇关于MPLS流量工程或BGP-free core的文章,但还是有很多人评论“我不认为MPLS有未来”或“我认为SD-WAN将取代MPLS”。

然而,MPLS不会很快消失。

就其价值而言,我不认为SD-WAN会“杀死”MPLS VPN。SD-WAN和MPLS VPN都有各自的用例,各有优缺点。只能说随着时间的推移,一种解决方案可能会比另一种更受欢迎。

整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

卸载系统自带APP

Firefly RK3588 android 12自动多个系统软件,无法从UI界面进行手动删除。因此,考虑使用shell指令进行处理。 系统自动APP大多都安装在system/app目录下,且该目录多为只读。因此采用如下步骤, //Shell su adb shell su //重新挂载…

【前端】HTML基础(2)

文章目录 前言一、HTML常见标签1、 注释标签1.1 标题标签1.2 段落标签1.3 换行标签 2、 格式化标签2.1 加粗标签2.2 倾斜标签2.3 删除线标签2.4 下划线标签 3、 图片标签3.1 src属性3.2 alt属性3.3 title属性3.4 图片大小3.5 图片边框 4、 超链接标签4.1 属性4.2 属性 前言 这篇…

从项目开始学习Vue——02(若依框架)

往期: 从项目开始学习Vue——01 目录标题 一、基础插件(一)路由Vue Router(二)导航守卫(路由拦截器)二、Vuex(一)什么是VuexVuex的部分介绍内容: &#xff08…

antdVue 自定义table列配置

最近做项目的时候需要对页面的table进行列配置的需求 子组件 <div><a-modaltitle"列配置" :visible"visible" :closable"false" :footer"null"width"800px" height"448px"><div><a-row>…

多C段的美国站群服务器有什么用途?

多C段的美国站群服务器有什么用途? 多C段的美国站群服务器是一种常见的网络运营策略&#xff0c;其用途主要体现在以下几个方面&#xff1a; 多C段的美国站群服务器有什么用途? 1. 提高站点排名和流量 部署多个站点在不同的C段IP地址上&#xff0c;可以通过不同的IP地址发布…

linux - 主次设备号自动申请

alloc_chrdev_region 原型如下&#xff0c;该函数向内核申请一个空闲的主设备号。 alloc_chrdev_region(&g_aputriger_dev, 0, APUTRIGER_MAX_NUM, "aputriger0"); 第四个参数是我们使用cat /proc/devices 看到的名称 /*** alloc_chrdev_region() - register a…

外包干了2年,人都要废了。。。

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 简单的说下&#xff0c;我大学的一个同学&#xff0c;毕业后我自…

程序员技术文档编写神器Typora【图文详情】

文章目录 前言一、Typora是什么&#xff1f;二、如何安装三、如何使用总结 前言 在软件项目开发过程中&#xff0c;需要进行开发设计&#xff0c;编写相关的开发设计文档&#xff0c;本文介绍一下编写开发设计文档的神器Typora。 一、Typora是什么&#xff1f; Typora 是一款…

SinoDB数据库导入导出工具External table

External table又叫SinoDB外部表&#xff0c;外部表采用多线程机制&#xff0c;支持多线程读取、写入数据文件以及多线程数据转换、插入操作。多线程机制只需要消耗相对较少的系统资源&#xff0c;但是能提供高速数据导入、导出&#xff0c;可以应用在数据采集、表重建、数据库…

04-xss获取cookie实验

二、开发XSS服务器端 1、确认实验环境 攻击者服务器&#xff1a;192.168.74.134&#xff0c;将获取到cookie数据保存到该服务器的数据库中&#xff0c;运行PHP代码暴露一个接收Cookie的URL地址。 正常Web服务器&#xff1a;192.168.74.133&#xff0c;用于正常的用户访问的目…

java编程中,实现分页对象的类型转换

一、背景 当数据库分页查询返回的对象与接口要返回的对象类型不一致时&#xff0c;不可避免需要进行类型转换。 示例&#xff1a;数据库分页查询返回的对象是PageDTO&#xff0c;而接口返回的对象类型是PageVO。 PageDTO Data public class PageDTO<T> {/*** Current…

Android 巧用putBinder方法传递大文件

使用Intent传递数据大家都知道&#xff0c;但是如果你使用Intent传递大于1Mb的数据时&#xff0c;就一定会报如下的错误&#xff1a; Caused by: android.os.TransactionTooLargeException: data parcel size 1049112 bytes 就是说你的传输数据太大了&#xff0c;当前的大小达…

【C++】滑动窗口:将x减到0的最小操作数

1.题目 2.算法思路 这个题目难在要转化一下才能用滑动窗口。 题意是需要在数组的前后两段区间进行解题&#xff0c;但同时对两段区间进行操作是比较困难的&#xff0c;我们可以将中间这段区间只和与nums_sum-x&#xff08;数组总和-x&#xff09;进行比较&#xff0c;这样就可…

数据库(MySQL)—— DML语句

数据库&#xff08;MySQL&#xff09;—— DML语句 什么是DML语句添加数据给全部字段添加数据批量添加数据 修改数据删除数据 什么是DML语句 在MySQL中&#xff0c;DML&#xff08;Data Manipulation Language&#xff0c;数据操纵语言&#xff09;语句主要用于对数据库中的数…

Django 4.x 智能分页get_elided_page_range

Django智能分页 分页效果 第1页的效果 第10页的效果 带输入框的效果 主要函数 # 参数解释 # number: 当前页码&#xff0c;默认&#xff1a;1 # on_each_side&#xff1a;当前页码前后显示几页&#xff0c;默认&#xff1a;3 # on_ends&#xff1a;首尾固定显示几页&#…

观测云 VS ELK:谁是日志监控的王者?

前言 作为 IT 信息系统运行状态感知和故障分析的重要手段&#xff0c;日志在行业兴起之初便为运维和开发环节所广泛应用。当应用和系统发生故障或出现问题时&#xff0c;日志数据成为了排查和诊断问题的重要依据。通过分析日志&#xff0c;开发人员和运维人员可以了解系统的运…

麦肯锡精英高效阅读法笔记

系列文章目录 如何有效阅读一本书笔记 读懂一本书笔记 麦肯锡精英高效阅读法笔记 文章目录 系列文章目录序章 无法读书的5个理由无法读书的理由① 忙于工作&#xff0c;没时间读书无法读书的理由② 不知应该读什么无法读书的理由③ 没读完的书不断增多无法读书的理由④ 工作繁…

论文复现和点评《基于随机森林模型的个人信用风险评估研究》

作者Toby&#xff0c;来源公众号&#xff1a;Python风控模型&#xff0c;论文复现和点评《基于随机森林模型的个人信用风险评估研究》 最近Toby老师看到一篇论文热度比较高&#xff0c;下载量有665次&#xff0c;论文标题是《基于随机森林模型的 个人信用风险评估研究》 论文篇…

C++ | Date 日期类详解

目录 简介 日期类总代码 | Date 类的定义 & 构造 & Print 类的定义 构造函数 & Print 比较类&#xff0c;如<、>、<...... 值加减类&#xff0c;如、-、、-...... 加减类具体分类 判断某个月有多少天 GetMonthDay 日期类 / &#xff08;- / -&…

运行一个jar包

目录 传送门前言一、Window环境二、Linux环境1、第一步&#xff1a;环境配置好&#xff0c;安装好jdk2、第二步&#xff1a;打包jar包并上传到Linux服务器3、第三步&#xff1a;运行jar包 三、docker环境1、Linux下安装docker和docker compose2、Dockerfile方式一运行jar包2.1、…