数通设备配置RD和RT详解
核心结论
| 配置项 | 两端是否要一样 | 原因 |
|---|---|---|
| RD (Route Distinguisher) | ❌ 必须不同 | 用于在 PE 本地唯一标识 VPN 实例,确保路由唯一性 |
| RT (Route Target) | ✅ 必须匹配 | 用于控制路由的导入/导出,实现互通 |
详细解释
1. RD (Route Distinguisher) — 两端必须不同
RD 的作用:
- 使 VPN 实例成为全局唯一的 VPNv4/VPNv6 路由
- 格式:
<ASN>:<编号>或<IP地址>:<编号> - 即使两个 VPN 实例的 IPv4 地址重叠,加上 RD 后也能区分
为什么两端必须不同?
PE-1 上 VPN A: RD = 100:1
PE-2 上 VPN A: RD = 100:2
当 PE-1 发布路由 10.0.0.0/8 时:
- 实际发送的是 RD 100:1:10.0.0.0/8
- PE-2 收到后,会将其导入自己的 VPN 实例
如果两端 RD 相同:
- 理论上也可以工作(某些厂商允许)
- 但会失去区分能力,不推荐
- 路由反射器处理时可能产生歧义
设备配置示例:
# PE-1 (NJ-SCT-R03)
ip vpn-instance l3_2348
route-distinguisher 137749:2258 # 本端用 2258
# PE-2 (对端设备)
ip vpn-instance l3_2348
route-distinguisher 137749:???? # 应该用不同的值,比如 2259 或 137749:2259
最佳实践:
- 同一个 VPN 在不同 PE 上使用相同的 ASN,但编号部分不同
- 例如:PE-1 用
137749:2258,PE-2 用137749:2259
2. RT (Route Target) — 两端必须匹配
RT 的作用:
- 控制 VPN 路由的导入/导出
- 类似于 VLAN 的 Tag,决定哪些路由可以进入哪个 VPN
为什么两端必须匹配?
PE-1 配置:
export RT: 137749:2239 → 发布路由时打上标签 "137749:2239"
import RT: 137749:2239 → 只接收带有标签 "137749:2239" 的路由
PE-2 配置:
export RT: 137749:2239 → 发布路由时打上标签 "137749:2239"
import RT: 137749:2239 → 只接收带有标签 "137749:2239" 的路由
结果:两端都能接收对方的路由 ✅
如果 RT 不匹配:
PE-1 export: 137749:2239
PE-2 import: 137749:9999 ← 不匹配!
结果:PE-2 收不到 PE-1 的路由 ❌
设备配置示例:
# PE-1 (NJ-SCT-R03)
ip vpn-instance l3_2348
address-family ipv4
vpn-target 137749:2239 import-extcommunity
vpn-target 137749:2239 export-extcommunity
# PE-2 (对端设备) — RT 必须完全相同
ip vpn-instance l3_2348
address-family ipv4
vpn-target 137749:2239 import-extcommunity # 相同
vpn-target 137749:2239 export-extcommunity # 相同
对比表格
| 对比项 | RD | RT |
|---|---|---|
| 全称 | Route Distinguisher | Route Target |
| 格式 | ASN:NN 或 IP:NN | ASN:NN 或 IP:NN |
| 作用范围 | 本地有效(PE 本地唯一) | 全局有效(整个 MPLS/SRv6 网络) |
| 两端是否相同 | ❌ 必须不同 | ✅ 必须相同 |
| 用途 | 区分不同 VPN 实例的路由 | 控制路由的导入导出 |
| 类比 | 身份证号码(每人唯一) | 社区门禁卡(同一社区用同一把卡) |
| BGP 中位置 | NLRI 的一部分 | Community 属性 |
完整配置示例
假设要在两台 PE 上配置同一个 VPN l3_2348:
PE-1 (本端 NJ-SCT-R03)
ip vpn-instance l3_2348
route-distinguisher 137749:2258 # 本端唯一 RD
description test
routing-table limit 15000 75
address-family ipv4
default-color 0 evpn
vpn-target 137749:2239 import-extcommunity # ← RT
vpn-target 137749:2239 export-extcommunity # ← RT
bgp 137749
ip vpn-instance l3_2348
address-family ipv4 unicast
segment-routing ipv6 locator SRv6 evpn
segment-routing ipv6 traffic-engineering best-effort evpn
import-route direct
PE-2 (对端设备)
ip vpn-instance l3_2348
route-distinguisher 137749:2259 # ← 必须不同!用 2259
description test
routing-table limit 15000 75
address-family ipv4
default-color 0 evpn
vpn-target 137749:2239 import-extcommunity # ← RT 完全相同
vpn-target 137749:2239 export-extcommunity # ← RT 完全相同
bgp 137749
ip vpn-instance l3_2348
address-family ipv4 unicast
segment-routing ipv6 locator SRv6 evpn # 可以用相同或不同的 Locator
segment-routing ipv6 traffic-engineering best-effort evpn
import-route direct
import-route static
常见误区
❌ 误区1:RD 两端必须一样
错误理解:同一个 VPN 在不同 PE 上应该用相同的 RD。
正确理解:RD 只需要在同一台 PE 内部唯一即可,不同 PE 之间可以不同。实际上,推荐使用不同的 RD,这样可以:
- 避免路由混淆
- 方便排查问题(知道路由来自哪台 PE)
❌ 误区2:RT 两端可以不同
错误理解:只要两端的 import/export 交叉匹配就行。
正确理解:虽然交叉匹配理论上可行(A export 1,B export 2;A import 2,B import 1),但会造成配置混乱。强烈建议使用对称的 RT(两端 import 和 export 都用相同的值)。
❌ 误区3:同一个 VPN 在不同 PE 上必须用相同的 VPN 实例名称
正确理解:VPN 实例名称只是本地配置,不需要相同。但为了方便管理,通常建议保持一致。
总结
| 场景 | RD | RT |
|---|---|---|
| 同一个 VPN 的两端 | 不同(推荐) | 相同(必须) |
| 不同 VPN | 不同 | 不同 |
| Hub-Spoke 架构 | 不同 | 可以不对称(Hub 同时 import/export,Spoke 只 export/import 单方向) |
总结:
RD 是身份证号,每人不同;RT 是社区门禁卡,同一社区用同一种卡。

浙公网安备 33010602011771号