跳到主要内容

4. 通过 BGP 分发 VPN 路由

4. 通过 BGP 分发 VPN 路由 (VPN Route Distribution via BGP)​

PE 路由器使用 BGP 相互分发 VPN 路由(更确切地说,是使 VPN 路由得以相互分发)。

我们允许每个 VPN 拥有自己的地址空间(address space),这意味着某个给定的地址在不同的 VPN 中可能指向不同的系统。如果通往同一个 IP 地址前缀(prefix)的两条路由实际上是通往不同系统的路由,那么确保 BGP 不把它们当作可比较的路由就十分重要;否则,BGP 可能只选择安装其中一条,导致另一个系统不可达。此外,我们必须确保运用策略(policy)来决定哪些报文经由哪些路由发送——在 BGP 安装了若干这样的路由后,任何一个特定的 VRF 中只能出现其中一条。

我们通过使用一个新的地址族(address family)来实现这些目标,具体如下所述。

4.1. VPN-IPv4 地址族 (The VPN-IPv4 Address Family)​

BGP 多协议扩展 [BGP-MP] 使 BGP 能够携带来自多个"地址族"的路由。我们引入了"VPN-IPv4 地址族"这一概念。一个 VPN-IPv4 地址是一个 12 字节的量,开头是一个 8 字节的路由区分符(Route Distinguisher,简称 RD),结尾是一个 4 字节的 IPv4 地址。如果若干个 VPN 使用相同的 IPv4 地址前缀,PE 会将这些前缀转换为唯一的 VPN-IPv4 地址前缀。这就确保了:如果同一个地址被用在多个不同的 VPN 中,BGP 也能携带通往该地址的多条完全不同的路由,每个 VPN 一条。

由于 VPN-IPv4 地址与 IPv4 地址属于不同的地址族,BGP 永远不会把它们当作可比较的地址。

RD 仅仅是一个数字,它不包含任何固有信息;它既不标识路由的来源,也不标识该路由将被分发到的 VPN 集合。RD 的唯一用途是,使人能够针对一个公共的 IPv4 地址前缀创建出不同的路由。至于将路由重新分发到何处,则需要借助其他手段来确定(见第 4.3 节)。

RD 还可用于针对同一个系统创建多条不同的路由。我们已经讨论过这样一种情形:通往某个特定服务器的路由,对于内部网流量与外部网流量应当是不同的。这可以通过创建两条具有相同 IPv4 部分、但 RD 不同的 VPN-IPv4 路由来实现。这使得 BGP 能够为同一个系统安装多条不同的路由,并允许运用策略(见第 4.3.5 节)来决定哪些报文使用哪条路由。

RD 的结构安排使得每个服务提供商都能管理自己的"编号空间"(numbering space,即可以自行分配 RD),而与其他服务提供商所做的 RD 分配互不冲突。一个 RD 由三个字段组成:一个 2 字节的类型(type)字段、一个管理者(administrator)字段和一个已分配编号(assigned number)字段。类型字段的取值决定了另外两个字段的长度,以及管理者字段的语义。管理者字段标识一个已分配编号的权威机构(authority),而已分配编号字段则包含一个由该权威机构为特定用途分配的编号。例如,可以有一个 RD,其管理者字段包含一个自治系统号(Autonomous System number,简称 ASN),而其(4 字节的)编号字段包含由该 ASN 所属 SP(由相应权威机构分配给该 SP)分配的一个编号。

RD 之所以采用这种结构,是为了保证提供 VPN 骨干网服务的 SP 在需要时能始终创建一个唯一的 RD。然而,这一结构对 BGP 而言并无意义——当 BGP 比较这两个地址前缀时,会完全忽略该结构。

必须对 PE 进行配置,使得通往某个特定 CE 的路由与某个特定 RD 相关联。该配置可能导致通往同一 CE 的所有路由都与同一个 RD 相关联,也可能导致不同的路由与不同的 RD 相关联,即便它们通往同一个 CE。

4.2. 路由区分符的编码 (Encoding of Route Distinguishers)​

如前所述,一个 VPN-IPv4 地址由一个 8 字节的路由区分符后接一个 4 字节的 IPv4 地址组成。RD 的编码如下:

  • 类型字段(Type Field):2 字节
  • 值字段(Value Field):6 字节

