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

2024-05-07 22:52

本文主要是介绍直说了,你可能从没真正理解MPLS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

号主:老杨丨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年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

这篇关于直说了,你可能从没真正理解MPLS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/968626

相关文章

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

如何通俗理解注意力机制?

1、注意力机制(Attention Mechanism)是机器学习和深度学习中一种模拟人类注意力的方法,用于提高模型在处理大量信息时的效率和效果。通俗地理解,它就像是在一堆信息中找到最重要的部分,把注意力集中在这些关键点上,从而更好地完成任务。以下是几个简单的比喻来帮助理解注意力机制: 2、寻找重点:想象一下,你在阅读一篇文章的时候,有些段落特别重要,你会特别注意这些段落,反复阅读,而对其他部分

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是