networking - 重叠 MPLS-VPN 中如何分配路由目标?

标签 networking network-protocols vpn bgp

我不确定是否应该在这里或在 ServerFault 中问这个问题。但由于问题更多的是关于网络的概念,而不是它在特定硬件中的实现,因此我决定将其发布在这里。

据我了解,MPLS-VPN 中使用路由目标来区分 PE 路由器中的不同 VRF。

假设任何两个 VPN 之间没有共享站点,则导出和导入路由目标相同,因此 PE 可以将传入 BGP 数据包中的路由目标与其自己的导出路由目标进行比较,并安装在适当的 VRF 中.

我的疑问是,当存在属于多个 VPN 的站点时,如何处理路由目标的分配?

是否在所有 PE 中手动安装了到各个 VRF 的路由目标?

如果是这样,不会导致可扩展性问题吗?

如果没有,VRF 的路由目标是如何安装的?

最佳答案

As per my understanding Route Targets are used in MPLS-VPNs to distinguish between the different VRFs in a PE router.

换句话说,route-targets 用于在 PE 路由器上为 VRF 实现 VRF 路由导入和导出策略。

My doubt is, how is this allotment of route targets handled when there are sites that belong to more than one VPN?

正如所写,这个问题对于您所说的“属于多个 VPN”时的含义含糊不清,因为不清楚您是否只想在单个站点内保留 VRF 的分离(请参阅下面示例 1 中的 Site_C) ,或者您是否希望单个站点的路由表接收来自两个不同 VRF 的路由(请参阅下面示例 2 中的 Site_BB)。本回答将使用下图作为引用...

MPLS VPN Sample Topology

概念

特别注意 PE 路由器附近的小方框。这些框代表接口(interface)本地的路由和转发表;思科将这些表称为 VRF。 VRF_A 仅处理发往/来自连接到粉红色云的 CE 路由器的数据包。 VRF_B 仅处理来自/来自连接到蓝云的 CE 路由器的数据包。

多协议(protocol) BGP 用于通过服务提供商网络(白云)公布来自每个 VRF 的路由。白云内的设备永远不会安装粉色和蓝色路由(即使其他 ISP 路由器正在运行 bgp);这是因为PE路由器收到路由后,会被转换为一个特殊的BGP地址族,称为VPNv4。 VPNv4地址族提供了一种区分来自不同客户的相似路由的方法; VPNv4 还携带附加到每条名为 route-distinguishers 的路由的特殊 BGP 属性。和路由目标,它们是扩展的 BGP 社区。

路由目标通常以 <asn>:<custom_numer> 的形式指定。路由目标手动分配给每个 PE 路由器上的 VRF。 PE路由器收到VRF内CE发送的路由后,对这些路由打上路由标识符,使其成为服务提供商唯一的VPNv4地址,并打上路由目标,以实现路由的导入和导出策略。

示例 1

  • 假设 VPN_A 具有 Site_AA、Site_AB 和 Site_C。 CE_Site_AA、CE_Site_AB 和粉红色接口(interface) CE_Site_C 通过粉红色链路与其各自的 PE 路由器运行 OSPF。 PE 路由器导出通过 VRF_A 上的 OSPF 接收的路由 rt 100:1并通过多协议(protocol) BGP 宣布这些路由。当PE路由器收到标记为rt 100:1的MP-BGP路由时,它们将这些路由导入 VRF_A 并在粉红色接口(interface)上通过 OSFP 携带它们。

  • 假设 VPN_B 有 Site_BA 和 Site_BB。 CE_Site_BA、CE_Site_BB 和 CE_Site_C 上的蓝色接口(interface)通过蓝色链路与其各自的 PE 路由器运行 OSPF。 PE 路由器导出通过 VRF_B 上的 OSPF 接收的路由 rt 100:2并通过多协议(protocol) BGP 宣布这些路由。当PE路由器收到标记为rt 100:2的MP-BGP路由时,它们将这些路由导入 VRF_B 并通过蓝色接口(interface)上的 OSFP 携带它们。

值得注意的是,CE_Site_C 必须在 PE_3 的两个接口(interface)/子接口(interface)上使用 VRF,以将来自 VRF_A 和 VRF_B 的流量分开。

示例 2

我们将扩展示例 1,将 172.16.1.0/24 公开给 Site_BB。

假设我们需要将 172.16.1.0/24 从 Site_AA 公开到 Site_BB 的 VRF_B。此时PE_1需要导出172.16.1.0/24 rt 100:1rt 100:51 。 PE_2 现在将导入标记为 rt 100:2 的 VPNv4 路由进入 VRF_B 并导入 rt 100:51将 172.16.1.0/24 接收到 VRF_B 中。如果 Site_BB 需要以类似方式向 Site_AA 公开其路由,则 PE_2 需要使用 rt 100:52 标记一个或多个适当的 DMZ 子网。 ,因此可以将其导入到 PE_1 上的 VRF_A 中。

关于networking - 重叠 MPLS-VPN 中如何分配路由目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847067/

相关文章:

networking - 为什么 UDP 的数据包中有两次 "UDP Length"字段?

networking - 仅使用 NAK 的数据传输协议(protocol)如何可靠?

json - 如何使用 iOS Swift 访问设备中的 vpn api url?

amazon-web-services - 客户端 VPN 端点 - 多用户访问

Python pip install(使用代理)无法解析 VPN 后面的 VM 中的服务器

amazon-web-services - 无法删除 AWS 互联网网关

c - 如何确定原始数据包中http header 的起始字节?

linux - 如何循环直到 IP :port is not responding

linux - 两个linux嵌入式设备如何在以太网上通信

objective-c - 测量 iPhone 中的上传和下载速度