值字段的解释取决于类型字段的取值。目前定义了类型字段的三种取值:0、1 和 2。

  • 类型 0:值字段由两个子字段组成:

    • 管理者子字段(Administrator subfield):2 字节
    • 已分配编号子字段(Assigned Number subfield):4 字节

    管理者子字段必须包含一个自治系统号。如果该 ASN 来自公有 ASN 空间,则必须已由相应权威机构分配(强烈不鼓励使用来自私有 ASN 空间的 ASN 值)。已分配编号子字段包含一个编号,该编号来自一个由相应权威机构将 ASN 分配给的企业所管理的编号空间。

  • 类型 1:值字段由两个子字段组成:

    • 管理者子字段:4 字节
    • 已分配编号子字段:2 字节

    管理者子字段必须包含一个 IP 地址。如果该 IP 地址来自公有 IP 地址空间,则必须已由相应权威机构分配(强烈不鼓励使用来自私有 IP 地址空间的地址)。已分配编号子字段包含一个编号,该编号来自一个由该 IP 地址已分配至的企业所管理的编号空间。

  • 类型 2:值字段由两个子字段组成:

    • 管理者子字段:4 字节
    • 已分配编号子字段:2 字节

    管理者子字段必须包含一个 4 字节的自治系统号 [BGP-AS4]。如果该 ASN 来自公有 ASN 空间,则必须已由相应权威机构分配(强烈不鼓励使用来自私有 ASN 空间的 ASN 值)。已分配编号子字段包含一个编号,该编号来自一个由相应权威机构将 ASN 分配给的企业所管理的编号空间。

4.3. 控制路由分发 (Controlling Route Distribution)​

在本节中,我们讨论如何控制 VPN-IPv4 路由的分发。

如果一台 PE 路由器通过连接到一个特定 VPN 中的某个特定 CE,而"附加"于该 VPN,它就会从所连接的 CE 路由器处学到该 VPN 的部分 IP 路由。经由某条特定连接电路从一个 CE 路由对等体学到的路由,可能被安装到与该连接电路相关联的 VRF 中。具体哪些路由以这种方式被安装,取决于 PE 从 CE 学习路由的方式。特别是,当 PE 与 CE 是路由协议(routing protocol)对等体时,这由该路由协议的决策过程(decision process)决定,这将在第 7 节讨论。

这些路由随后被转换为 VPN-IPv4 路由,并"导出"(export)到 BGP。如果通往某个特定 VPN-IPv4 地址前缀存在多条路由,BGP 会使用其决策过程选出"最优"(best)的一条。随后,该路由由 BGP 分发给需要知晓它的那一组其他 PE。在这些其他 PE 处,BGP 会再次为某个特定 VPN-IPv4 地址前缀选出最优路由。然后,所选的 VPN-IPv4 路由被转换回 IP 路由,并"导入"(import)到一个或多个 VRF 中。它们是否真的被安装到 VRF 中,取决于 PE 与那些和该 VRF 相关联的 CE 之间所用路由方法的决策过程。最后,任何被安装到 VRF 中的路由都可能被分发给相关联的 CE 路由器。

4.3.1. 路由目标属性 (The Route Target Attribute)​

每个 VRF 都与一个或多个路由目标(Route Target,简称 RT)属性相关联。

当一台 PE 路由器从它从 CE 学到的某条 IPv4 路由创建出一条 VPN-IPv4 路由时,该路由会与一个或多个路由目标属性相关联。这些属性作为该路由的属性在 BGP 中携带。

任何与路由目标 T 相关联的路由,都必须被分发给每一个拥有与该路由目标 T 相关联的 VRF 的 PE 路由器。当一台 PE 路由器收到这样的路由时,它就有资格被安装到该 PE 那些与路由目标 T 相关联的 VRF 中。(它是否真的被安装,取决于 BGP 决策过程的结果,以及运行在 PE/CE 接口上的 IGP(即域内路由协议,intra-domain routing protocol)决策过程的结果。)

一个路由目标属性可以被认为标识了一组站点(尽管更精确地说,应认为它标识了一组 VRF)。将某个特定路由目标属性与一条路由相关联,就使得该路由能够被放入那些用于为来自相应站点的流量进行路由的 VRF 中。

