2. Arista EOS与多租户基础

在 Arista 多租户网络中,EOS 是承载隔离与转发的基础操作系统。理解 EOS 的架构、租户概念以及 VRF 与 VLAN/VXLAN 的关系,是后续设计多租户拓扑和排障的前提。本节从 EOS 内部结构出发,逐步建立“租户—VRF—VLAN/VXLAN”的映射认知,并给出典型拓扑与业务需求判断方法。

一、EOS 架构:控制面与数据面的分层

Arista EOS 采用基于 Linux 的模块化架构,核心可划分为三层:内核与硬件抽象层、控制面协议栈、数据面转发引擎。内核层负责进程调度、内存管理和硬件驱动;控制面运行 BGP、OSPF、IS-IS、EVPN 等协议,负责路由计算与邻居建立;数据面则通过 Arista 自研的转发芯片(如 Jericho、Trident 系列)执行线速转发。EOS 的 SysDB 作为中央数据库,保存所有配置与运行状态,各进程通过 SysDB 读写状态,实现控制面与数据面的解耦。

这种架构对多租户的意义在于:每个 VRF 在控制面拥有独立的路由表实例,在数据面拥有独立的转发表项,互不干扰。EOS 支持在单台物理设备上创建多个 VRF,每个 VRF 可独立运行路由协议、独立配置接口和策略。例如,在 7280R 系列上,可同时运行 32 个以上 VRF,每个 VRF 的路由条目数受硬件表项限制,但逻辑上完全隔离。

二、租户概念:从业务视角到网络视角

“租户”在云网环境中通常指一个独立的业务单元或客户,拥有独立的地址空间、路由策略和安全边界。在网络层面,租户通过 VRF 实现三层隔离,通过 VLAN 或 VXLAN 实现二层隔离。一个租户可以对应一个 VRF,也可以对应多个 VRF(例如租户内部再划分生产、测试、管理域)。关键原则是:不同租户之间默认不可互访,除非显式配置路由泄漏或防火墙策略。

实际工程中,租户标识通常与 VRF 名称、Route Distinguisher(RD)、Route Target(RT)绑定。例如,租户 A 的 VRF 命名为 TENANT_A,RD 为 65000:100,RT 为 65000:100;租户 B 的 VRF 为 TENANT_B,RD 为 65000:200,RT 为 65000:200。这样在 EVPN 环境中,BGP 通过 RT 控制路由的导入导出,实现租户间路由的精确控制。

三、VRF 与 VLAN/VXLAN 的关系

VRF 是三层隔离单元,VLAN 是二层隔离单元,VXLAN 则是二层 over 三层的隧道封装技术。三者关系可概括为:VLAN 提供本地二层隔离,VXLAN 提供跨三层网络的二层扩展,VRF 提供三层路由隔离。在 Arista EOS 中,一个 VRF 可以包含多个 VLAN,每个 VLAN 对应一个 VXLAN VNI(VXLAN Network Identifier)。VNI 与 VLAN 的映射关系在 VTEP(VXLAN Tunnel End Point)上配置,通常为 1:1 映射,也可通过 VLAN 转换实现多对一。

例如,租户 A 的 VLAN 10 映射到 VNI 10010,VLAN 20 映射到 VNI 10020;租户 B 的 VLAN 10 映射到 VNI 20010。这样即使两个租户使用相同的 VLAN ID,由于 VNI 不同,二层流量完全隔离。在三层转发时,每个 VRF 拥有独立的路由表,VXLAN 封装后的流量根据 VRF 中的路由表进行转发,确保租户间路由不泄漏。

