第10篇:三层交换机 VLANIF 接口实战配置
一、写在前面
前文提到,单臂路由有链路瓶颈和单点故障的问题。那有没有更好的方案?
三层交换机 + VLANIF 接口就是目前最主流的跨 VLAN 通信方案。
三层交换机既有二层交换的线速转发能力,又有三层路由功能。VLANIF 接口是三层交换机上的虚拟三层接口,每个 VLAN 对应一个,作为该 VLAN 内主机的网关。
一句话:VLANIF 把 VLAN 和三层路由无缝地结合在了一起。
二、VLANIF 接口是什么?
2.1 概念
VLANIF 接口是三层交换机上为某个 VLAN 创建的 逻辑三层接口。
VLAN 10 ── VLANIF 10 (IP: 10.0.10.254/24) ← VLAN 10 的网关
VLAN 20 ── VLANIF 20 (IP: 10.0.20.254/24) ← VLAN 20 的网关
- 在二层交换机上,VLAN 只是一个广播域
- 在三层交换机上,VLANIF 把 VLAN "升格"为一个三层网段
2.2 VLANIF 的特点
| 特点 | 说明 |
|---|---|
| 虚拟接口 | 不需要物理端口,只存在于交换机软件中 |
| 对应一个 VLAN | VLANIF 10 绑定 VLAN 10 |
| 配置 IP 地址 | 作为该 VLAN 的网关 |
| 支持路由协议 | OSPF、BGP、静态路由等都能用 |
| 不独占物理端口 | 所有属于该 VLAN 的端口都能到达它 |
三、配置实战
3.1 拓扑
三层交换机(L3 Switch)
VLANIF 10: 10.0.10.254 VLANIF 20: 10.0.20.254 VLANIF 30: 10.0.30.254 G0/0/1 G0/0/2 G0/0/3 │ │ │ PC-A PC-B PC-C VLAN10 VLAN20 VLAN30 10.0.10.1 10.0.20.1 10.0.30.1 /24 /24 /24 GW: .254 GW: .254 GW: .254
目标:三个 VLAN 之间可以互相通信。
3.2 配置步骤
第一步:创建 VLAN
<Switch> system-view
[Switch] sysname L3-Switch
[L3-Switch] vlan batch 10 20 30
第二步:配置 Access 端口
# 端口接 PC-A
[L3-Switch] interface gigabitethernet 0/0/1
[L3-Switch-GigabitEthernet0/0/1] port link-type access
[L3-Switch-GigabitEthernet0/0/1] port default vlan 10
[L3-Switch-GigabitEthernet0/0/1] quit
# 端口接 PC-B
[L3-Switch] interface gigabitethernet 0/0/2
[L3-Switch-GigabitEthernet0/0/2] port link-type access
[L3-Switch-GigabitEthernet0/0/2] port default vlan 20
[L3-Switch-GigabitEthernet0/0/2] quit
# 端口接 PC-C
[L3-Switch] interface gigabitethernet 0/0/3
[L3-Switch-GigabitEthernet0/0/3] port link-type access
[L3-Switch-GigabitEthernet0/0/3] port default vlan 30
[L3-Switch-GigabitEthernet0/0/3] quit
第三步:创建 VLANIF 接口(关键!)
# 创建 VLANIF 10
[L3-Switch] interface vlanif 10
[L3-Switch-Vlanif10] ip address 10.0.10.254 255.255.255.0
[L3-Switch-Vlanif10] quit
# 创建 VLANIF 20
[L3-Switch] interface vlanif 20
[L3-Switch-Vlanif20] ip address 10.0.20.254 255.255.255.0
[L3-Switch-Vlanif20] quit
# 创建 VLANIF 30
[L3-Switch] interface vlanif 30
[L3-Switch-Vlanif30] ip address 10.0.30.254 255.255.255.0
[L3-Switch-Vlanif30] quit
看到这里你会发现:只需要配 6 行命令(每个 VLAN 两行),就实现了跨 VLAN 三层互通。 比单臂路由简单太多了。
3.3 验证
# 查看 VLANIF 接口状态
[L3-Switch] display ip interface brief
Interface IP Address/Mask Physical Protocol
Vlanif10 10.0.10.254/24 up up
Vlanif20 10.0.20.254/24 up up
Vlanif30 10.0.30.254/24 up up
# 查看路由表(VLANIF 接口直连路由自动加入)
[L3-Switch] display ip routing-table
Destination/Mask Proto Pre Cost NextHop Interface
10.0.10.0/24 Direct 0 0 10.0.10.254 Vlanif10
10.0.20.0/24 Direct 0 0 10.0.20.254 Vlanif20
10.0.30.0/24 Direct 0 0 10.0.30.254 Vlanif30
以上三条路由是 VLANIF 接口创建后自动生成的直连路由。
3.4 测试
# 在 PC-A 上 ping PC-B(跨 VLAN)
C:\> ping 10.0.20.1
Reply from 10.0.20.1: bytes=32 time<1ms TTL=127 ← 通!
# 在 PC-A 上 ping PC-C
C:\> ping 10.0.30.1
Reply from 10.0.30.1: bytes=32 time<1ms TTL=127 ← 通!
四、通信流程详解
PC-A(VLAN 10, 10.0.10.1)→ PC-B(VLAN 20, 10.0.20.1):
1. PC-A 发现目标不在同一网段
→ 查 ARP 缓存找网关 10.0.10.254(VLANIF 10 的 IP)
2. 交换机处理 ARP 请求
交换机收到 ARP 广播(源=PC-A,目标=10.0.10.254)
VLANIF 10 发现目标 IP 是自己的,回复 ARP Reply
3. PC-A 发送 ICMP Echo Request
目标 MAC = VLANIF 10 的 MAC
交换机从 G0/0/1 收到(VLAN 10)
4. 交换机内部处理
查路由表:10.0.20.0/24 → Vlanif20
将帧的源 MAC 改为 VLANIF 20 的 MAC
将帧的目的 MAC 改为 PC-B 的 MAC
从 VLAN 20 的端口转发出去
5. PC-B 收到,处理并回复
6. 回程同理
与单臂路由的关键区别:
| 对比项 | 单臂路由 | VLANIF |
|---|---|---|
| 流量路径 | 经过外部路由器的物理链路 | 交换机内部硬件转发 |
| 瓶颈 | 路由器物理链路带宽有限 | 交换机背板带宽几乎无限 |
| 延迟 | 高(经外部路由器) | 极低(硬件转发) |
| 故障点 | 路由器挂了全部垮 | 交换机本身可靠 |
| 配置复杂度 | 子接口 + Trunk 配置 | VLANIF + Access 端口 |
五、VLANIF 的高阶操作
5.1 配置 DHCP 中继
VLANIF 接口常用于 DHCP 中继部署:
[L3-Switch] interface vlanif 10
[L3-Switch-Vlanif10] dhcp select relay
[L3-Switch-Vlanif10] dhcp relay server-ip 192.168.100.10
VLAN 10 内的 DHCP 请求通过 VLANIF 中继到远端 DHCP 服务器。
5.2 VLANIF 配置 VRRP
[L3-Switch] interface vlanif 10
[L3-Switch-Vlanif10] vrrp vrid 1 virtual-ip 10.0.10.254
[L3-Switch-Vlanif10] vrrp vrid 1 priority 120
主备两台三层交换机通过 VRRP 提供网关冗余。
5.3 VLANIF 与 ACL 结合
# 限制 VLAN 10 不能访问 VLAN 30
[L3-Switch] acl 3000
[L3-Switch-acl-adv-3000] rule 10 deny ip source 10.0.10.0 0.0.0.255 destination 10.0.30.0 0.0.0.255
[L3-Switch-acl-adv-3000] rule 20 permit ip
[L3-Switch] traffic-filter inbound acl 3000
[L3-Switch-Vlanif10] traffic-filter inbound acl 3000
5.4 VLANIF 与 NQA 链路检测
[L3-Switch] nqa test-instance admin vlan10_check
[L3-Switch-nqa-admin-vlan10_check] test-type icmp
[L3-Switch-nqa-admin-vlan10_check] destination-address ipv4 10.0.10.1
[L3-Switch-nqa-admin-vlan10_check] frequency 10
[L3-Switch-nqa-admin-vlan10_check] start now
六、重要注意事项
6.1 VLANIF 接口 up/down 条件
VLANIF 接口的物理状态取决于该 VLAN 内是否有活跃的物理端口:
VLAN 10 没有任何端口 → Vlanif10 状态为 down
VLAN 10 有至少一个端口 up → Vlanif10 状态为 up
如果接 PC 的端口没插线或 shutdown,VLANIF 10 会 down,网关不可达。
强制开启(不推荐在日常使用):
[L3-Switch-Vlanif10] undo shutdown
注意:部分交换机版本支持,但空 VLAN 配了 undo shutdown 后也能 ping 通。
6.2 VLAN 必须已创建
如果 VLAN 10 没有被创建,配置 interface vlanif 10 会失败。
[L3-Switch] vlan 10 ← 先创建 VLAN
[L3-Switch] interface vlanif 10 ← 再创建三层接口
6.3 三层交换机的转发模式
三层交换机在两个 VLAN 间转发时,采用 一次路由、多次交换 的机制:
- 第一个包:CPU 处理,查路由表,把 MAC 地址等结果写入硬件转发表(FIB)
- 后续所有包:硬件 ASIC 芯片直接转发,完全不经过 CPU
这就是三层交换机性能远高于普通路由器的原因。
七、对比:三种跨 VLAN 方案
| 方案 | 设备需求 | 配置复杂度 | 性能 | 扩展性 | 适用场景 |
|---|---|---|---|---|---|
| 路由器物理接口 | 路由器 | 简单 | 低(端口有限) | 差 | 极少 VLAN |
| 单臂路由(子接口) | 路由器+二层交换机 | 中等 | 中(受限于单链路) | 中 | 中小型网络 |
| VLANIF(三层交换机) | 三层交换机 | 简单 | 高(硬件转发) | 好 | 绝大多数场景 |
八、思考
- 在三层交换机上创建了 VLANIF 10 并配了 IP,但为什么接口状态是 down?
- 单臂路由和 VLANIF 两种方案的性能差距来自哪里?
- 配置 VLANIF 接口 IP 后,路由表自动出现了该网段的直连路由。如果 VLAN 10 没有物理端口,这条路由还会存在吗?
- 三层交换机的"一次路由多次交换"是什么意思?
- 一台三层交换机上有 VLAN 10~50,所有 VLAN 之间都要互通,配了 40 个 VLANIF 后,路由表里会出现多少条直连路由?CPU 会因此变高吗?
- VLANIF 接口能不能配置 OSPF?能不能配置 ACL?能不能做 DHCP 中继?
下篇预告:第11篇《华为交换机VLAN创建与Access_Trunk_Hybrid端口配置》——学习华为交换机VLAN创建和端口类型配置的完整操作。