存在一组路由目标,PE 路由器将它们附加到从站点 S 收到的路由上;这组可称为"导出目标"(Export Targets)。还存在一组路由目标,PE 路由器用它们来判断一条从另一台 PE 路由器收到的路由是否可以被放入与站点 S 相关联的 VRF 中;这组可称为"导入目标"(Import Targets)。这两组是互异的,不必相同。注意,一条特定的 VPN-IPv4 路由只有当存在某个路由目标同时是该路由的路由目标之一、又是该 VRF 的导入目标之一时,才有资格被安装到该特定 VRF 中。

路由目标属性所执行的功能,与 BGP 团体(Communities)属性所执行的功能类似。然而,后者的格式对于当前用途而言是不够的,因为它只允许 2 字节的编号空间。我们期望像为 RD 所描述的那样(见第 4.2 节)对这种格式进行结构化,使一个类型字段定义管理者字段的长度,而属性的其余部分则来自指定管理者的编号空间。这可以通过使用 BGP 扩展团体(Extended Communities)来实现。本文讨论的路由目标被编码为 BGP 扩展团体路由目标 [BGP-EXTCOMM],其结构与 RD 类似。

当一台 BGP 发言者(speaker)收到了通往同一个 VPN-IPv4 前缀的多条路由时,会使用 BGP 的路由优先级(route preference)规则来选择由 BGP 安装哪一条 VPN-IPv4 路由。

注意,一条路由只能有一个 RD,但它可以有多个路由目标。在 BGP 中,使用一条带有多个属性的单一路由(而非多条路由),可改善可扩展性(scalability)。人们可以通过创建更多路由(即使用更多 RD)来消除路由目标属性,但那样扩展性会更差。

PE 如何决定把哪些路由目标属性关联到某条给定路由?有若干种可能的做法。PE 可以被配置为:将通往某个指定站点的所有路由都与某个指定路由目标相关联。或者,PE 可以被配置为:将通往某个指定站点的某些路由与一个路由目标相关联,而将另一些与另一个路由目标相关联。

如果 PE 与 CE 本身就是 BGP 对等体(见第 7 节),那么 SP 可以在一定限度内允许客户指定其路由的分发方式。SP 与客户需要预先就允许附加到客户 VPN 路由上的那组 RT 达成一致。然后,CE 可以将这些 RT 中的一个或多个附加到它分发给 PE 的每一条 IP 路由上。这就使客户能够在约定的限度内实时指定其路由分发策略。如果允许 CE 将 RT 附加到其路由上,则 PE 必须过滤掉所有包含客户不被允许使用的 RT 的路由。如果不允许 CE 将 RT 附加到其路由上、而它却这样做了,则 PE 必须在将该客户的路由转换为 VPN-IPv4 路由之前,移除该 RT。

4.3.2. PE 间通过 BGP 的路由分发 (Route Distribution Among PEs by BGP)​

如果某个 VPN 的两个站点连接到位于同一个自治系统(Autonomous System)内的 PE,那么这些 PE 就可以通过它们之间的 IBGP 连接相互分发 VPN-IPv4 路由。("IBGP"一词指的是:当两个 BGP 发言者处于同一个自治系统内时 BGP 连接上所用的一组协议与过程。这区别于"EBGP"——处于不同自治系统内的两个 BGP 发言者之间所用的一组过程。)或者,每台 PE 也可以与一个路由反射器(route reflector)[BGP-RR] 建立 IBGP 连接。

当一台 PE 路由器通过 BGP 分发一条 VPN-IPv4 路由时,它使用自己的地址作为"BGP 下一跳"(BGP next hop)。该地址被编码为一个 RD 为 0 的 VPN-IPv4 地址。([BGP-MP] 要求下一跳地址与网络层可达性信息(Network Layer Reachability Information,简称 NLRI)处于同一地址族。)它同时还分配并分发一个 MPLS 标签。(本质上,PE 路由器分发的不是 VPN-IPv4 路由,而是"带标签的 VPN-IPv4 路由"(Labeled VPN-IPv4 route)。参见 [MPLS-BGP]。)当 PE 处理一个在栈顶带有此标签的接收报文时,PE 会弹出(pop)该栈,并恰当地处理该报文。

该 PE 可以分发出现在 VRF 中的那组确切路由,也可以执行汇总(summarization)并分发这些路由的聚合(aggregate),或者可以部分采用前者、部分采用后者。

