3. Nexus VRF基础配置实战

在 Nexus 上做多租户隔离,VRF 是最核心的“路由表容器”。一个 VRF 本质上是一张独立的路由表(RIB)和转发表(FIB),加上一组只属于它的接口、路由协议实例和路由目标。理解 VRF 的关键,不是记住命令,而是理解“接口进 VRF → 路由进 VRF 表 → 表之间靠 RD/RT 区分与互通”这条主线。本节以两台 Nexus 之间承载两个租户(TENANT-A、TENANT-B)为例,完整走一遍创建、分配、加入、验证的过程。

一、创建 VRF 并分配 RD 与 RT

在 NX-OS 中,VRF 通过 vrf context 创建。RD(Route Distinguisher)的作用是让不同 VRF 中相同的 IPv4 前缀在 MP-BGP 中变成唯一前缀,格式为 ASN:nn 或 IP:nn;RT(Route Target)则决定路由的导入导出关系,分为 import 和 export 两个方向。RD 只影响唯一性,RT 才决定“谁能收到谁的路由”,这是最容易混淆的一点。

vrf context TENANT-A
  rd 65000:100
  address-family ipv4 unicast
    route-target import 65000:100
    route-target export 65000:100

vrf context TENANT-B
  rd 65000:200
  address-family ipv4 unicast
    route-target import 65000:200
    route-target export 65000:200

这里两个租户使用不同的 RT,因此彼此路由不会互相导入,形成天然隔离。若希望 TENANT-A 与共享服务 VRF 互通,可让共享服务 VRF 的 export RT 等于 TENANT-A 的 import RT,实现单向或双向的受控互通。示例中 65000 为本地 AS,100/200 为区分租户的编号,属于教学假设参数。

二、接口加入 VRF

接口加入 VRF 有两种常见方式:三层接口直接绑定,或 SVI 绑定。绑定后该接口的直连网段、ARP、路由都只存在于对应 VRF 中。注意:接口一旦加入 VRF,其 IP 地址必须重新配置在该 VRF 上下文下,否则不会生效。

interface Ethernet1/1
  no switchport
  vrf member TENANT-A
  ip address 10.10.1.1/24

interface Vlan100
  vrf member TENANT-B
  ip address 10.20.1.1/24

此时 Ethernet1/1 的直连路由只出现在 TENANT-A 的路由表中,Vlan100 的直连路由只出现在 TENANT-B 中。默认 VRF(default)看不到它们,这正是隔离的体现。

三、验证路由表隔离

验证的核心命令是 show ip route vrf <name> 与 show ip route。前者查看指定 VRF,后者只看默认 VRF。若在默认 VRF 中看不到 10.10.1.0/24,而在 TENANT-A 中能看到,说明接口与路由已正确归入 VRF。

show ip route vrf TENANT-A
show ip route vrf TENANT-B
show ip route
show vrf
show ip interface vrf TENANT-A brief

判断依据:show vrf 应列出两个 VRF 及其 RD;show ip interface vrf TENANT-A brief 应只显示属于该 VRF 的接口;默认 VRF 路由表中不应出现租户网段。若出现,通常是接口未绑定 VRF 或 IP 配在了默认 VRF 下。

四、静态路由与直连路由在 VRF 中的行为

直连路由是接口加入 VRF 后自动生成的,属于该 VRF 的“本地路由”,优先级最高,不会泄漏到其他 VRF。静态路由则必须显式指定 VRF,否则会进入默认 VRF。例如在 TENANT-A 中指向远端租户网段:

ip route 10.10.2.0/24 10.10.1.2 vrf TENANT-A

这条路由只写入 TENANT-A 的 RIB。若写成 ip route 10.10.2.0/24 10.10.1.2,则会进入默认 VRF,导致租户流量无法命中。静态路由的下一跳必须与出接口同属一个 VRF,否则递归查找失败,路由不会安装。直连路由与静态路由在 VRF 内共存时,直连优先;静态路由之间按管理距离(默认 1)和度量比较。

Nexus VRF 路由表隔离与 RD/RT 关系示意 Nexus 9000(单台设备内多 VRF) VRF: TENANT-A RD 65000:100 | RT 65000:100 接口 Eth1/1(vrf member TENANT-A) IP 10.10.1.1/24 TENANT-A 路由表(RIB) C 10.10.1.0/24 直连 S 10.10.2.0/24 → 10.10.1.2 静态路由必须带 vrf 关键字 ip route ... vrf TENANT-A VRF: TENANT-B RD 65000:200 | RT 65000:200 接口 Vlan100(vrf member TENANT-B) IP 10.20.1.1/24 TENANT-B 路由表(RIB) C 10.20.1.0/24 直连 S 10.20.2.0/24 → 10.20.1.2 RT 不同 → 路由不互相导入 默认 VRF 中看不到租户网段 VRF 边界:路由表、接口、ARP 完全隔离 默认 VRF(default) 仅含全局路由,不含 10.10.x / 10.20.x

五、常见排障要点

第一,接口加入 VRF 后原 IP 会失效,必须重新配置;第二,静态路由漏写 vrf 关键字是最常见错误;第三,show ip route vrf all 可一次性对比所有 VRF 的路由表,便于确认隔离是否生效;第四,若使用 BGP 承载 VRF 路由,需在 router bgp 下为每个 VRF 配置 address-family ipv4 unicast 并关联对应 RD/RT,否则 RT 不生效。掌握以上四点,VRF 的基础配置与验证即可稳定落地。