分享

到底什么是MPLS技术?

 好汉勃士 2023-01-15 发布于广东

MPLS(多协议标签交换) 顾名思义,它不考虑协议(多协议),使用标签(标签交换)在网络中移动数据包。多年来,MPLS 一直是网络运营商确保实时应用程序可靠连接的首选技术。 MPLS 通过将标签应用于数据包的报头来封装传入的数据包。MPLS 域中的每个路由器都会查看 MPLS 标签以了解如何处理每个数据包,但其不查看或关心数据包中的内容,它只关心标签。当数据包离开 MPLS 域时,标签将被移除,由标准 IP 路由接管。 可以看出,MPLS技术的核心就是标签交换。本文我们将从标签入手,逐步了解什么是MPLS。

文章图片1

MPLS 为什么要使用标签?MPLS 为什么要添加标签?什么是标签?参考MPLS-LDP标签分发控制模式、通告模式及保留模式。 我们先看看VLAN 标签是什么样,大概就知道什么是 MPLS 标签了。标签本身基本上只是数字,如下图所示,第 4 行写着“Label:299776”。

文章图片2

在此数据包捕获中,标签被插入到“第 2 层”以太网报头和“第 3 层”IP 报头之间。这就是为什么有人说 MPLS 工作在“第2层半”。 这些数字,也就是这些标签,只对接收数据包的路由器有意义。本质上,标签就像一条指令,这条指令通常做两件事: 它告诉接收路由器如何转发数据包或者,它告诉接收路由器该数据包是特定 VPN 的一部分 当一个标签用于在特定方向转发数据包时,我们称之为传输标签。当一个标签用于告诉路由器该数据包属于一个特定的 VPN 时,它被称为服务标签,有时也称为VPN 标签。MPLS VPN 让许多客户都可以使用相同的私有 IP 范围,因为接收路由器不会查看目标 IP 地址。相反,VPN 标签会告诉路由器数据包属于哪个客户。

文章图片3

路由器如何学习这些标签?IP 是一种寻址方案,需要其他协议在各处实际通告 IP。我们可以以类似的方式考虑 MPLS:MPLS 是一种标签方案,需要其他协议在各处实际通告这些标签。 先说说如何通告MPLS传输标签。有四种常见的方法,这四种协议以完全不同的方式工作,并且有不同的用例。 LDP(Label Distribution Protocol)代表标签分发协议。这是一个非常基本的协议,并且易于配置。流量将始终遵循 OSPF/IS-IS 指定的最佳路径。在 MPLS 网络中,两个标签交换路由器(LSR)必须用在它们之间或通过它们转发流量的标签上达成一致。 RSVP 是资源预留协议。RSVP 相比LDP 需要手动配置,但优势在于它提供了大量的流量工程功能,能够按照路由协议的要求以不同的方式移动流量,例如绕过带宽问题进行路由,或明确避免网络中的某些链路。 分段路由是一种在 OSPF 或 IS-IS 内部发布标签的方法,这意味着不需要运行额外的协议来通告标签。它可以实时告诉路由器使用哪个标签到达哪个目的地。通过将决策置于中央控制器中,可以获得真正的网络全局视图,甚至在 OSPF 区域或 IS-IS 级别,以及不同的自治系统之间。 BGP-Labelled Unicast是一个特殊的 BGP 地址族,往往只用于一些非常特地的、更高级的场景。 MPLS VPN 标签几乎都是在 BGP 中通告的。毕竟,如果不能在两个路由器之间传输数据包,就不能在它们之间运行 VPN。

文章图片4

