VPN MPLS L3 路由

网络工程 虚拟专用网 mpls-vpn
2022-02-04 14:25:37

我有这个 vpn mpls l3 场景:

在此处输入图像描述

假设客户 1 的主机 (10.1.1.2) 想要与客户 2 的主机 (10.1.2.2) 通信。我的问题是:R2 如何知道它必须将数据包转发到 CE1 而不是直接与主机通信 ( 10.1.2.2) 的客户 1?我知道PE使用VRF和CE与PE通信,但是中间的路由器呢?

1个回答

您好,欢迎来到网络工程!

TL;博士

Customer1 的 1.1.1.2 无法与 Customer2 的 10.1.2.2 通信,并且 Customer1 的 R2 不应该知道 Customer2 的 10.1.2.x 子网。

更长:

似乎两个客户都为其终端子网使用相同的地址 (10.1.[1-4].x)。这意味着他们没有使用相同的 L3-VPN(有时只是称为“VRF”),否则这将是一个非常糟糕的网络寻址工作。

然而,不同的客户在分开的 VRF 中是 L3-VPN 的实际目的:保持客户分开。所以无论如何,在任何情况下,R2都不应该知道通往 Customer2 的 10.1.2.2(在 CE2 和 R4 之外的某个地方)的路径。

仅当网络中的某个“上游”位置(即其中一个 PE)时,要么..

  • 路由信息从一个客户的 VRF 泄露到另一个客户的 VRF
  • 或在 PE 或多 VRF CE 上建立连接两个 VRF 的链路,并将合适的路由信息​​传播到两个客户的 VRF,如redistribute staticdefault-information originate)
  • (稍后添加)或 - 在 MPLS 基础架构中的合适位置 - 添加设备(很可能是防火墙),该设备具有多个 L3-VPN/VRF 的“支路”,以及合适的路由信息​​..(见上文)。然后,此设备将充当 Customer1 和 Customer2 之间定义明确的网关(如果 C1 和 C2 的地址重叠,则可以执行所需的 NAT 魔法)

... 从一个 VRF 到另一个 VRF 的通信可能成为可能。但是,由于地址重叠,Customer1 和 Customer2 仍然无法通信,除非他们使用一些可怕的 NAT 魔法。

但是,由于 Customer1 的 10.1.2.x 子网直接连接到 Customer1 的 R2,R2 将始终通过该接口将流量转发到 10.1.2.x,无论来自任何路由协议的路由信息​​被传播到 Customer1 的 VRF/MPLS-VPN 和进一步深入到 Customer1 自己的路由域,在那里它可能被 R2 通过一些 IGP 路由协议(例如 OSPF、EIGRP 或 RIPv2)拾取。在路由偏好方面,没有什么比连接的路由/直接连接的子网更好(即使是静态路由)(是的,我们今天将关闭称为“PBR”的蠕虫罐)。