MPLS中的标签分发协议(LDP)

网络工程 转变 聚光灯 网络核心 mpls-tp
2021-07-23 20:36:36

最近在研究MPLS技术,看了MPLS的一些特性,心里有这个疑问。

A---B---c
    |    |
    D----E

假设路由器 A、E 是 LER,B、C、D 是 LSR,我们想从 A->E 发送流量。我了解到只有 LSR 可以初始分配标签,在 LDP 中,下游路由器启动标签分配和标签/FEC 绑定。

Can someone please explain me
1.)how A(LER) can transmit the packets to B(LSR).
2.)how can B know which label and port to forward,if it receives the distribution from C(Where C and D are downstream routers)

谢谢。

1个回答

标签本身是一个聚合标签,即标签没有附加重写信息,因此它不知道出口接口,也不知道出口MAC地址。例如,聚合标签用于连接的网络。
Aggregate label 意味着您不知道 MPLS 查找后的出口信息,因此您必须进行正常的 IP 查找才能确定出口信息。

普通标签附有出口重写信息,即查找标签将返回出口接口(包含所有必要信息,如 MAC 地址、VLAN 等)

让我们假设所有链路都是 IGP 度量 1,除了 BC 是度量 2。

将 A 发送到 E 的环回 (192.0.2.5) 将发生以下情况

  1. E 将为 192.0.2.5/32 分配显式 (0) 或隐式 (默认)
  2. E 将使用 LDP 将前缀+标签 (FEC) 分发给 C 和 D
  3. C 将为此分配本地标签,比如 100(可以是任何东西)
    1. C 将编程 FIB 条目,以便标签 100 指向 E 的接口,如果显式为空,则 MPLS 标签操作为“SWAP 0”,如果为隐式为空,则为“POP”
    2. C 将编程 FIB 条目,因此前缀 192.0.2.5/32 指向 E 的接口,如果显式为空,则 MPLS 标签操作“PUSH 0”
  4. D 将为此分配本地标签,比如 200(可以是任何东西,甚至 100、300、400)
    1. D 将编程 FIB 条目,以便标签 200 指向 E 的接口,如果显式为空,则 MPLS 标签操作为“SWAP 0”,如果为隐式为空,则为“POP”
    2. D 将编程 FIB 条目,以便前缀 192.0.2.5/32 指向 E 的接口,如果显式为空,则 MPLS 标签操作“PUSH 0”
  5. D 和 C 将使用 LDP 将前缀+标签分发给 B
  6. B 将为此分配本地标签,比如说 300(可以是任何东西)
    1. B 将编程 FIB 条目,以便标签 300 指向 D 的接口(因为 IGP 度量!),以及 MPLS 标签操作“SWAP 200”
    2. B 将编程 FIB 条目,以便前缀 192.0.2.5/32 指向 D 的接口,并且 MPLS 标签操作“PUSH 200”
  7. B 将使用 LDP 将前缀+标签分发给 A
  8. A 将为此分配本地标签,比如 400(可以是任何东西)
    1. A 将编程 FIB 条目,以便标签 400 指向 B 的接口,并且 MPLS 标签操作“SWAP 300”
    2. A 将编程 FIB 条目,以便前缀 192.0.2.5/32 指向 B 的接口,并且 MPLS 标签操作“PUSH 300”

现在当 A 发送到 192.0.2.5/32 时转发平面会发生什么

  1. A 将 PUSH(强加)标签 300 并发送给 B
  2. B会咨询FIB 300,也就是Interface D和SWAP 200
  3. D会咨询FIB为200,即Interface E和POP(或SWAP 0)
  4. E 将接收帧