假设某台 PE 已为路由 R 分配了标签 L,并已通过 BGP 分发此标签映射(label mapping)。如果 R 是 VRF 中一组路由的聚合,那么该 PE 就会知道:从骨干网到达、携带此标签的报文,其目的地址必须在某个 VRF 中查表。当 PE 在其标签信息库(Label Information Base)中查找该标签时,它会得知必须使用哪个 VRF。另一方面,如果 R 不是聚合,那么当 PE 查找该标签时,它会得知出向连接电路(egress attachment circuit),以及该报文的封装头部。在这种情形下,不会在 VRF 中进行查表。

我们预计最常见的情形是路由"不是"聚合的情形。不过,当 VRF 包含大量主机路由(host route,例如拨号接入(dial-in)时)时,或者当 VRF 关联了一个局域网(Local Area Network,简称 LAN)接口时(此时 LAN 上每个系统都有不同的出向二层头部,但并不会为每一个这样的系统分发一条路由),聚合的情形就会非常有用。

每条路由是否拥有各自独立的标签,是一个实现问题。人们可以采用若干种可能的算法来决定两条路由是否被分配到同一个标签:

  • 可以选择让整个 VRF 共用单个标签,从而使来自该 VRF 的所有路由共享同一个标签。这样,当出向 PE 收到带有该标签的报文时,它必须在该 VRF(报文的"出向 VRF")中查表该报文的 IP 目的地址,以确定报文的出向连接电路以及相应的数据链路(data link)封装。

  • 可以选择让每条连接电路共用单个标签,从而使所有具有相同"出向连接电路"的路由共享同一个标签。这使人能够避免在一次出向 VRF 查表,尽管可能仍需要进行某种查表以确定数据链路封装,例如地址解析协议(Address Resolution Protocol,简称 ARP)查表。

  • 可以选择让每条路由拥有独立的标签。这样,如果某条路由可能经由多条连接电路中的任意一条到达,那么 PE/CE 路由就可以将该路由的优选路径从一条连接电路切换到另一条,而无需为该路由分发新的标签。

也可能存在其他算法。算法的选择完全由出向 PE 自行决定,此外它是透明的(transparent)。

以这种方式使用 BGP 分发的 MPLS 标签时,我们预设:携带这种标签的 MPLS 报文,能够从安装相应 BGP 分发路由的路由器,隧道转发到作为该路由 BGP 下一跳的路由器。这要求要么在那两台路由器之间存在一条标签交换路径(label switched path),要么能够在它们之间使用某种其他隧道技术(例如 [MPLS-in-IP-GRE])。

该隧道可以遵循"尽力而为"(best effort)路由,也可以遵循流量工程(traffic-engineered)路由。在一对给定的路由器之间,可能存在一条这样的隧道,也可能存在若干条,或许具有不同的服务质量(Quality of Service,简称 QoS)特征。对于 VPN 架构而言,重要的是存在这样一条隧道。为确保使用 MPLS 标签交换路径作为隧道技术来实现本 VPN 架构的各系统之间的互操作性(interoperability),所有这些系统都必须支持标签分发协议(Label Distribution Protocol,简称 LDP)[MPLS-LDP]。特别是,在既非标签控制 ATM(Label Controlled ATM,简称 LC-ATM)[MPLS-ATM]、也非标签控制帧中继(Label Controlled Frame Relay,简称 LC-FR)[MPLS-FR] 的接口上,必须支持下游主动(Downstream Unsolicited)模式;而在 LC-ATM 接口和 LC-FR 接口上,必须支持按需下游(Downstream on Demand)模式。

如果隧道遵循尽力而为路由,那么 PE 会通过在缺省转发表中查找其 IP 地址,来找到通往远端端点(remote endpoint)的路由。

一台 PE 路由器,除非它是路由反射器(见第 4.3.3 节)或某个跨提供商 VPN 的自治系统边界路由器(Autonomous System Border Router,简称 ASBR)(见第 10 节),否则,除非它至少有一个 VRF 的导入目标与该路由的某个路由目标属性完全相同,否则不应安装一条 VPN-IPv4 路由。应使用入站过滤(inbound filtering)来使这类路由被丢弃。如果之后向该 PE 的某个 VRF 添加了一个新的导入目标(一次"VPN 加入"(VPN Join)操作),那么它就必须随后获取它先前可能丢弃的那些路由。这可以通过使用 [BGP-RFSH] 中描述的刷新(refresh)机制来完成。也可以利用 [BGP-ORF] 的出站路由过滤(outbound route filtering)机制来使过滤更加动态。

