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

时间:2012-06-01 08:42:48

标签: networking network-protocols vpn bgp

我不确定我是在这里还是在ServerFault中提出这个问题。但由于问题更多的是关于网络的概念而不是它在特定硬件中的实现,我决定在这里发布它。

根据我的理解,路由目标在MPLS-VPN中用于区分PE路由器中的不同VRF。

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

我怀疑的是,当有多个站点属于多个VPN时,如何处理这些路由目标的分配?

路由是否针对所有PE中手动安装的各种VRF?

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

如果没有,那么VRF的路径目标是如何安装的?

2 个答案:

答案 0 :(得分:2)

  

根据我的理解,路由目标在MPLS-VPN中用于区分PE路由器中的不同VRF。

换句话说,路由目标用于在PE路由器上实现VRF的VRF路由导入和导出策略。

  

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

正如所写的那样,当你说“属于多个VPN”时你的意思含糊不清,因为不清楚你是否只想在单个站点内保留VRF分离(参见下面的例1中的Site_C) ,或者您是否希望单个站点的路由表从两个不同的VRF接收路由(请参阅下面的示例2中的Site_BB)。这个答案将使用下图作为参考......

MPLS VPN Sample Topology

概念

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

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

路线目标通常以<asn>:<custom_numer>的形式指定。路由目标手动分配给每个PE路由器上的VRF。 PE路由器收到VRF中CE的路由后,会使用route-distinguisher对这些路由进行标记,使其成为服务提供商唯一的VPNv4地址,并使用路由目标对其进行标记,实现路由导入和导出策略。

示例1

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

  • 假设VPN_B具有Site_BA和Site_BB。 CE_Site_BA,CE_Site_BB和CE_Site_C上的蓝色接口通过蓝色链路与各自的PE路由器运行OSPF。 PE路由器通过rt 100:2在VRF_B上导出通过OSPF接收的路由,并使用多协议BGP通告这些路由。当PE路由器收到标有rt 100:2的MP-BGP路由时,会将这些路由导入VRF_B,并在蓝色接口上携带OSFP。

值得注意的是,CE_Site_C必须在PE_3的两个接口/子接口上使用VRF,以保持VRF_A和VRF_B的流量分离。

示例2

我们将扩展示例1以将172.16.1.0/24暴露给Site_BB。

假设我们需要在Site_BB中将172.16.1.0/24从Site_AA公开到VRF_B。此时,PE_1需要使用rt 100:1rt 100:51导出172.16.1.0/24。 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。

答案 1 :(得分:0)

在对该主题进行一些研究并与Mike进行了富有成效的讨论之后,我想我对如何分配路线目标有了一个很好的了解。所以我决定回答我自己的问题。

引用Mike的回答

  

路由目标用于在PE路由器上实现VRF的VRF路由导入和导出策略。

当我们有PE路由器发送从属于多个VPN的站点接收的控制平面信息时,就会出现问题。 PE应该有一些方法来决定哪个路由目标(从而发信号通知该控制信息属于哪个VPN)来分配它发送的BGP控制数据包。

需要注意的重要一点是,VRF是在特定接口上配置的,路由目标是为接口配置的。

所以,如果我们有一个属于3个VPN的站点,那么站点的CE和相应的PE应该通过3个不同的接口(或子接口)和分配给每个接口的特定路由Target连接(或者子接口)。

关于我的其他问题

  

路由是否针对所有PE中手动安装的各种VRF?

根据我在线搜索收集的内容,路由目标确实是在路由器上手动配置的。