跳到主要内容

3.3.1. Anycast-SID in SR-MPLS (SR-MPLS 中的任播 SID)

                       +--------------+
| Group A |
|192.0.2.10/32 |
| SID:100 |
| |
+-----------A1---A3----------+
| | | \ / | | |
SID:10 | | | / | | | SID:30
203.0.113.1/32 | | | / \ | | | 203.0.113.3/32
PE1------R1----------A2---A4---------R3------PE3
\ /| | | |\ /
\ / | +--------------+ | \ /
\ / | | \ /
/ | | /
/ \ | | / \
/ \ | +--------------+ | / \
/ \| | | |/ \
PE2------R2----------B1---B3---------R4------PE4
203.0.113.2/32 | | | \ / | | | 203.0.113.4/32
SID:20 | | | / | | | SID:40
| | | / \ | | |
+-----------B2---B4----------+
| |
| Group B |
| 192.0.2.1/32 |
| SID:200 |
+--------------+

图 1: 中转设备组

图 1 展示了一个包含两组中转设备的网络示例。组 A 由设备 {A1, A2, A3, 和 A4} 组成。它们都配置了任播地址 192.0.2.10/32 和 Anycast-SID 100。

类似地, 组 B 由设备 {B1, B2, B3, 和 B4} 组成, 它们都配置了任播地址 192.0.2.1/32 和 Anycast-SID 200。在上述网络拓扑中, 每个提供商边缘 (PE) 设备都有到达每个组的路径: A 和 B。

PE1 可以在向 PE3 或 PE4 发送流量时选择特定的中转设备组。这将通过在堆栈中推送组的 Anycast-SID 来完成。

处理任播和后续段需要特别注意。

                 +-------------------------+
| Group A |
| 192.0.2.10/32 |
| SID:100 |
|-------------------------|
| |
| SRGB: SRGB: |
SID:10 |(1000-2000) (3000-4000)| SID:30
PE1---+ +-------A1-------------A3-------+ +---PE3
\ / | | \ / | | \ /
\ / | | +-----+ / | | \ /
SRGB: \ / | | \ / | | \ / SRGB:
(7000-8000) R1 | | \ | | R3 (6000-7000)
/ \ | | / \ | | / \
/ \ | | +-----+ \ | | / \
/ \ | | / \ | | / \
PE2---+ +-------A2-------------A4-------+ +---PE4
SID:20 | SRGB: SRGB: | SID:40
|(2000-3000) (4000-5000)|
| |
+-------------------------+

图 2: 通过任播组 A 的中转路径

考虑 MPLS 部署, 在上述拓扑中, 如果设备 PE1 (或 PE2) 需要向设备 PE3 (或 PE4) 发送数据包, 它需要使用以下标签堆栈将数据包封装在 MPLS 有效载荷中。

  • R1 为 Anycast-SID 100 分配的标签 (外层标签)。

  • 组 A 中最近的路由器为 SID 30 分配的标签 (用于目的地 PE3)。

在这种情况下, 第一个标签很容易计算。但是, 由于有多个拓扑上最近的设备 (A1 和 A2), 因此除非 A1 和 A2 为相同的前缀分配了相同的标签值, 否则无法确定第二个标签。设备 A1 和 A2 可能是来自不同硬件供应商的设备。如果两者都没有为 SID 30 分配相同的标签值, 则无法使用任播组 A 作为到 PE3 的中转任播组。因此, PE1 (或 PE2) 无法计算适当的标签堆栈以将数据包专门通过组 A 设备引导。当 PE3 和 PE4 尝试向 PE1 或 PE2 发送数据包时, 同样适用。

为了简化任播段的使用, 建议在特定任播组的所有节点上配置相同的 SRGB。使用此方法, 如上所述, 计算任播段后面的标签非常简单。

在属于同一任播组的所有节点上使用任播段而不配置相同的 SRGB 可能会导致路由错误 (在 MPLS VPN 部署中, 某些流量可能会在 VPN 之间泄漏)。