类似地,如果某个特定的导入目标不再存在于某台 PE 的任何 VRF 中(作为一次或多次"VPN 剪枝"(VPN Prune)操作的结果),那么该 PE 可以丢弃所有那些因此而不再具有该 PE 任何 VRF 的导入目标作为其路由目标属性的路由。

一台不连接任何 VPN、且不是路由反射器(即 P 路由器)的路由器,永远都不会安装任何 VPN-IPv4 路由。

注意,只要使用了 [BGP-RFSH] 的刷新机制,VPN 加入与剪枝操作就是非中断性的(non-disruptive),不需要拆除任何 BGP 连接。

由于这些分发规则,没有任何一台 PE 需要维护所有 VPN 的全部路由;这是一个重要的可扩展性考量。

4.3.3. 路由反射器的使用 (Use of Route Reflectors)​

与其在 PE 之间建立完整的 IBGP 全互连(mesh),不如利用 BGP 路由反射器 [BGP-RR] 来改善可扩展性,这样更有利。所有用于利用路由反射器改善可扩展性的常规技术(例如路由反射器层级(hierarchy))都可供使用。

路由反射器是唯一一类需要拥有与其没有直接连接的 VPN 的路由信息的系统。然而,并不需要让任何一个路由反射器知晓骨干网所支持的所有 VPN 的全部 VPN-IPv4 路由。

我们在下面概述了在一组路由反射器之间划分 VPN-IPv4 路由集合的两种不同方式。

  1. 每个路由反射器都预先配置了一份路由目标列表。为提供冗余,可以将多个路由反射器预先配置为同一份列表。路由反射器使用预先配置的路由目标列表来构建其入站路由过滤。路由反射器可以利用 [BGP-ORF] 的技术,在其每个对等体(无论该对等体是另一个路由反射器还是一台 PE)上,安装包含了其预先配置的路由目标列表的那一组出站路由过滤器(Outbound Route Filter,简称 ORF)。注意,路由反射器应当接受来自其他路由反射器的 ORF,这意味着路由反射器应当向其他路由反射器通告(advertise)ORF 能力(capability)。

    服务提供商可以修改路由反射器上预先配置的路由目标列表。进行此操作时,路由反射器会修改它在所有 IBGP 对等体上安装的 ORF。为降低路由反射器上配置变更的频率,可以为每个路由反射器预先配置一个路由目标块(block)。这样,当某个新 VPN 需要一个新的路由目标时,就已经有一个或多个路由反射器(预先)配置好了该路由目标。

    除非某个给定 PE 是所有路由反射器的客户端,否则当向该 PE 添加一个新 VPN("VPN 加入")时,它将需要成为维护该 VPN 路由的那个(或那些)路由反射器的客户端。同样,从 PE 上删除一个已有 VPN("VPN 剪枝")可能导致这样一种情形:该 PE 不再需要成为某些路由反射器的客户端。无论哪种情形,加入或剪枝操作都是非中断性的(只要使用了 [BGP-RFSH]),并且永远不需要拆除一个 BGP 连接,只需将其重新建立即可。

    (所谓"向一个 PE 添加新 VPN",我们实际指的是:向其某个 VRF 添加一个新的导入路由目标,或是添加一个新的 VRF,其导入路由目标为该 PE 其他 VRF 所没有的。)

  2. 另一种方法是让每个 PE 成为某组路由反射器的客户端。路由反射器不预先配置路由目标列表,也不对从其客户端(PE)收到的路由执行入站路由过滤,而是接受来自其所有客户端(PE)的全部路由。路由反射器跟踪它所收到的所有路由所携带的路由目标集合。当路由反射器从客户端收到一条带有某个不在该集合中的路由目标的路由时,该路由目标会立即被加入集合。另一方面,当路由反射器不再拥有任何带有该集合中某个特定路由目标的路由时,路由反射器应当延迟(数小时)将该路由目标从集合中删除。

    路由反射器利用这个集合来构建它应用于从其他路由反射器收到的路由上的入站路由过滤器。路由反射器也可以利用 ORF 在其他路由反射器上安装恰当的输出路由过滤。与第一种方法一样,路由反射器应当接受来自其他路由反射器的 ORF。为此,路由反射器会向其他路由反射器通告 ORF 能力。

    当路由反射器改变该集合时,它应当立即改变其入站路由过滤。此外,如果路由反射器使用了 ORF,那么 ORF 也必须立即随之改变以反映集合的变化。如果路由反射器没有使用 ORF,且向集合中添加了新的路由目标,那么路由反射器在改变其入站路由过滤之后,必须向其他路由反射器发出 BGP 刷新(BGP Refresh)。

    上述"数小时"的延迟,使路由反射器能够保留带有某个给定 RT 的路由,即便它已失去对该类路由感兴趣的最后一个客户端。这可以防止:如果客户端的"消失"只是暂时的,就需要重新获取所有这些路由。

    按照此过程,VPN 加入与剪枝操作同样是非中断性的。

    注意,如果某个客户端 PE 有一个 VRF,其导入路由目标并不是它的导出路由目标之一,那么此技术将无法正常工作。

