4. 多租户IP地址规划与VRF映射
在多租户数据中心里,IP地址规划与VRF映射是决定隔离能否真正落地的关键环节。很多工程师在完成VRF创建后,会默认“隔离已经完成”,但实际运行中经常出现租户A的终端拿到租户B网段地址、DHCP地址池串租户、跨VRF误转发等问题。这些问题的根源往往不在VRF本身,而在于地址空间规划与VRF、DHCP、网关资源的映射关系没有对齐。本节围绕租户地址空间重叠、VRF与IP池规划、Nexus DHCP与VRF关联,以及地址复用场景下的隔离验证展开。
一、租户地址空间重叠的本质与处理原则
多租户场景下,不同租户使用相同私有地址段是常态。例如租户A使用10.10.10.0/24,租户B也使用10.10.10.0/24。在传统单VRF网络中,这种重叠会直接导致路由冲突,无法共存。VRF的价值就在于把“相同的IP前缀”放入不同的路由表实例中,使10.10.10.0/24在VRF-A和VRF-B中各自独立存在、互不干扰。
需要明确的是:地址重叠不是问题,地址重叠后没有正确绑定到不同VRF才是问题。处理原则有三条:第一,重叠地址必须归属不同VRF,同一VRF内不允许出现相同前缀;第二,每个VRF必须拥有独立的网关地址、DHCP地址池和SVI接口;第三,跨VRF通信必须经过显式路由泄漏或防火墙策略,不能依赖默认行为。
二、VRF与IP池规划方法
规划时应先确定租户数量、每租户网段规模、是否需要地址复用,再分配VRF名称与RD/RT。建议采用“租户标识+功能”的命名方式,例如VRF-TENANT-A-PROD、VRF-TENANT-B-PROD,避免使用纯数字导致后期维护困难。RD建议使用自治系统号:租户编号,RT则按导入导出策略成对规划。
IP池规划要与VRF一一对应。每个VRF下的DHCP地址池只服务本VRF的SVI网段,池内排除网关、保留地址和网络地址。下面给出一个可直接参考的规划示例表:
| 租户 | VRF名称 | RD | SVI网段 | 网关 | DHCP池范围 |
|---|---|---|---|---|---|
| 租户A | VRF-TA-PROD | 65000:101 | 10.10.10.0/24 | 10.10.10.1 | 10.10.10.100–10.10.10.200 |
| 租户B | VRF-TB-PROD | 65000:102 | 10.10.10.0/24 | 10.10.10.1 | 10.10.10.100–10.10.10.200 |
| 租户C | VRF-TC-PROD | 65000:103 | 172.16.20.0/24 | 172.16.20.1 | 172.16.20.50–172.16.20.150 |
表中租户A与租户B使用了完全相同的网段和网关地址,这正是地址复用场景。它们之所以能共存,是因为分别绑定在VRF-TA-PROD和VRF-TB-PROD两个独立路由表中。租户C则使用不同网段,用于对比非重叠场景。
三、Nexus DHCP与VRF关联
在Nexus上配置DHCP时,关键点是让DHCP服务感知VRF。Nexus的DHCP地址池需要显式指定所属VRF,否则地址池会落在默认VRF中,导致租户终端无法获取正确地址。以下为租户A的DHCP配置示例:
feature dhcp
ip dhcp pool VRF-TA-POOL
vrf VRF-TA-PROD
network 10.10.10.0 255.255.255.0
default-router 10.10.10.1
dns-server 114.114.114.114
lease 0 8 0
address 10.10.10.100 10.10.10.200
interface Vlan101
no shutdown
vrf member VRF-TA-PROD
ip address 10.10.10.1/24
ip dhcp relay address 10.10.10.1
这里有两个容易出错的点。第一,ip dhcp pool下的vrf命令必须与SVI的vrf member一致,否则DHCP请求进入后无法匹配到正确地址池。第二,如果使用DHCP中继而非本地DHCP,中继接口也必须绑定VRF,且中继地址要指向该VRF内的DHCP服务器。租户B的配置与租户A结构相同,只是VRF名称和RD不同,但网段和池范围可以完全一致。
show ip dhcp binding vrf VRF-TA-PROD可以查看指定VRF的地址分配情况。如果输出为空,优先检查DHCP池的VRF绑定和SVI的VRF成员关系是否匹配。四、地址复用场景下的隔离验证
配置完成后,必须通过实际验证确认隔离生效。验证应覆盖三个层面:地址分配隔离、路由表隔离、转发路径隔离。
地址分配隔离验证:分别在租户A和租户B的终端上执行DHCP获取,确认两者都拿到10.10.10.100–10.10.10.200范围内的地址,且网关均为10.10.10.1。此时在Nexus上执行show ip dhcp binding vrf VRF-TA-PROD和show ip dhcp binding vrf VRF-TB-PROD,应看到各自独立的绑定表,互不串扰。
路由表隔离验证:执行show ip route vrf VRF-TA-PROD和show ip route vrf VRF-TB-PROD,两者都应包含10.10.10.0/24直连路由,但彼此不可见。如果在一个VRF中看到另一个VRF的路由,说明路由泄漏配置有误或接口VRF绑定错误。
转发路径隔离验证:从租户A终端ping租户B终端地址10.10.10.100,预期结果为不通。如果通,说明两个VRF之间存在意外互通,需检查是否有全局路由、静态泄漏或ACL放行。反向从租户B ping租户A同样应不通。租户C由于使用不同网段,与租户A、B之间默认也不通,除非显式配置泄漏。
验证时建议按“先分配、再路由、后转发”的顺序推进。如果地址分配阶段就出现串池,后续路由和转发验证没有意义。如果地址分配正常但路由表出现交叉,重点检查vrf member是否漏配或误配。如果路由表正常但转发仍通,则检查是否存在全局VRF的静态路由或ACL放行。
最后,建议把每个租户的VRF、RD、SVI、DHCP池、验证命令整理成一张运维对照表,纳入变更管理。地址复用不是临时技巧,而是多租户网络的常态设计,只有把规划、配置、验证三个环节都绑定到VRF维度,隔离才是可证明、可维护的。