3. 多租户网络模型设计

在 MX 系列平台上承载 EVPN 多租户业务时,真正决定“租户之间是否真正隔离、路由是否可控、后续扩容是否顺畅”的,并不是某一条 EVPN 命令,而是前期完成的多租户网络模型设计。它要回答四个问题:租户之间隔离到什么程度、每个租户的 VRF 如何与 EVPN 实例对应、路由目标(RT)与路由区分符(RD)如何规划、租户命名与资源如何分配。本节围绕这四个问题展开,并给出可直接参考的规划示例。

一、租户隔离需求:先定隔离级别,再定技术手段

多租户隔离不是“隔离或不隔离”的二值选择,而是分层级的。工程上通常按三个维度描述:路由隔离(不同租户能否互相学到路由)、转发隔离(数据面是否共享同一张转发表)、地址隔离(不同租户能否使用重叠 IP 地址段)。

在 EVPN 承载场景中,隔离主要依靠 VRF 实例实现:每个租户的每个三层业务对应一个独立 VRF,其路由表、ARP/ND 表、转发表相互独立。若两个租户使用相同的 10.10.0.0/24 地址段,只要分属不同 VRF,就不会冲突。若业务需要租户间互通(如共享服务区),则通过路由泄漏(route leaking)或外部防火墙受控引入,而不是让两个 VRF 直接合并。

隔离需求还应明确“租户内多站点”的模型:同一租户在不同 PE 上的同一业务,应属于同一个 EVPN 实例,通过 EVPN 的 Type-2/Type-3 路由实现跨站点二层/三层互通;而不同租户即使 VLAN ID 相同,也必须映射到不同 EVPN 实例,避免误互通。

二、VRF 与 EVPN 实例映射:一对一为主,按需多对一

在 Junos 中,EVPN 实例通过 routing-instances 下的 instance-type evpn(或 vrf 配合 EVPN 相关配置)定义,并与 VRF 表关联。推荐的映射原则是:一个租户的一个三层业务 = 一个 VRF = 一个 EVPN 实例,即一对一映射。这样 RD/RT、路由表、接口、策略都归属清晰,排障时定位简单。

当租户业务量很小、且确定不需要独立路由策略时,才考虑多对一(多个小租户共用一个 EVPN 实例,用不同 VLAN 或不同 RT 区分)。但多对一会削弱隔离与可观测性,一般不作为默认方案。

映射关系还需要落到接口层:接入侧通常用 vlan-id 或 vlan-id-list 绑定到 EVPN 实例,核心侧通过 BGP EVPN 地址族发布。下面给出一个典型映射示例(示例参数,非实测):

routing-instances {
    TENANT-A-L3VPN {
        instance-type vrf;
        interface ge-0/0/1.100;
        route-distinguisher 65000:1001;
        vrf-target target:65000:1001;
        vrf-table-label;
    }
    TENANT-B-L3VPN {
        instance-type vrf;
        interface ge-0/0/1.200;
        route-distinguisher 65000:1002;
        vrf-target target:65000:1002;
        vrf-table-label;
    }
}

其中 vrf-target 同时承担 import 与 export 的 RT 作用;若需要非对称策略,可分别写 vrf-target import 与 vrf-target export。

三、RD 与 RT 规划:全局唯一与按需导入

RD(Route Distinguisher)的作用是让不同 VRF 中相同的 IPv4 前缀在 BGP 中成为不同路由,它只影响路由标识,不影响导入导出。规划原则是:全网唯一、可读、可扩展。常用格式为 ASN:nn 或 IP:nn。建议用“ASN + 租户编号 + 业务编号”编码,例如 65000:1001 表示租户 A 的三层业务 1。

RT(Route Target)决定路由的导入导出关系,是控制租户互通的关键。规划原则是:默认每租户独立 RT,禁止跨租户导入;需要共享服务时,额外增加一个共享 RT,并只对特定 VRF 开放。RT 建议与 RD 使用同一编号体系,便于对照,但二者语义不同,不能混用。

下表给出一个可参考的规划示例(示例数据):

租户业务VRF/EVPN 实例RDRT(import/export)地址段
TENANT-A办公TENANT-A-L3VPN65000:1001target:65000:100110.10.0.0/24
TENANT-A生产TENANT-A-PROD65000:1002target:65000:100210.20.0.0/24
TENANT-B办公TENANT-B-L3VPN65000:2001target:65000:200110.10.0.0/24
共享服务DNSSHARED-SVC65000:9000target:65000:9000172.16.0.0/24

注意 TENANT-A 与 TENANT-B 的办公业务都使用 10.10.0.0/24,但 RD 与 RT 不同,因此互不干扰;共享服务通过额外 RT 被各租户按需导入。

四、租户命名与资源分配策略

命名应做到“看名字知归属”。推荐格式:TENANT-<租户>-<业务>-<类型>,例如 TENANT-A-L3VPN、TENANT-A-PROD。接口描述、路由策略名、防火墙过滤器名沿用同一前缀,便于批量检索与自动化。

资源分配要提前规划三类资源:VLAN ID(接入侧)、RD/RT 编号段(控制面)、地址段(业务面)。建议按租户划分连续编号段,例如租户 A 使用 1000–1999,租户 B 使用 2000–2999,共享服务使用 9000 段。这样新增租户时只需分配新号段,不会与既有配置冲突。

规划阶段应输出一份“租户资源台账”,至少包含租户名、业务名、VRF 名、RD、RT、VLAN、地址段、接入 PE 与端口。该台账是后续配置、排障和扩容的唯一依据。

五、模型落地:从需求到配置的对应关系

把上述设计串起来,可以得到一条清晰的映射链:租户隔离需求 → VRF/EVPN 实例 → RD/RT → 接口与 VLAN → BGP EVPN 发布。下图展示了这一映射关系与数据流向,帮助理解各要素之间的对应与约束。

多租户 EVPN 模型:隔离需求 → VRF/EVPN → RD/RT → 接口与发布 租户隔离需求 路由隔离 / 转发隔离 地址可重叠 VRF / EVPN 实例 一租户一业务一实例 独立路由表与转发表 RD / RT 规划 RD 全局唯一 RT 控制导入导出 接口/VLAN BGP EVPN 发布 示例:租户 A / 租户 B / 共享服务 的映射与隔离 TENANT-A VRF: TENANT-A-L3VPN RD 65000:1001 / RT 65000:1001 10.10.0.0/24 · VLAN 100 TENANT-B VRF: TENANT-B-L3VPN RD 65000:2001 / RT 65000:2001 10.10.0.0/24 · VLAN 200 SHARED-SVC VRF: SHARED-SVC RD 65000:9000 / RT 65000:9000 172.16.0.0/24 · VLAN 900 隔离 隔离 按需导入共享 RT 相同地址段因 RD/RT 不同而互不冲突;共享服务通过额外 RT 受控引入

从图中可以看到,租户 A 与租户 B 虽然都使用 10.10.0.0/24,但由于 VRF、RD、RT 均不同,控制面与转发面完全隔离;共享服务则通过独立的 RT 被各租户按需导入,实现“隔离为主、共享受控”的模型。实际部署时,只要保证 RD 全网唯一、RT 按租户独立、命名与编号段可追溯,多租户 EVPN 业务就能在 MX 平台上稳定扩展。