如何使用 LDP 在 MPLS LSP 中确定 LER

网络工程 思科 聚光灯 低密度脂蛋白
2021-07-25 22:53:58

前言; 在下面的拓扑中,R1 和 R6 是 PE,所有其他都是 P 路由器,所有路由器都运行 c7200-jk9s-mz.124-13b.bin。此时 IGP 已完全收敛(为简单起见,OSPF 的所有接口都在区域 0 中)并且在所有使用 LDP 的接口上启用 MPLS。此时不存在 BGP 配置。

在此处输入图片说明

这是 R1 上的 MPLS 转发表;

R1#show mpls forwarding-table 
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    
tag    tag or VC   or Tunnel Id      switched   interface              
16     Pop tag     10.0.0.2/32       0          Fa0/0      10.0.12.2    
17     Pop tag     10.0.0.3/32       0          Fa0/1      10.0.13.3    
18     Pop tag     10.0.24.0/24      0          Fa0/0      10.0.12.2    
19     Pop tag     10.0.35.0/24      0          Fa0/1      10.0.13.3    
20     20          10.0.57.0/24      0          Fa0/1      10.0.13.3    
21     20          10.0.46.0/24      0          Fa0/0      10.0.12.2    
22     21          10.0.76.0/24      0          Fa0/1      10.0.13.3    
       21          10.0.76.0/24      0          Fa0/0      10.0.12.2    
23     23          10.0.0.4/32       0          Fa0/0      10.0.12.2    
24     24          10.0.0.5/32       0          Fa0/1      10.0.13.3    
25     25          10.0.0.6/32       0          Fa0/0      10.0.12.2    
26     26          10.0.0.7/32       0          Fa0/1      10.0.13.3

如果我的理解是正确的,R1 已经为每个 FEC 生成了标签,R2 和 R3 向 R1 发送了他们拥有的每个 MPLS FEC 的 LDP 绑定(每个 MPLS 标签)。使用此信息,R1(例如)在向 10.0.12.2 (R2) 发送带有 MPLS 标记的数据包之前,查找流向 10.0.0.6 的流量并推送传出标签 25。

对我来说,这里有几个问题;

  1. 在网络初始收敛之后,LSP 现在存在于所有 FEC 之间,这些 FEC 通常是连接到子网的 LER 上的接口。R1 是通往 R6 的 LSP 的 LER,R6 是该 LSP 中的另一个 LER。例如,如果 R7 也是 PE 路由器,则每个 R1 接口和每个 R7 接口之间将存在 LSP,因此将存在更多 LSP,然后 R1 和 R7 是这些 LSP 的两个 LER。这都是正确的吗?

  2. 假设基线是正确的;例如,R1 如何知道它是跨越 R6 的 LSP 的 LER(以及此拓扑中存在的所有其他可能的 LSP,其中 R1 是 LSP 的一个终端设备,例如我们像以前一样将 R7 作为 PE 引入?) . 这是因为 IGP(在本例中为 OSPF)具有网络的完全可见性,因此它(所有边缘)可以从 IGP 数据库中计算出来?

  3. 如果 2 是正确的,我们是如何到达那个阶段的?一旦网络与 IGP 完全融合并且 LDP 交换完成,PE 路由器是否会查看 FIB(或者是 IGP RIB?)并计算出所有可能的 LDP,哪些将成为 LER,以及谁/另一端的 LER 是什么?

2个回答

首先,我建议您查看Cisco 的 MPLS 初学者常见问题解答,或Richard A SteenbergenNANOG 演示文稿“MPLS for Dummies”他们都有一些非常好的信息。


话虽如此,让我一次一个地解决您的问题。(我在下面摘录了它们的一部分。)

1:在网络初始收敛之后,LSP 现在存在于所有 FEC 之间,这些 FEC 通常是连接到子网的 LER 上的接口。

是的,LSP 存在于所有可到达的 FEC。MPLS 数据包现在可以跨网络交换。

2:假设基线是正确的;例如,R1 如何知道它是跨越 R6 的 LSP 的 LER

R1 不知道它是跨越 R6 的 LSP 的一部分。它只关心本地/连接的标签和 FEC。这是使 MPLS 标签交换快速有效的部分原因。它不必知道整个路径。路由器只知道到达FEC1,我应用标签1234,然后退出接口XYZ

然后路径中的后续跳使用相同的过程,交换适当的下一跳标签并打开数据包。


至于底线问题LER 是如何确定的?,路由器本身并不真正知道或关心它是否是 LER。它只知道当它接收到一个没有标签的发往本地目的地的数据包时,它会传递它。

在上面的输出中,您可以看到前 4 个传出 FEC 已Pop tag列为传出标签。离开 R1 到 R2 或 R3 上的本地子网之一的数据包只是弹出它的标签并转发出适当的接口。

当 R2 或 R3 收到该数据包时,它们看不到标签并通过将其传送到本地接口的正常路由过程对其进行处理。

引用维基百科上关于 MPLS 的文章

在出口路由器,当最后一个标签被弹出时,只剩下有效载荷。这可以是 IP 数据包,或多种其他类型的有效负载数据包中的任何一种。因此,出口路由器必须具有数据包有效载荷的路由信息​​,因为它必须在没有标签查找表帮助的情况下转发它。MPLS 中转路由器没有这样的要求。

如果没有配置 BGP,您还没有 PE,它是一个全网状的任意对任意 MPLS 网络。

但是,当您在 R1 和 R6 上添加 MP-BGP 时,两者现在都可以定义为 PE,R1 和 R6 将添加另一个 MPLS 标签,并要求从倒数第二个 P 路由器弹出倒数第二个跃点,因此 PE 现在是 LER它们之间的 LSP。

P 路由器不知道 BGP 路由,它们根据最佳路径转发来自 PE 的标记 mpls 流量。

此外,可以为 MPLS 和 AToM 上的以太网等实现创建伪线而不是 BGP,然后 PW 路由器端点将是 LER。

这是基本描述,请查看 CiscoPress MPLS Fundamentals 书籍。