华为H3C实战 | 第6章 三层接口与网关
📚 本系列共 43 篇(第 6 / 43 篇) · 第一卷 基础篇 —— 交换机的骨架
← 上一篇:第 5 章 链路聚合与堆叠 下一篇:第 7 章 VRRP 网关冗余 →
本章导读:VLAN 把大广播域切成小块,切完新问题来了:财务的电脑怎么访问研发的服务器?三层接口就是那部"跨楼层电梯"。本章讲清四种三层接口形态,以及为什么"网关 ping 得通、下面电脑却上不了网"。
本章结构:
- 6.1 功能原理与业务场景 —— “网关"的三种身份、四种三层接口形态对比、单臂路由与 VLANIF 的取舍
- 6.2 华为设备配置详解 ——
interface Vlanif 10的 up/down 取决于 VLAN 内有没有 up 成员口、三层物理口切完要undo shutdown、子接口漏了arp broadcast enable的症状、ARP 表与代理 ARP - 6.3 H3C 设备配置详解 ——
interface Vlan-interface 10、port link-mode route、arp timer aging、proxy-arp enable(词序和华为正好相反) - 6.4 命令对照表 —— Vlanif/Vlan-interface、
dot1q termination vidvsvlan-type dot1q vid - 6.5 配置验证 ——
display ip interface brief、display arp表项四要素怎么看 - 6.6 排错与故障树 —— 本章最好用的一节:五问法(IP 在哪个口→VLAN 有活口吗→直连路由在吗→ARP 学到吗→终端网关指对了吗)
- 6.7 新手踩坑 —— 没建 VLAN 就建 VLANIF、子接口漏 ARP 广播
- 6.8 本章小结 —— 要点清单 + 自测题
重点提示:网关 ping 不通,先查 VLAN 里有没有 up 的成员口(VLANIF 会跟着 down)——这是 6.6 五问法的第 2 问,命中率最高。跨网段不通而网关本身正常,跳到第 3、4 问查路由和 ARP,别在终端上折腾。 关联章节:前置的 VLAN 划分见第 3 章;两台设备同时做网关、避免单点故障见第 7 章;VLAN 间互访的访问控制见第 17 章;三层路由怎么走见第 10 章。
6.1 功能原理与业务场景
6.1.1 这功能是干嘛的(通俗版)
第 3 章说过,VLAN 把一个大广播域切成了几个独立的小广播域,好处是限制故障半径、提升安全性。但切完之后新问题来了:财务部的电脑要给研发部的服务器传文件,怎么传?
三层接口就是解决这个问题的「跨楼层电梯」。二层交换只能在同一个 VLAN 内按 MAC 地址转发,相当于只能在同一层楼里走动;要跨 VLAN、跨网段,就必须上升到三层(网络层),用 IP 地址做路由决策。而交换机上的三层接口,就是「二层世界通往三层世界的入口」。
日常生活里最贴近的比喻是小区门禁与快递柜:同一栋楼的邻居互相串门(同 VLAN 二层互通)不用经过任何人;但一个快递从 A 栋送到 B 栋,就必须经过小区的快递柜中转——快递柜就是网关,它知道每个包裹该放到哪个楼的柜子。三层接口就是交换机上的那个快递柜。
对初学者来说,最容易混淆的是「网关」这个概念的三个身份:它既是终端配置里的「默认网关地址」,又是设备上的「一个三层接口的 IP」,还是「跨网段流量的第一跳」。这三者是同一件事的三个视角。
6.1.2 在网络里怎么落地(设计视角)
三层接口有四种常见形态,它们的目的都是「让一个 VLAN 或一段链路获得三层能力」:
形态一:VLANIF(SVI)。这是三层交换机最核心的接口形态。为每个 VLAN 建一个虚拟的三层接口 Vlanif 10,配上网关地址。VLAN 内所有终端把网关指向这个地址,交换机内部用硬件完成 VLAN 间的路由。它的特殊之处在于:VLANIF 的状态由 VLAN 内成员口的状态决定——如果这个 VLAN 里没有任何一个成员口是 up 的,VLANIF 就会 down,网关地址就不生效。这是本章最重要的一个知识点。
形态二:三层物理口。把某个物理口切成三层口(路由口),直接配 IP。用在点对点互联上,比如交换机接路由器、两台交换机之间做三层互联。省掉了「建 VLAN」这一步。
形态三:子接口。一个物理口上通过 802.1Q 标签划分出多个逻辑子接口,每个子接口对应一个 VLAN。这就是「单臂路由」的实现方式,第 3 章提过。
形态四:聚合口上的 VLANIF。聚合口承载多个 VLAN,再在这些 VLAN 上建 VLANIF——这是汇聚到核心最常用的形态。
四种形态在数据面上的差别,可以用一张决策图说清:
┌─────────────────────────┐
│ 这个口接的是什么? │
└───────────┬─────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
接终端(PC/AP) 接交换机/路由器 接路由器(单线多VLAN)
│ │ │
v v v
二层口 + VLAN 三层物理口(路由口) 子接口(单臂路由)
│ │ │
v v v
VLANIF 做网关 直接配 IP 互指 每个子接口一个网关
(最常用) (点对点互联) (小型网/过渡)
再从数据流看一次完整的「跨 VLAN 访问」:
PC1(192.168.10.10/24, 网关 192.168.10.1)
│ 要访问 192.168.20.20,发现目的不在本网段
│ → 查 ARP 表,找网关 MAC,没有就发 ARP 请求「谁是 192.168.10.1」
v
[交换机] VLANIF 10 收到 ARP 请求,回应自己的 MAC
│
v
PC1 把包发给「网关 MAC」,IP 头目的地址仍是 192.168.20.20
│
v
[交换机] 三层转发引擎:查路由表,192.168.20.0/24 是直连(VLANIF 20)
│ → 查 ARP 表找 192.168.20.20 的 MAC,没有就发 ARP
│ → 打上 VLAN 20 的标签,从 VLAN 20 对应的口发出去
v
PC2 收到包
这个过程中有两个关键点:终端只认网关 MAC,不认目的 MAC(所以网关必须回应 ARP);交换机做 VLAN 间转发不需要终端知道另一侧的 MAC(这是三层转发的本质区别)。
适用版本:华为 VRP V200R019 及以上、H3C Comware V7(R2610 及以上)。
undo portswitch的型号支持差异、arp-proxy的参数、VLANIF 的缺省行为(部分版本 VLANIF 需要在 VLAN 内有 up 成员口才 up)请以型号手册为准。
6.2 华为设备配置详解
6.2.1 命令行基础速览(本章会用到的那几条)
| 命令 | 在哪敲 | 干什么 |
|---|---|---|
interface Vlanif 10 |
系统视图 | 创建三层 VLAN 接口 |
ip address 192.168.10.1 24 |
Vlanif 视图 | 配网关地址 |
undo portswitch |
物理口视图 | 切成三层口(视型号) |
arp static IP MAC |
系统视图 | 配静态 ARP |
arp expire-time 1200 |
系统视图 | ARP 老化时间(秒) |
arp-proxy enable |
接口视图 | 开启 ARP 代理 |
display ip interface brief |
任意视图 | 看三层接口与 IP |
display arp |
任意视图 | 看 ARP 表 |
display ip routing-table |
任意视图 | 看路由表 |
6.2.2 完整配置模板
一个三层核心交换机做 VLAN 网关的完整配置:
# 华为三层核心交换机
system-view
sysname CORE-SW1
# 建业务 VLAN
vlan batch 10 20 30 99
vlan 10
description FINANCE
quit
vlan 20
description RND
quit
vlan 30
description IOT
quit
vlan 99
description MGMT
quit
# 给每个 VLAN 建 VLANIF 并配网关
interface Vlanif 10
description GW-FINANCE
ip address 192.168.10.1 255.255.255.0
quit
interface Vlanif 20
description GW-RND
ip address 192.168.20.1 255.255.255.0
quit
interface Vlanif 30
description GW-IOT
ip address 192.168.30.1 255.255.255.0
quit
interface Vlanif 99
description GW-MGMT
ip address 10.200.99.1 255.255.255.0
quit
# 上联路由器的三层物理口
interface GigabitEthernet0/0/23
description TO-ROUTER-GE0/0/0
undo portswitch
ip address 172.16.0.2 255.255.255.252
quit
# 不配静态路由(缺省路由指向路由器,让内网能上外网)
ip route-static 0.0.0.0 0.0.0.0 172.16.0.1
# ARP 老化时间调小(默认 1200 秒,办公网可调到 300 秒加快回收)
arp expire-time 300
# 关键服务器用静态 ARP,避免 ARP 学习延迟与欺骗
arp static 192.168.10.10 00e0-fc12-3456
quit
save
单臂路由(子接口)的配置:
# 华为:在物理口上创建子接口实现单臂路由
interface GigabitEthernet0/0/1
description TO-SW-TRUNK
quit
# 子接口 .10,对应 VLAN 10
interface GigabitEthernet0/0/1.10
dot1q termination vid 10
ip address 192.168.10.1 255.255.255.0
# 子接口必须开启 ARP 广播,否则终端 ARP 不通
arp broadcast enable
quit
# 子接口 .20,对应 VLAN 20
interface GigabitEthernet0/0/1.20
dot1q termination vid 20
ip address 192.168.20.1 255.255.255.0
arp broadcast enable
quit
quit
save
6.2.3 逐行讲解
interface Vlanif 10 与 ip address:这是本章最核心的两条命令。VLAN 本身是二层概念(一个广播域),VLANIF 是它的三层人格(一个可配 IP 的虚拟接口)。创建 VLANIF 时必须对应一个已存在的 VLAN,如果 VLAN 10 不存在,创建 VLANIF 10 时会自动创建 VLAN 10(不同版本行为可能不同,稳妥做法是先建 VLAN)。
| 命令 | 作用 | 新手常错 |
|---|---|---|
interface Vlanif 10 |
建三层接口 | VLAN 没建/没成员口 up 时接口 down |
ip address 192.168.10.1 24 |
配网关 | 掩码写成 24 或 255.255.255.0 都可以,但不能写成 /24(带斜杠会被当成非法参数) |
undo portswitch |
切三层口 | 型号不支持;切完接口自动 shutdown 需重开 |
ip route-static 0.0.0.0 0.0.0.0 X |
默认路由 | 下一跳写成对端口地址本身 |
arp expire-time 300 |
ARP 老化 | 单位是秒,设太短会频繁 ARP |
arp static IP MAC |
静态 ARP | 缺 vlan 参数时部分版本不生效,按提示补 |
dot1q termination vid 10 |
子接口终结 VLAN 10 | 漏了 arp broadcast enable,ARP 不通 |
arp broadcast enable |
子接口发 ARP 广播 | 子接口必备,最容易被漏 |
这里要重点讲 VLANIF 状态异常,因为这是实际工作中最高频的「配了网关但不生效」的原因。
VLANIF 的状态(up/down)由以下规则决定:
- VLAN 必须存在(否则 VLANIF 无法创建或保持 down)。
- VLAN 内至少有一个成员口是 up 的(access 口、trunk 口都可以,但必须是物理 up + 协议 up)。
- VLANIF 本身没被 shutdown(
display interface Vlanif 10会显示Administratively Down)。
这三条里第 2 条最容易被忽略。典型场景:你在一台核心上配了 Vlanif 30(给 IoT 设备用的),但 IoT 的接入交换机还没上电,VLAN 30 里没有任何 up 的口 → Vlanif 30 是 down 的 → 网关不生效 → 即使后来接入了设备,也可能因为 ARP 表需要重新学习而短暂不通。这个现象让很多人以为是「网关配错了」,实际上是「VLAN 里没活口」。
解决办法有两个:
办法一:在 VLAN 里有意识地留一个「常驻 up 的成员口」,比如把上联 trunk 口划进这个 VLAN(这在树形网络里天然成立)。
办法二:部分型号支持通过 vlan 的特定配置或全局命令调整 VLANIF 的 up/down 判定条件,让 VLANIF 不受成员口状态影响——但这类特性各型号支持情况不一,主流做法仍然是确保 VLAN 内有 up 的口。不区分成员口状态、始终生效的需求,在工程上一般改用独立的带外管理口或三层物理口来满足。
# 排查 VLANIF 状态
<HUAWEI> display interface Vlanif 10
# 关注这三行:
# Vlanif10 current state : UP / DOWN
# Line protocol current state : UP / DOWN
# ip address ...
这里 current state : DOWN 和 Line protocol current state : DOWN 同时出现,几乎一定是「VLAN 内没有 up 的成员口」。
关于三层物理口:undo portswitch 把二层口变成三层口后,接口上之前配的 VLAN 属性(port link-type、port default vlan)全部失效,需要重新配 IP。切换后接口可能自动 shutdown,记得 undo shutdown。
关于子接口:单臂路由的实现细节里有两个坑。第一,dot1q termination vid 10 这条命令告诉子接口「处理 VLAN 10 的标签」,收到带 VLAN 10 标签的帧就终结掉标签交给三层处理。第二,arp broadcast enable 让子接口能发 ARP 广播——这一条最容易漏,漏了之后现象是「终端能 ping 通网关但访问不了其他网段」(因为网关回 ARP 应答失败或 ARP 学习不全)。子接口还有个隐藏限制:物理口必须是二层口,且对端交换机必须用 trunk 放行对应的 VLAN。
关于 ARP:ARP 表是三层转发的地图。display arp 输出里的每个表项包含 IP、MAC、VLAN、接口、类型(动态/静态)。几个关键点:
- 动态 ARP:靠 ARP 请求/应答学习,华为缺省老化 1200 秒(即 20 分钟)、H3C 缺省 20 分钟,到期后重新学习。
- 静态 ARP:手工绑定 IP 与 MAC,永不老化,用于服务器、路由器和防欺骗。
- ARP 代理(arp-proxy):让一台设备替别的网段回应 ARP,实现「跨越不同网段的二层感觉」。配置在接口上,开启后该接口会对不属于自己网段的 ARP 请求做出「自己的 MAC」的应答。典型用途是把 VLAN 的网关分布到不同设备、或者打通某些特殊的隔离需求。
两家命令名不同,别抄错:华为是 arp-proxy enable(配在 VLANIF 等三层接口视图下),H3C 是 proxy-arp enable(词序相反,也配在三层接口视图下,缺省关闭)。H3C 另外还有 local-proxy-arp enable 用于「主机接在同一三层接口、但不在同一广播域」的本地代理场景。华为侧做 VLAN 聚合(Super-VLAN)时还有 arp-proxy inter-sub-vlan-proxy enable 这类子 VLAN 代理变体。
6.3 H3C 设备配置详解
6.3.1 命令行基础速览
| 命令 | 在哪敲 | 干什么 |
|---|---|---|
interface Vlan-interface 10 |
系统视图 | 创建三层 VLAN 接口(注意有连字符) |
ip address 192.168.10.1 24 |
Vlan 接口视图 | 配网关 |
port link-mode route |
物理口视图 | 切三层口(全系支持) |
arp static IP MAC |
系统视图 | 静态 ARP |
arp timer aging 300 |
系统视图 | ARP 老化时间 |
proxy-arp enable |
接口视图 | 开启代理 ARP |
interface GigabitEthernet1/0/1.10 |
系统视图 | 创建子接口 |
vlan-type dot1q vid 10 |
子接口视图 | 子接口终结 VLAN |
display ip interface brief |
任意视图 | 三层接口一览 |
display arp |
任意视图 | ARP 表 |
6.3.2 完整配置模板
同样的三层网关组网,H3C 侧的完整配置如下:
# H3C 三层核心交换机
system-view
sysname CORE-SW1
vlan 10
name FINANCE
quit
vlan 20
name RND
quit
vlan 30
name IOT
quit
vlan 99
name MGMT
quit
# VLAN 三层接口(注意 Vlan-interface 带连字符)
interface Vlan-interface 10
description GW-FINANCE
ip address 192.168.10.1 255.255.255.0
quit
interface Vlan-interface 20
description GW-RND
ip address 192.168.20.1 255.255.255.0
quit
interface Vlan-interface 30
description GW-IOT
ip address 192.168.30.1 255.255.255.0
quit
interface Vlan-interface 99
description GW-MGMT
ip address 10.200.99.1 255.255.255.0
quit
# 上联路由器的三层物理口(全系支持,无型号限制)
interface GigabitEthernet1/0/23
description TO-ROUTER-GE0/0/0
port link-mode route
ip address 172.16.0.2 255.255.255.252
undo shutdown
quit
# 默认路由
ip route-static 0.0.0.0 0 172.16.0.1
# ARP 老化
arp timer aging 300
# 静态 ARP
arp static 192.168.10.10 00e0-fc12-3456
quit
save force
单臂路由:
# H3C:子接口方式
interface GigabitEthernet1/0/1.10
description SUB-VLAN10
vlan-type dot1q vid 10
ip address 192.168.10.1 255.255.255.0
quit
interface GigabitEthernet1/0/1.20
description SUB-VLAN20
vlan-type dot1q vid 20
ip address 192.168.20.1 255.255.255.0
quit
6.3.3 逐行讲解
| H3C 命令 | 对应华为 | 差异要点 |
|---|---|---|
interface Vlan-interface 10 |
interface Vlanif 10 |
名字完全不同,H3C 带连字符 |
ip address 192.168.10.1 255.255.255.0 |
相同 | 相同 |
port link-mode route |
undo portswitch |
H3C 全系支持,无型号限制 |
arp timer aging 300 |
arp expire-time 300 |
名字不同 |
arp static IP MAC |
arp static IP MAC |
相同 |
proxy-arp enable |
arp-proxy enable |
词序相反 |
vlan-type dot1q vid 10 |
dot1q termination vid 10 |
名称不同 |
vlan-termination broadcast enable(仅模糊终结时) |
arp broadcast enable(必配) |
H3C 精确终结不用配;华为侧无论哪种都要配。触发条件不同 |
display ip interface brief |
相同 | 输出格式略有差别 |
H3C 子接口这边没有 arp broadcast enable 这条命令,但有对应的广播开关,名字叫 vlan-termination broadcast enable,而且只在「模糊 Dot1q 终结」时才需要配:
| 场景 | 是否需要额外命令 |
|---|---|
精确终结(vlan-type dot1q vid 10 指定单个 VID) |
不需要,子接口可正常收发广播 |
模糊终结(vlan-type dot1q vid 11 to 13 这类范围) |
必须加 vlan-termination broadcast enable,否则该接口不允许发送广播/组播报文 |
官方原文的表述是「缺省情况下,当前接口配置了模糊的 Dot1q 终结或者模糊的 QinQ 终结功能后,不允许发送广播报文,只有配置了 VLAN 终结支持广播功能,这些接口才能发送广播报文」。这一条对单臂路由影响很大——如果你的子接口用了范围写法又没开这个开关,终端 ARP 必然失败,现象和华为「漏配 arp broadcast enable」一模一样。
# H3C:模糊 Dot1q 终结时必须显式允许发广播
interface GigabitEthernet1/0/1.10
vlan-type dot1q vid 11 to 13
ip address 192.168.10.1 255.255.255.0
vlan-termination broadcast enable
quit
⚠ 两家差异一句话总结:华为子接口一律要 arp broadcast enable(终结子接口的 ARP 广播功能);H3C 子接口只有模糊终结才要 vlan-termination broadcast enable。抄配置时别把两家的命令互相搬。
H3C 的 VLAN 接口状态规则同样受 VLAN 内成员口影响,但 H3C 有一个特性叫 VLAN interface 的 up/down 与「VLAN 内是否有 up 的成员口」相关,行为和华为基本一致。排查方法一样:display interface Vlan-interface 10。
关于代理 ARP:H3C 的 proxy-arp enable 配置在三层接口上,行为与华为类似。要注意的是代理 ARP 与端口隔离、VLAN 隔离的组合会产生复杂行为,在启用之前一定要验证过。
关于三层物理口的建链:H3C 用 port link-mode route 切到三层后,接口会自动 shutdown,必须 undo shutdown。这是前面第 2 章已经强调过的点,但在这里再强调一次,因为三层核心的上联口一旦没开,整个网络就断了。
H3C 的 VLAN 接口特性补充
H3C 的 Vlan-interface 还有一个与华为不完全一致的点:H3C 的三层接口可以配置多个 IP 地址(主地址 + 从地址),用于同一接口承载多个网段。命令形式是 ip address <地址> <掩码> sub(从地址)。华为的 VLANIF 同样支持从地址,命令是 ip address <地址> <掩码> sub。两家的语法基本相同:
# 主地址 + 从地址(华为)
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] ip address 192.168.10.1 255.255.255.0
[HUAWEI-Vlanif10] ip address 192.168.110.1 255.255.255.0 sub
H3C 的从地址写法与华为完全一致:
# 主地址 + 从地址(H3C)
[H3C] interface Vlan-interface 10
[H3C-Vlan-interface10] ip address 192.168.10.1 255.255.255.0
[H3C-Vlan-interface10] ip address 192.168.110.1 255.255.255.0 sub
从地址的用途通常是把多个网段挂到同一个 VLAN 上(比如老网段迁移时的过渡方案)。注意:一个 VLAN 对应多个网段会在很多场景下造成 ARP 混乱,一般只在过渡期短时使用。
三层转发与二层转发的本质对比
初学者最容易卡住的认知是「三层交换机不也是交换机吗,为什么能路由?」。要讲清这一点,得对比一下两种转发的决策依据:
| 对比项 | 二层转发 | 三层转发 |
|---|---|---|
| 决策依据 | 目的 MAC 地址 | 目的 IP 地址 |
| 查什么表 | MAC 地址表 | 路由表 + ARP 表 |
| 是否修改报文 | 不修改(可能加/剥 VLAN 标签) | 修改(重写源/目的 MAC、TTL 减 1) |
| 作用范围 | 同一广播域(VLAN 内) | 跨广播域 |
| 终端参与 | 终端需知道对端 MAC | 终端只需知道网关 MAC |
| 设备角色 | 交换机 | 三层交换机 / 路由器 |
三层转发时,交换机对报文的改写是关键:它把「源 MAC」改成自己出口接口的 MAC,把「目的 MAC」改成下一跳(或目的主机)的 MAC,IP 头完全不动但 TTL 减 1。所以终端看到的「对端 MAC」永远是网关的 MAC,它根本不知道跨网段的目的主机 MAC——这就是为什么跨网段访问时,终端只需要网关 MAC 就够了。
三层交换机「快」的原因在于:它在硬件(ASIC 芯片)里实现了路由查找与改写,第一次转发走控制面建立缓存,之后同类流量直接走硬件快速转发表。所以三层交换机的转发性能可以做到线速,而传统路由器要靠 CPU 软件转发,性能差好几个数量级。这就是为什么「用三层交换机做 VLAN 间路由」远优于「用路由器做单臂路由」。
VLANIF 与 VRRP 的关系
这是实际项目中必须搞清楚的一点。假设两台三层核心都做 VLAN 10 的网关,你不能在两台上都配 192.168.10.1——那是地址冲突。正确做法是:
- 核心 A 的 VLANIF 10 配
192.168.10.2,核心 B 的 VLANIF 10 配192.168.10.3。 - 两台之间跑 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议),虚拟网关地址
192.168.10.1,A 是 Master、B 是 Backup。 - 终端网关全部指向
192.168.10.1,正常走 A,A 挂了自动切到 B。
终端网关 = 192.168.10.1(虚拟地址)
│
┌───────┴───────┐
│ │
[CORE-A] [CORE-B]
Vlanif10: Vlanif10:
192.168.10.2 192.168.10.3
VRRP Master VRRP Backup
(优先级 120) (优先级 100)
│ │
└──── trunk ────┘
这个方案在第 27 章「防火墙 NAT 与路由部署」和第 28 章「防火墙双机热备」里会再次出现,届时会讲 VRRP + HRP 的完整配置。本章你只需要建立一个认知:「网关」是一个逻辑角色,可以由多台设备共同承担,但同一时刻只有一个在应答 ARP。
如果两台核心做了堆叠/IRF(第 5 章),那么它们本来就是一台逻辑设备,只需要在这「一台设备」上配一个 VLANIF 地址就行,不需要 VRRP。这也是堆叠的一个实际价值:省掉网关的 VRRP 配置。
ARP 表的容量与老化
ARP 表是有容量上限的(与型号内存有关,接入型号通常只有几百到几千条,核心型号上万条)。在大规模网络中,ARP 表打满会造成「新终端上不来」,这是真实发生过的故障。
几个与容量相关的参数:
| 参数 | 华为 | H3C | 说明 |
|---|---|---|---|
| ARP 表总容量 | 随型号 | 随型号 | 用 display arp statistics 查已用 |
| 老化时间 | arp expire-time N(秒,缺省 1200) |
arp timer aging N(分钟,缺省 20) |
单位不同:华为秒、H3C 分钟 |
| 最大动态 ARP 数 | 视型号可配 | 视型号可配 | 限制防打满 |
| 静态 ARP 数量 | 视型号 | 视型号 | 大量静态 ARP 会占用控制面资源 |
⚠ 注意:华为的 arp expire-time 单位是秒(缺省 1200 秒 = 20 分钟),H3C 的 arp timer aging 单位是分钟(缺省 20 分钟)。两边「20 分钟」其实一样长,但配置时的数字差了 60 倍,这是抄配置时最容易出错的地方。
关于 ARP 老化的工程经验:办公网可以把老化时间调短到 300 秒(华为 arp expire-time 300、H3C arp timer aging 5),好处是终端下线后 ARP 表项快速回收,坏处是 ARP 报文频率上升。服务器网段反而应该保留较长的老化(或直接配静态 ARP),避免频繁 ARP 影响服务器性能。
免费 ARP 与网关切换
「免费 ARP(Gratuitous ARP)」是一个很实用的机制:设备主动发一个「源 IP = 目的 IP = 自己的地址」的 ARP 请求,用来宣告「我这个 IP 现在在这里,MAC 是这个」。它的三个用途:
- IP 冲突检测:设备配好 IP 后发免费 ARP,如果收到应答说明有冲突。
- 网关切换时刷新终端 ARP 表:VRRP 主备切换后,新的 Master 发免费 ARP 告诉全网「这个虚拟 IP 的 MAC 变了」,终端立刻更新 ARP 表。没有这一步,终端要等老化时间才会切换网关,切换期间业务中断。
- MAC 地址表更新:链路切换后,交换机需要刷新转发路径。
⚠ 版本差异:华为与 H3C 都提供周期性发送免费 ARP 的能力(华为 arp send-gratuitous-arp ...,H3C arp send-gratuitous-arp),但命令是否存在、参数怎么写,与型号强相关(部分入门型号不支持),配置前请用 arp ? 逐级确认,不要照抄。
6.4 华为 / H3C 命令对照表
| 功能 | 华为(VRP) | H3C(Comware V7) | 差异说明 |
|---|---|---|---|
| 创建 VLAN 三层接口 | interface Vlanif 10 |
interface Vlan-interface 10 |
名称差异,H3C 带连字符 |
| 配 IP | ip address 10.200.1.1 24 |
ip address 10.200.1.1 24 |
相同 |
| 从地址 | ip address X Y sub |
ip address X Y sub |
相同 |
| 物理口转三层 | undo portswitch(视型号) |
port link-mode route(全系) |
华为有型号限制 |
| 静态 ARP | arp static IP MAC |
arp static IP MAC |
相同 |
| ARP 老化 | arp expire-time 300 |
arp timer aging 300 |
名称不同 |
| 代理 ARP | arp-proxy enable |
proxy-arp enable |
词序相反;两家缺省都关闭 |
| 子接口配置 | dot1q termination vid 10 |
vlan-type dot1q vid 10 |
关键词不同 |
| 子接口 ARP 广播 | arp broadcast enable(必须) |
缺省支持,无需配置 | 关键差异 |
| 默认路由 | ip route-static 0.0.0.0 0.0.0.0 X |
ip route-static 0.0.0.0 0 X |
掩码写法:点分 vs 位数 |
| 看三层接口 | display ip interface brief |
display ip interface brief |
格式略有差别 |
| 看 ARP | display arp |
display arp |
格式不同 |
| 看路由 | display ip routing-table |
display ip routing-table |
格式不同 |
网关设计的几个工程约定
把散落的知识点收拢成一份「网关设计约定」,这份约定可以直接套到项目里:
| 约定 | 具体做法 | 为什么 |
|---|---|---|
| 网关地址取 .1 或 .254 | 每个网段固定用同一个主机位做网关 | 便于记忆与批量配置 DHCP |
| 只在一台设备上存在 | 每 VLAN 一个网关,跨设备冗余用 VRRP | 避免地址冲突与双活混乱 |
| 网关与 VLAN 号可对应 | VLAN 20 的网关是 192.168.20.1 | display arp 时一眼看懂 |
| 管理网关独立 | 管理 VLAN 单独规划(如 VLAN 99) | 业务故障不影响管理通道 |
| 网关地址写进 IP 规划表 | 与 VLAN 规划同时维护 | 新同事接手能少走弯路 |
| 网关先于终端部署 | VLAN 与 VLANIF 先配好,再下发 DHCP | 终端上线即能拿到正确网关 |
有一条经验特别值得强调:「网关必须先于终端上线」。如果先给终端发了 DHCP 地址、后来才配网关,那么终端在 ARP 超时之前会一直认为网关不存在,表现为「拿到了地址但上不了网」。这种情况只能靠终端重新获取地址或等待 ARP 老化解决,现场排障成本很高。
关于「三层接入」还是「二层接入 + 核心三层」
设计网络时还有一个结构性的选择:把三层网关放在接入交换机上(三层到接入),还是放在核心上(二层到接入)?
二层到接入(网关在核心):接入交换机全部是二层设备,VLAN 三层终止在核心。优点是接入层简单、便宜、好管;缺点是 VLAN 要穿越整个接入-汇聚链路,STP 域大,广播域大;而且核心要承担所有 VLAN 的网关与路由。
三层到接入(网关在接入):接入交换机是三层的,每个接入交换机自己就是它下面 VLAN 的网关。优点是把广播域和 STP 域限制在单台接入交换机内,故障半径极小,核心只做汇聚路由;缺点是对接入交换机的要求高(要三层、要跑路由协议)、管理更分散。
中小型园区网多用「二层到接入」,大型园区网、数据中心、运营商网络多用「三层到接入」。这个选择在校园网案例(第 37 章)里会再次讨论。你只需要记住判断依据:当接入交换机的数量很大、VLAN 很杂、STP 域扩展到几十台设备时,就该考虑把网关下沉到接入层。
6.5 配置验证
第一步:确认三层接口状态。
<HUAWEI> display ip interface brief
正常输出:
Interface IP Address/Mask Physical Protocol VPN Instance
Vlanif10 192.168.10.1/24 up up
Vlanif20 192.168.20.1/24 up up
Vlanif30 192.168.30.1/24 down down
Vlanif99 10.200.99.1/24 up up
MEth0/0/1 unassigned down down
关键看图:Physical 与 Protocol 都是 up 才说明接口可用;down 需要回到 6.1.2 讲的三条规则逐条查(VLAN 存在?有 up 成员口?没被 shutdown?)。这张表还顺便列出了所有三层接口的 IP——没有 IP 的接口显示 unassigned。
第二步:确认直连路由自动生成。
<HUAWEI> display ip routing-table
正常输出(关键行):
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.10.0/24 Direct 0 0 D 192.168.10.1 Vlanif10
192.168.10.1/32 Direct 0 0 D 127.0.0.1 Vlanif10
192.168.20.0/24 Direct 0 0 D 192.168.20.1 Vlanif20
192.168.20.1/32 Direct 0 0 D 127.0.0.1 Vlanif20
0.0.0.0/0 Static 60 0 RD 172.16.0.1 Vlanif...
只要 VLANIF 是 up 且有 IP,直连路由(Direct)会自动出现在路由表里。看到 Direct 就说明「这个网段的终端能 ping 通网关」。
第三步:确认 ARP 表能学到终端。
<HUAWEI> display arp
正常输出:
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
--------------------------------------------------------------------
192.168.10.1 00e0-fc00-0001 I - Vlanif10
192.168.10.10 00e0-fc12-3456 20 D-0 Vlanif10
192.168.10.11 00e0-fc12-3457 18 D-0 Vlanif10
TYPE 列的 I 表示接口自身的地址(Interface),D-0 表示动态学习(Dynamic),S 表示静态。EXPIRE(M) 是剩余老化时间(分钟)。如果某个终端在该表里查不到,就是 ARP 没学到,重点查二层是否通(VLAN、端口、STP)。
第四步:实际连通性验证。
# 在网关交换机上 ping 终端
<HUAWEI> ping 192.168.10.10
# 在终端上 ping 网关
C:\> ping 192.168.10.1
# 在终端上 ping 另一个 VLAN 的终端
C:\> ping 192.168.20.20
# 追踪路径,确认确实经过了三层网关
<HUAWEI> tracert 192.168.20.20
第五步:验证 VLANIF 的故障恢复行为。这是很多人没做过的验证——把 VLAN 内最后一个 up 的成员口拔掉,看 VLANIF 会不会 down;再插回去,看是不是自动恢复。理解这个行为,你才能预料到「新 VLAN 首次部署时网关为什么是 down 的」。
H3C 的验证命令:
<H3C> display ip interface brief
<H3C> display ip routing-table
<H3C> display arp
H3C 的 display ip interface brief 输出格式:
*down: administratively down
(s): spoofing (l): loopback
Interface Physical Protocol IP address VPN instance
Vlan-interface10 up up 192.168.10.1 --
Vlan-interface20 up up 192.168.20.1 --
第六步:用 traceroute 验证转发路径。这一步能证明「流量确实经过了网关」:
# 在终端上追踪到另一网段终端的路径
C:\> tracert 192.168.20.20
如果第一跳就是网关地址(192.168.10.1),说明终端确实把流量交给了网关;如果第一跳出不来,说明网关 ARP 没通。
第七步:用 mirror 抓包观察 MAC 改写。这是理解三层转发最直观的手段:在网关设备上把两个 VLAN 的接口都镜像到抓包口,抓一次跨 VLAN ping,你会看到:
# 帧1:PC1 -> 网关(目的 MAC = 网关的 MAC)
src MAC = PC1 的 MAC, dst MAC = 网关 MAC, IP: 192.168.10.10 -> 192.168.20.20
# 帧2:网关 -> PC2(源 MAC 改成网关的,目的 MAC = PC2 的)
src MAC = 网关 MAC, dst MAC = PC2 的 MAC, IP: 192.168.10.10 -> 192.168.20.20
两个帧的 MAC 头完全不同、IP 头完全一样——这就是「三层转发改写 MAC 头」的铁证。看一次抓包,比读十段文字有用。
6.6 排错与故障树
网关排错有一个通用的「五问法」,比一张症状表更好用:
| 顺序 | 问什么 | 用什么查 | 判断 |
|---|---|---|---|
| 1 | 我的 IP 配在哪个接口上? | display ip interface brief |
接口是 up/up 且 IP 正确 |
| 2 | 这个接口对应的 VLAN 有活口吗? | display vlan N |
VLAN 内有 U 状态的成员口 |
| 3 | 这个网段的路由存在吗? | display ip routing-table |
有 Direct 条目 |
| 4 | 对端 IP 的 ARP 学到了吗? | display arp |
有对应的动态表项 |
| 5 | 终端侧的网关指对了吗? | 终端 ipconfig |
网关 = 交换机接口地址 |
下面这张症状表是本节的展开版,五问法走不通时再用它:
| 症状 | 可能原因 | 排查命令 | 定位方法 |
|---|---|---|---|
| 网关 ping 不通 | VLANIF down | display ip interface brief |
查 VLAN 内是否有 up 成员口 |
| 网关 ping 通但跨网段不通 | 无路由 / 终端网关配错 | display ip routing-table |
看直连路由是否存在 |
| 终端能到网关但到不了别 VLAN | 缺少直连路由或路由表异常 | display ip routing-table |
检查两个 VLANIF 是否都 up |
| ARP 表学不到终端 | 二层不通(VLAN/端口/STP) | display arp、display vlan |
回到第 3 章排查路径 |
| ARP 表项频繁变 MAC | ARP 欺骗 / 双 IP | display arp、查日志 |
交换机报 ARP 冲突告警 |
| 单臂路由子接口不通 | 漏 arp broadcast enable(华为) |
display current-configuration interface GE0/0/1.10 |
补上该命令 |
| 三层口 ping 不通 | undo portswitch 后没 undo shutdown |
display interface |
重开接口 |
| 三层口 IP 冲突 | 两个接口配了同网段 | display ip interface brief |
改地址 |
| VLANIF 能 ping 通自己但终端 ping 不通 | VLAN 内成员口不在同一 STP 转发状态 | display stp brief |
检查 STP 是否阻塞 |
| 上不了外网 | 默认路由缺失/下一跳不可达 | display ip routing-table、ping 下一跳 |
补路由或查上联 |
| 终端偶发断网几秒 | ARP 表被打满 / 老化被频繁刷新 | display arp statistics |
查表容量与 ARP 攻击 |
| 换网关设备后全网中断 | 新网关的 MAC 与旧的不同、终端 ARP 未刷新 | display arp |
发免费 ARP 或等老化 |
| 两台设备的网关都配了 | 地址冲突 | 两端 display arp 看冲突告警 |
改一台为 VRRP Backup |
其中「换网关设备后全网中断」这一条值得单说。它的原理是:终端 ARP 表里缓存着「网关 IP → 旧网关 MAC」。当你把网关从 A 设备迁移到 B 设备(B 的接口 MAC 不同),终端仍然按旧的 MAC 发包,包被发到旧的路径上,自然不通。等 ARP 老化(最多 20 分钟)后终端重新 ARP 才能恢复。**避免办法:迁移前在新网关上主动发免费 ARP,或者把终端 DHCP 租期调短、强制重新获取地址。**这种「看起来像网络断了、其实只是 ARP 没刷新」的故障,在现场经常被误判为重装交换机。
故障树(「跨 VLAN 不通」):
跨 VLAN 不通
|
+-- 两个 VLANIF 都 up 吗?
| +-- 有 down 的 -> VLAN 内无 up 成员口 -> 检查接入/上联
|
+-- 路由表里有两条直连路由吗?
| +-- 缺了 -> VLANIF IP 没配或接口 down
|
+-- 终端网关配了吗?
| +-- 没配/配错 -> 改终端
|
+-- ARP 能学到对端吗?
| +-- 学不到 -> 二层问题(第 3 章)
|
+-- ping 网关通但 ping 对端 VLAN 的终端不通
+-- 对端终端防火墙开了 -> 查终端侧
+-- ACL 挡了 -> 第 17 章
6.7 新手踩坑与注意事项
- 把 VLAN 当网关配了 IP——症状:
vlan 10里敲ip address报错;怎么避:IP 配在Vlanif 10上,不是vlan 10。 - VLANIF down 以为是配置错——症状:网关地址「配了但不生效」;怎么避:VLAN 里必须有 up 的成员口,
display ip interface brief一看便知。 - 两台交换机都配同一个 VLAN 的网关——症状:网关地址冲突、双活行为混乱;怎么避:VLANIF 地址全网唯一,做冗余用 VRRP 而不是配两个同地址(VRRP 见第 28 章)。
- 华为子接口漏
arp broadcast enable——症状:能 ping 网关但不通其他网段;怎么避:华为子接口必配。 - H3C 子接口照抄华为配置——症状:多敲一条报错;怎么避:H3C 无该命令,缺省就支持。
- 三层口切完没开——症状:三层上联全断;怎么避:
undo portswitch/port link-mode route后立刻undo shutdown。 - 把 VLAN 1 用作管理网网关——症状:VLAN 1 泛洪影响管理通道;怎么避:管理 VLAN 独立(如 VLAN 99)。
- 静态 ARP 写错 MAC 格式——症状:静态 ARP 不生效或报错;怎么避:华为/H3C 都用
00e0-fc12-3456的 H-H-H 格式,注意不能换成冒号分隔。 - 网关配成 /32 掩码——症状:终端只能到网关,不能到同 VLAN 其他终端;怎么避:掩码必须与网段规划一致。
- 忘记配默认路由——症状:内网互通但上不了外网;怎么避:核心上网关设备必须有默认路由。
- 在多台三层交换机上乱配 VLANIF——症状:路由表出现重复直连、转发黑洞;怎么避:每个 VLAN 只在一台设备上有网关,冗余用 VRRP/堆叠。
- 网关迁移后不刷 ARP——症状:换了网关设备后全网断十几分钟;怎么避:新网关主动发免费 ARP,或提前把 DHCP 租期调短。
- ARP 老化单位记错——症状:按 H3C 的单位去配华为设备,老化时间差了 60 倍;怎么避:华为
arp expire-time用秒、H3Carp timer aging用分钟。 - 子接口物理口是三层口——症状:子接口配不上或不通;怎么避:单臂路由的物理口必须是二层口,标签由子接口终结,不要提前
undo portswitch。
6.8 本章小结
- 三层接口的四种形态:VLANIF(最常用)、三层物理口、子接口(单臂路由)、聚合口上的 VLANIF。
- VLANIF 的状态由 VLAN 决定:VLAN 存在 + 有 up 成员口 + 接口未 shutdown,三条缺一不可。这是「网关配了但不生效」的头号原因。
- 直连路由自动生成:VLANIF up 且有 IP,路由表就有
Direct条目,终端就能 ping 通网关。 - ARP 是三层转发的地图:动态 ARP 靠学习、静态 ARP 靠绑定、代理 ARP 让跨网段「看起来像一个网段」。
- 两家差异:
VlanifvsVlan-interface;undo portswitchvsport link-mode route;华为子接口必须arp broadcast enable,H3C 不需要;arp-proxy enablevsproxy-arp enable。 - 验证顺序:三层接口状态 → 直连路由 → ARP 表 → ping 连通性。
自测题
- 一台三层交换机配了
Vlanif 30的地址,但display ip interface brief显示down/down,可能是什么原因?怎么解决? - 华为子接口的
dot1q termination vid 10后面为什么通常要跟一条arp broadcast enable?H3C 为什么不需要? - 为什么「网关地址」只应该出现在一台设备上?如果要冗余怎么办?
- 某个 VLAN 内有终端,但
display arp里看不到任何该网段的动态表项,你的排查顺序是什么? - 三层物理口和 VLANIF 各自的适用场景是什么?
- 最可能的原因是 VLAN 30 内没有任何 up 的成员口(VLAN 里没有活着的端口),或者
Vlanif 30被shutdown了,或者 VLAN 30 本身不存在。解决方法:确认 VLAN 30 已创建;检查是否有接入该 VLAN 的 up 端口(access 口或 trunk 口放行了 VLAN 30);确认Vlanif 30未被 shutdown。也可以用display vlan 30确认成员口状态。 - 因为华为子接口在缺省状态下不发送 ARP 广播报文:如果不开
arp broadcast enable,子接口可能无法回应对端的 ARP 请求或无法发送 ARP 请求,导致终端能 ping 通网关但不通其他网段(ARP 无法建立)。H3C 的子接口缺省就支持 ARP 广播,因此无需配置该命令。 - 因为同一个网段内如果有两个设备配同一个网关地址,就会形成 IP 地址冲突,两个设备都会回应该地址的 ARP,导致流量随机分流到不同设备、行为不可预测(同一个 MAC 对应两个物理位置)。若要冗余,应使用 VRRP 等虚拟路由冗余协议,让两台设备共享一个虚拟 IP 作为网关,同一时刻只有一台真正响应。
- 顺序:先
display ip interface brief确认网关所在的 VLANIF 是否 up;再display vlan确认该 VLAN 有 up 的成员口;然后查接入层到局域网的二层连通(display mac-address vlan N)看能否学到终端 MAC;再看是否有端口被 STP 阻塞或端口隔离影响;最后确认终端是否配置了正确的 IP 与掩码、是否真的发出了 ARP。 - 三层物理口适合点对点互联:交换机接路由器、两台交换机之间的三层互联,能省去建 VLAN 的步骤、接口关系清晰。VLANIF 适合「一个 VLAN 的一批终端要有一个共同网关」的场景,是二层接入网络的网关标准做法,也便于按 VLAN 隔离与做策略。
关于本书:《华为 / H3C 网络设备典型功能配置详解》—— 面向国内高校/企业网络环境, 华为 VRP 与 H3C Comware 双厂商并排配置的实操教材,共 43 章。 全书所有命令尽量有官方出处,查不到的显式标注「待核实」。 返回系列目录
本人保留对侵权者及其全家发动因果律武器的权利
版权提醒
如无特殊申明,本站所有文章均是本人原创。转载请务必附上原文链接:https://www.elliot98.top/post/huawei-h3c-book/06/。
如有其它需要,请邮件联系!版权所有,违者必究!