路由器如何处理这些标签?两个路由器之间的对话可能是这样的,路由器 B 对路由器 A 说“如果你想让我将数据包转发给路由器Z,包裹寄给我的时候贴上标签123456”。然后路由器 B 会对自己编程,如果数据包带有标签 123456,则该数据包会始终从特定接口发送出去。 路由器 B 并不知道这个传出接口是不是通往路由器 Z 的“最佳”路径。当路由器 B 将此数据包发送到路由器 C 时,路由器 C 也将根据标签知道如何处理该数据包,路由器 D 和路由器 E 等也会如此,一直到终点目的地。只要从一端到另一端有一个标签交换路径,沿途的路由器就能够成功地将数据包从 A 传输到 Z 。 路由器 B 甚至可能在发送标签时将标签更改为其他内容。在 LDP 和 RSVP 中,标签通常只对路由器本身有意义,沿途的每个路由器都可以自己决定它希望前一跳使用什么标签。当标签沿途发生变化时,我们称之为“交换”标签。例如,路由器 A 将标签为 123456 的数据包发送到路由器 B ,路由器 B 在将其发送到路由器 C 之前可以将其“交换”为标签 345678。 (相比之下,Segment Routing 中的某些标签是全局的,因此它不是MPLS 的通用规则。参考MPLS Segment Routing) 上面的例子要理解的关键是,当路由器 B 收到数据包并将其转发到路由器 C 时,路由器 B 根本没有查看目标 IP。相反,是传输标签告诉路由器 B 如何处理数据包。 因为没有查看底层目标地址,所以协议可以是 IP、IPv6 或任何其他协议,所以说是多协议标签交换。

文章图片5

向数据包添加标签有何意义?到目前为止所说的一切听起来都非常像常规 IP 路由。如果没有 MPLS,路由器也会查看目标 IP 地址,然后将数据包发送到下一跳。那么MPLS 有什么意义呢? 如果将网络设置为每个路由器都知道整个网络中的每个 IP 地址,那么路由器 B 肯定可以从路由器 A 接收数据包,查看目标地址,检查自己的路由表,找到“最佳”路线,然后发送数据包。 但这里有一个问题:如果不想让一切都发送到所谓的“最佳”路径,会发生什么? 例如,如果所有内容都沿着一条“最佳”路径发送,则该链接可能会开始被大量使用,甚至可能达到极限。很可能会有其他根本没有被使用的潜在路径,最好将一些选择性流量发送到次优路径,以充分利用网络。 当存在另一条不太好且带宽可用的路径时,该如何解决链路饱和的问题? 如果从路由协议的角度来看,有两条或多条到达目的地的路径同样“好”,那么可以利用ECMP 或等价多路径,对流量进行负载平衡,并充分利用链接。 SD-WAN可以根据目的 IP 地址以外的质量,有选择地将流量路由到不同的链路,也许是基于应用程序本身,也可能是源 IP 地址。这对分支机构来说非常好,但对于每秒有很多千兆流量的服务提供商规模的网络,以及数以万计的用户前往数百万目的地的网络来说,很难真正的扩展。 我们需要的是某种可扩展的、功能丰富的协议,它允许以选择的任何方式发送流量,而不总是遵循“最佳”路径。 几十年前,这个问题正是服务提供商和大型企业面临的问题之一,而MPLS 就是解决答案。 标签交换路径基于标签转发数据包的系统的优点在于,中转路由器不需要知道,甚至不需要关心数据包上的 IPv4 或 IPv6 地址。它们只关心数据包进入了带有标签 X 的接口,因此应该从带有标签 Y 的不同接口发送出去,以便路径上的下一个路由器知道如何处理它。 我们称这个端到端标记路径为LSP,或标签交换路径,参考SR-MPLS:多协议标签交换的段路由。 从路由器 1 开始检查 LSP ,一直到路由器 10。为了方便起见,我们假设它是通过RSVP创建的。给 RSVP LSP 一个名字和一个目的地,结果如下所示:

文章图片6

LSP 是单向的,如果要使流量在真实网络中正常工作,需要在相反的方向上建立第二个 LSP。但为了简单演示,我们只关注一个 LSP 。 如上图所示: 路由器 1 和路由器 10 是PE 路由器,或Provider Edge。路由器 2、3、4 和 5 都是中转路由器,简称为P(Provider) 路由器。路由器 1 称为首端或入口路由器,将 LSP 想象成流量进入的隧道。同样,路由器 10 称为尾端或出口路由器。 假设R1 和 R10 正在进行BGP,R10 对 R1 说:“如果你想到达 69.69.69.0/24,请将流量发送给我。”之后,R10 会将通告其环回为该前缀的下一跳。LSP 进入R10 的环回。 路由器 2、3、4 和 5 不需要运行 BGP,它们只查看数据包上的标签,不查看 IP 地址。然后计算出需要从哪个接口传出,相应地交换标签。

文章图片7

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多