MPLS和MPLS VPN技术介绍

539 阅读6分钟

MPLS和MPLS VPN技术介绍

**多协议标签交换(MPLS)**是一种使用标签而不是IP地址或第三层信息来交换数据包的方法。它与协议无关,可以加快数据包的转发和路由。当MPLS第一次被引入时,它显示了相当大的速度提升,并通过减少IP地址检查而减轻了网络的大量负荷。今天,MPLS不仅被用来促进更高的速度要求,而且在现有的网络基础设施上开发先进的和增强的应用和服务。

MPLS是如何工作的?

IP转发/路由是一个你可能已经熟悉的概念。它是一个路由器使用存储在其路由表中的信息转发/路由数据包的过程。它是一个第三层协议。

当路由器收到一个数据包时,它会检查其IP头,获取目标IP,并决定将数据包转发到哪条路径上,从而根据路由表到达预定目的地。MPLS技术旨在做同样的事情,但没有IP头检查。相反,它使用MPLS标签。

让我们通过一个例子来了解MPLS是如何工作的。图中描述了一个有四个路由器的IPv4网络拓扑结构。

MPLS:example

Note: The routers in an MPLS network are called Label Switch Routers(LSRs).

MPLS网络中的数据包转发过程可以大致分为4个步骤。

  1. **路由器为网络上的每条路由选择一个MPLS标签。**例如,路由器R1、R2、R3和R4对网络10.10.10.1/32分别有标签100、200、300和400。
    Note: The label field is 20 bits in length. Hence, the label can take values from 0 to 2^20–1 (1,048,575). However, the first 16 label values i.e. from 0 to 15 are reserved for special usage.

  2. **然后,路由器与相邻的路由器交换它们为网络中每条路由选择的标签。标签分发协议(LDP)被用来交换标签。**R2告诉R1和R3,它为10.10.10.1/32的MPLS标签是200。

  3. 使用来自相邻路由器的标签广告,每个路由器都建立了一个MPLS转发表。注意,R2从R1和R3都收到了MPLS标签广告。

    • R1告诉R2,10.10.10.1/32的MPLS标签是100。

    • R3告诉R2,10.10.10.1/32的MPLS标签是300。

      在这种情况下,R2参考了它的IPv4单播路由表来确定到10.10.10.1/32的路由中的下一跳。通过这样做,R2知道R3是下一跳,因此,用R3的MPLS标签即300来更新其MPLS转发表。这样,当MPLS在IPv4网络上实施时,网络中的每个路由器都会知道其相邻路由器的MPLS标签,而该网络中的所有IPv4路由器都是如此。

  4. 现在,路由器已经准备好使用标签来转发数据包。**每个路由器将现有的标签与下一跳的MPLS标签交换。**当一个打算送往10.10.10.1/32的数据包通过R1进入MPLS网络时,它分析其目的IP,并在数据包上添加一个MPLS头,其中包含下一跳的MPLS标签,即200,然后将其转发到R2。R2将现有的MPLS头与R3的头交换,这个过程一直持续到数据包到达目的地。数据包的IP头信息从未被分析过,转发只通过MPLS标签的检查来进行。

2.5 层协议

**MPLS头位于第2层和第3层头之间,因此被称为2.5层协议或垫片协议。**它以第二层协议的速度转发数据包,同时保留了第三层的可扩展性和动态能力。使用MPLS转发表的路由器没有发现需要打开第3层数据包的头,从而节省了资源和时间。

MPLS:Header

MPLS在网络之间创建了称为标签交换路径(LSP)的虚拟路径。 一个LSP可以被定义为在MPLS网络中传输数据包的标签交换路由器(LSR)的序列。基本上,LSP是一个预定义的路径,数据包在传输过程中使用。

MPLS VPN

MPLS虚拟专用网络,或称MPLS VPN, *是MPLS技术中最受欢迎和最广泛的实现。*维基百科说,虚拟专用网络将专用网络延伸到公共网络上,使用户能够在共享或公共网络上发送和接收数据,就像他们的计算设备直接连接到专用网络一样。它通过在端点之间构建一个虚拟隧道来实现。这些终端之间的数据传输是通过将整个数据包封装成一个数据报来实现的,从而允许在公共或共享网络中安全地交换数据。

VPN技术的历史比MPLS更长。在第二层提供VPN设施的ATM或帧中继技术非常流行。在这样的网络中,服务提供商运行ATM或帧中继来提供连接,这通常形成骨干网络。在MPLS VPN中,MPLS形成骨干网络,通过它提供VPN服务。 *建立在现有网络基础设施之上的虚拟网络(Underlay)被称为Overlay。*这种在底层叠加虚拟网络的技术提高了网络的可扩展性,支持多租户、模块化和虚拟化。

MPLS:VPN

一个典型的MPLS VPN模型由提供商边缘(PE)路由器、提供商(P)路由器、客户边缘(CE)路由器和客户(C)路由器组成**。**PE和CE在第3层直接连接。在服务提供商的网络中,*所有的PE和P路由器将MPLS VPN作为一项服务来运行。*它们被配备为发送和接收带有MPLS标签的数据包,并作出相应的路由决定。因此,路由和转发是在标签交换路径(LSPs)的帮助下进行的。客户网络在内部运行第3层路由协议。CE路由器不需要运行MPLS。

客户网络1的CE向供应商网络的入口PE发送一个数据包,该PE向进入的数据包添加两个标签。

  1. VPN标签 - 指定相应的出口PE路由器作为数据包的接收者。
  2. MPLS标签 - 使用MPLS对数据包进行路由。

Note: The MPLS label is stacked over the VPN label.

*在LSP的每一跳路由器上,MPLS标签被读取并与下一跳的MPLS标签交换。*在LSP中排名倒数第二的路由器将MPLS标签撕掉,并根据VPN标签所包含的地址将数据包转发到预定的出口PE。

出口PE在第三层使用IP路由将数据包转发到客户网络2的CE路由器。
供应商网络中的P路由器不能收到只有VPN标签的数据包,这一点至关重要。它们没有被配置为处理这样的数据包,从而导致数据包被丢弃。

MPLS BGP

**MPLS可以使用边界网关协议(BGP)来有效地交换路由。**你可以在这里阅读更多关于BGP的信息。BGP可以部署在具有MPLS核心的网络边缘。MPLS为BGP路由提供端到端的传输。使用MPLS BGP的供应商网络中的PE使用多协议边界网关协议(MP-BGP)来动态地相互通信。这种MPLS BGP模型增强了底层网络基础设施的路由/转发功能的效率和可扩展性。