MPLS-BGP - VPN 隔离 - RFC 4364

网络工程 虚拟专用网 bgp 聚光灯 虚拟现实
2021-07-08 07:57:24

RFC-4364 的第 6 节中指出,如果 MPLS 被用作隧道技术(在将 VPN-IPV4 流量从一个 PE 转发到另一个 PE 的范围内),这意味着骨干网中的路由器不得接受来自任何相邻非骨干设备的标记数据包,除非以下两个条件成立:

  2. the backbone router can determine that use of that label will
     cause the packet to leave the backbone before any labels lower
     in the stack will be inspected, and before the IP header will
     be inspected.

我试图了解骨干网中的第一个 P 路由器如何能够确定从 PE 路由器发送的给定标签将导致数据包离开骨干网。

这也让我对 MPLS 感到疑惑,比如在以下配置中,它在 P1-P3 路由器之间启用,每个 (L<number>) 代表它们的内部标签 (IGRP):

ingressPE (L0) <--> P1 (L1) <---> P2 (L2)<--> P3 (L3) <--> egressPE (L4)

当 P1 收到来自 ingressPE 的数据包时,堆栈顶部带有标签 L4,我想它知道相应的 egressPE 是离开骨干网的路,但随后这个 L4 标签将被 L2 替换为 L3。

那么P3如何知道它需要将数据包发送到L4,所有标签都被交换,它是否根据IP查找信息?

1个回答

骨干网中的路由器使用标签分发协议:LDP 或 RSVP。每个路由器将一个标签绑定到它知道的每个 IP 前缀,并将这些标签通告给它的 LDP/RSVP 对等体。假设路由器出口 PE 将其 BGP 环回地址通告给 P3,标签为 20。然后 P3 将其通告给 P2,标签为 21,P2 将此网络通告给 P1,标签为 22,最后 P1 通告给入口 PE,标签为标签为 23。在这个过程之后,一个 LSP 已经形成。现在,当数据包到达目的地为 BGP 环回地址的入口 PE 时,入口 PE 施加标签 23 并转发到与标签 22 交换的 P1 并转发到与 21 交换的 P2……最终标签到达出口 PE它弹出标签并进行 IP 查找(除非使用 PHP,