MPLS VPN网络中的数据包转发

在 MPLS VPN中 ,由于P路由器没有VRF信息,因此无法在站点之间将数据包作为纯IP数据包转发。MPLS可以通过标记数据包来解决此问题。然后,P路由器必须仅具有正确的转发信息,标签才能转发数据包。最常见的方法是在所有P和PE路由器之间配置标签分发协议(LDP),以便所有IP通信在它们之间进行标签交换。

在实施MPLS TE时,也可以将RSVP与流量工程扩展(TE)一起使用,但是LDP是MPLS VPN的最常用方法。然后,使用一个标签将IP数据包从入口PE路由器标签转发到出口PE路由器。

AP路由器无需执行目标IP地址的查找。这是在入口PE和出口PE路由器之间交换数据包的方式。该标签称为IGP标签,因为它是绑定到P和PE路由器的全局路由表中的IPv4前缀的标签,并且服务提供商网络的IGP会对其进行通告。 

IGP标签

IGP标签仅用于通过服务提供商网络转发数据包。解决方案是在MPLS标签栈中添加另一个标签。此标签指示数据包属于哪个VRF。

因此,所有客户数据包均带有两个标签转发:IGP标签为顶部标签,VPN标签为底部标签。入口PE路由器必须贴上VPN标签,以向出口PE路由器指示数据包属于哪个VRF。

简而言之,VRF到VRF流量在MPLS VPN网络中具有两个标签。最上面的标签是IGP标签,由LDP或RSVP在TE中在所有P和PE路由器之间逐跳分发。底部标签是MP-iBGP从PE到PE通告的VPN标签。P路由器使用IGP标签将数据包转发到正确的出口PE路由器。出口PE路由器使用VPN标签将IP数据包转发到正确的CE路由器。

下图显示了MPLS VPN网络中的数据包转发。数据包作为IPv4数据包进入VRF接口上的PE路由器。它通过两个标签在整个MPLS VPN网络中转发。P路由器通过查看顶部标签来转发数据包。

顶部标签在每个P路由器处交换。标签在出口PE路由器上被剥离,并且该数据包作为IPv4数据包转发到VRF接口上并朝向CE路由器。通过查看VPN标签可以找到正确的CE路由器。

MPLS VPN网络中的数据包转发

本文后面的部分提供了MPLS VPN网络中数据包转发的更详细的示例。但是,首先,您必须了解有关BGP在MPLS VPN网络中的作用的更多详细信息。

带有标签的BGP

BGP在MPLS VPN网络中发布vpnv4前缀。这还不足以能够正确转发VPN通信。为了使出口PE路由器能够将VPN流量正确转发到CE路由器,它必须基于标签转发数据包。出口PE路由器可以将这样的标签映射到vpnv4前缀,称为VPN标签。出口PE路由器必须将标签以及vpnv4前缀发布给可能的入口PE路由器。

带有前缀的标签的编码在RFC 3107 “在BGP-4中承载标签信息”中进行了描述 。只需将标签与vpnv4前缀一起附带,并由BGP使用multiprotocol extensions属性将其发布。标签包含在 NLRI 字段中。

查看下面的示例,了解地址族vpnv4的配置。首先,您需要在BGP配置的全局部分中定义BGP邻居。然后,您需要通过指定activate关键字来启用地址族vpnv4中的BGP邻居。

包转发

本文的这一部分以一个特定的示例进行说明,着眼于IP数据包在从一个客户站点到另一个客户站点的MPLS VPN主干中穿越时的生命。MPLS VPN的基本构建块需要首先放置。多协议iBGP需要在分发vpnv4路由的PE路由器及其关联的VPN标签之间运行。

标签分发协议需要在所有PE和P路由器之间存在。本示例假定标签分发协议为LDP。在PE和CE路由器之间,需要运行路由协议,并将客户路由放入PE路由器上的VRF路由表中。最后,这些路由需要分配到MP-iBGP中,反之亦然。

下图显示了vpnv4路由的路由公告和从出口PE到入口PE的标签,以及IGP路由的广告(代表出口PE的BGP下一跳)和标签到入口PE。出口PE上的BGP下一跳地址是10.200.254.2/32,IGP将该地址通告给入口PE。

跨MPLS VPN骨干网的IPv4数据包

LDP逐跳通告IGP路由的标签。客户IPv4路由10.10.100.1/32由从CE到出口PE的PE-CE路由协议发布。出口PE添加RD 1:1,将其转换为vpnv4路由1:1:10.10.100.1/32,并通过多协议iBGP将其发送到标签为30的入口PE。

下图显示了带有两个标签转发的目标IP地址为10.10.100.1的数据包。

当IP数据包从CE进入入口PE路由器时,入口PE路由器在VRF客户一CEF表中查找目标IP地址。入口PE路由器通过查看数据包进入PE路由器的接口以及该接口与哪个VRF表关联来找到正确的VRF。VRF CEF表中的特定条目通常指示需要添加两个标签。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