EOS 多租户隔离模型:租户 → VRF → VLAN/VXLAN 租户 A(TENANT_A) VRF: TENANT_A RD 65000:100 / RT 65000:100 VLAN 10 / 20 VNI 10010 / 10020 映射 三层路由表独立 · 二层广播域隔离 租户 A 内部 VLAN 间可路由,跨租户默认阻断 租户 B(TENANT_B) VRF: TENANT_B RD 65000:200 / RT 65000:200 VLAN 10 / 30 VNI 20010 / 20030 映射 三层路由表独立 · 二层广播域隔离 租户 B 内部 VLAN 间可路由,跨租户默认阻断 VXLAN Underlay(IP 网络 / BGP EVPN) VTEP 封装:VNI 10010 → 20010 隔离 · VNI 10020 → 20030 隔离 相同 VLAN ID 因 VNI 不同而完全隔离 隔离层次总结 VRF = 三层路由隔离(独立路由表) · VLAN = 本地二层隔离 · VXLAN = 跨站点二层隔离(VNI 标识) 租户间默认不可互访,需通过 RT 导入导出或路由泄漏显式放通

四、多租户网络典型拓扑与业务需求

典型的多租户数据中心网络采用 Spine-Leaf 架构,Leaf 作为 VTEP 和租户接入点,Spine 作为 Underlay 核心。每个租户在 Leaf 上拥有独立的 VRF 和 VLAN/VXLAN 映射。Underlay 通常运行 eBGP 或 OSPF 实现 IP 可达性,Overlay 运行 BGP EVPN 实现租户路由和 MAC 地址的传递。业务需求方面,常见要求包括:租户间二层隔离、三层隔离、租户内跨 Leaf 的二层扩展、租户内跨子网的三层互通、以及租户间受控互访(如共享服务区)。

以某金融云为例,租户 A 需要跨两个 Leaf 实现 VLAN 10 的二层扩展,同时租户 A 的 VLAN 10 与 VLAN 20 之间需要三层互通。配置时,在 Leaf1 和 Leaf2 上分别创建 VRF TENANT_A,配置 VLAN 10 映射 VNI 10010,VLAN 20 映射 VNI 10020,并在 VRF 内配置 VLAN 接口 IP 作为网关。BGP EVPN 通过 RT 65000:100 导入导出路由,确保两个 Leaf 上的租户 A 路由互通。验证时,可在 Leaf1 上执行 show vrf TENANT_A 查看 VRF 状态,执行 show vxlan vni 查看 VNI 映射,执行 show bgp evpn summary 查看 EVPN 邻居状态。若租户 A 的 PC 能 ping 通租户 A 另一子网的网关,且无法 ping 通租户 B 的地址,则隔离与互通均符合预期。

排障提示:若租户内跨 Leaf 二层不通,优先检查 VNI 映射是否一致、VTEP 地址是否可达、EVPN 路由是否成功导入。若租户间意外互通,检查 RT 是否配置错误或存在路由泄漏策略。

五、关键参数与配置示例

以下为 Leaf 上租户 A 的 VRF 与 VXLAN 配置片段(示例参数,非实测):

vrf instance TENANT_A
!
interface Vlan10
   vrf TENANT_A
   ip address 10.10.10.1/24
!
interface Vlan20
   vrf TENANT_A
   ip address 10.10.20.1/24
!
interface Vxlan1
   vxlan source-interface Loopback0
   vxlan vrf TENANT_A vni 10010
   vxlan vlan 10 vni 10010
   vxlan vlan 20 vni 10020
!
router bgp 65000
   vrf TENANT_A
      rd 65000:100
      route-target import evpn 65000:100
      route-target export evpn 65000:100
      neighbor 10.0.0.2 remote-as 65000
      neighbor 10.0.0.2 update-source Loopback0
      address-family evpn
         neighbor 10.0.0.2 activate

该配置中,vxlan vrf TENANT_A vni 10010 将 VRF 与 VNI 关联,vxlan vlan 10 vni 10010 将 VLAN 10 映射到 VNI 10010。BGP EVPN 通过 RT 65000:100 控制路由导入导出。实际部署时,需确保 Underlay 路由可达、Loopback0 地址互通、EVPN 邻居状态为 Established。

总结来说,EOS 多租户隔离的核心是“VRF 管三层、VLAN 管本地二层、VXLAN 管跨站点二层”,三者通过 VNI 和 RT 参数协同工作。掌握这一映射关系,就能在 Spine-Leaf 拓扑中灵活设计租户网络,并快速定位隔离或互通异常。