在这些过程中,连接到某个特定 VPN 的一台 PE 路由器会"自动发现"(auto-discover)连接到同一 VPN 的其他 PE。当添加一台新 PE 路由器,或当一台已有 PE 路由器连接到一个新 VPN 时,无需重新配置其他 PE 路由器。

正如没有任何一台 PE 路由器需要知晓骨干网上所支持的所有 VPN-IPv4 路由一样,这些分发规则确保了:没有任何一个路由反射器(RR)需要知晓骨干网上所支持的所有 VPN-IPv4 路由。因此,骨干网上所能支持的全部此类路由的数量,不受任何单一设备容量的限制,因而几乎可以无界地增长。

4.3.4. VPN-IPv4 NLRI 在 BGP 中如何承载 (How VPN-IPv4 NLRI Is Carried in BGP)​

BGP 多协议扩展 [BGP-MP] 被用来编码 NLRI。如果地址族标识符(Address Family Identifier,简称 AFI)字段被设为 1,且后续地址族标识符(Subsequent Address Family Identifier,简称 SAFI)字段被设为 128,那么该 NLRI 就是一个带 MPLS 标签的 VPN-IPv4 地址。使用 AFI 1 是因为与该 NLRI 相关联的网络层协议仍是 IP。注意,此 VPN 架构并不要求具备分发未带标签的 VPN-IPv4 地址的能力。

为了使两个 BGP 发言者能够交换带标签的 VPN-IPv4 NLRI,它们必须使用 BGP 能力通告(Capabilities Advertisement)来确保双方都有能力正确处理此类 NLRI。这按照 [BGP-MP] 的规定完成,即使用能力码(capability code)1(多协议 BGP),并配以 AFI 为 1、SAFI 为 128。

带标签的 VPN-IPv4 NLRI 本身的编码如 [MPLS-BGP] 所规定,其中前缀由一个 8 字节的 RD 后接一个 IPv4 前缀组成。

4.3.5. 利用路由目标构建 VPN (Building VPNs Using Route Targets)​

通过恰当地设置导入目标与导出目标,人们可以构建不同类型的 VPN。

假设希望创建一个全互连的封闭用户组(closed user group),即一组站点,其中每个站点都能直接向其他站点发送流量,但流量不能发往或接收自其他站点。那么,每个站点都与一个 VRF 相关联;选择一个单一的路由目标属性,将该路由目标作为导入目标和导出目标都指派给每个 VRF,并且不将该路由目标指派给任何其他 VRF 作为导入目标或导出目标。

另一种情形,假设出于某种原因希望创建一个"中心—辐射"(hub and spoke)型 VPN。这可以通过使用两个路由目标值来实现,一个意指"中心"(Hub),一个意指"辐射"(Spoke)。在连接到中心站点的 VRF 上,"Hub"是导出目标,"Spoke"是导入目标。在连接到辐射站点的 VRF 上,"Hub"是导入目标,"Spoke"是导出目标。

由此可见,用于控制路由信息在各组站点之间分发的方法非常灵活,这进而为构建 VPN 提供了极大的灵活性。

4.3.6. 单台 PE 内 VRF 间的路由分发 (Route Distribution Among VRFs in a Single PE)​

即便两个 VRF 位于同一台 PE 中,也可以将路由从一个 VRF 分发到另一个 VRF,尽管在这种情形下不能说该路由是经由 BGP 分发的。然而,将某条特定路由从同一台 PE 内的一个 VRF 分发到另一个 VRF 的决定,与如果这些 VRF 位于不同 PE 上时所作的决定相同。也就是说,它取决于指派给该路由的路由目标属性(或者,如果该路由是经由 BGP 分发的,本应被指派的那个),以及第二个 VRF 的导入目标。