华为H3C实战 | 第9章 MAC 地址表与端口安全
📚 本系列共 43 篇(第 9 / 43 篇) · 第一卷 基础篇 —— 交换机的骨架
← 上一篇:第 8 章 DHCP 服务配置 下一篇:第 10 章 静态路由与默认路由 →
本章导读:交换机转发靠 MAC 表这一张"门牌号对照表",而这张表自学、有上限、默认全开放——伪造源 MAC 能抢占归属,几十万个假 MAC 能把表打满让全网退化成泛洪。本章讲怎么管好这张表,并给接入口加准入和限流。
本章结构:
- 9.1 功能原理与业务场景 —— 三块业务:MAC 表管理、端口安全、MAC-IP 绑定 + 端口隔离与风暴抑制,外加 ARP 防欺骗入门
- 9.2 华为设备配置详解 —— 静态 MAC、黑洞 MAC(立刻压制攻击源)、老化时间、禁止学习与限制学习数是两条不同命令:
mac-address learning disablevsmac-address max-mac-count N、port-security三个保护动作、粘滞学习、broadcast-suppression的单位陷阱 - 9.3 H3C 设备配置详解 —— H3C 的端口安全与 IP Source Guard 写法(已核实)、
arp detection三步(enable / trust / validate) - 9.4 命令对照表 —— 两家并排 + 华为叫法对照
- 9.5 配置验证 ——
display mac-address security、display port-security、display port-isolate group - 9.6 排错与故障树 —— 12 行症状表:换机器上不了网(sticky 卡着旧 MAC)、端口被打成 error-down、MAC 表打满、配了抑制反而正常流量被丢(单位搞错)
- 9.7 新手踩坑 —— 上联口加入隔离组、抑制阈值单位填错
- 9.8 本章小结 —— 要点清单 + 自测题
重点提示:要"这个口只认这一台机器",看 9.2 的粘滞学习(port-security mac-address sticky),这是最轻量的端口-终端绑定;要"这个口不许学太多",用 max-mac-count,别用 learning disable(那是完全不学,全走泛洪)。配抑制前一定 broadcast-suppression ? 确认单位——百分比填成 pps 会误伤正常流量。
关联章节:MAC 表查不到终端时先回第 3 章查二层 VLAN;ARP 欺骗的绑定表来自 DHCP Snooping(第 8 章);接入层的整体安全基线见第 30 章;交换机端口层面的风暴抑制与生成树配合见第 4 章。
9.1 功能原理与业务场景
9.1.1 这功能是干嘛的(通俗版)
交换机转发数据,靠的是一张「门牌号对照表」——学术上叫 MAC 地址表(也叫转发表、CAM 表)。它的逻辑极其朴素:某个门牌号挂在哪个接口上,我就从这个接口送过去;找不到门牌号,我就大喊一声(泛洪)让所有人听到。
这张表是交换机赖以生存的东西,但它有三个天然的软肋:
软肋一:表是「自学」的。交换机不会有人手工告诉你「1 号口的 MAC 是 XXX」,它靠「谁从哪个口发过包,就把这个源的 MAC 记到那个口」来自学。这意味着谁先发一个伪造源 MAC 的包,谁就能抢占这个 MAC 的归属。
软肋二:表有上限。一台接入交换机的 MAC 表可能只有 8K 或 16K 条。如果攻击者每秒伪造几万个不同的 MAC 往交换机里冲,表就会被填满,新终端学不到 MAC,转发就退化成「处处泛洪」。
软肋三:默认全开放。接口缺省允许学习无限个 MAC、允许任何终端接入、允许任何终端发任何 MAC。这在开放办公环境里是一种风险。
「MAC 地址表与端口安全」这一章,讲的就是如何管好这张表、如何给接口加上准入与限流。分成四大块:
- MAC 表管理:看懂表、配静态 MAC、配黑洞 MAC、调老化时间、限制学习数量。
- 端口安全(Port Security):限制一个接口最多学几个 MAC、超了怎么处理、粘滞学习固定终端。
- MAC-IP 绑定:把「MAC + IP + 接口」三者绑死,防止终端乱改 IP 或冒用别人地址。
- 端口隔离与风暴抑制:让同 VLAN 内的终端互相看不见,并给广播流量设个上限。
再加一块ARP 防欺骗入门,因为 ARP 欺骗的防御(尤其是 H3C 的 ARP Detection)与 MAC-IP 绑定表是同一套底层数据。
9.1.2 在网络里怎么落地(设计视角)
先看 MAC 表的自学历程。假设一台空表交换机,PC1(MAC 为 A)接 1 号口,PC2(MAC 为 B)接 2 号口:
时刻 1:PC1 发包给 PC2(此时表是空的)
[交换机] 收到帧:源MAC=A,入1号口 → 学习:A → 1号口
目的MAC=B,查表 → 找不到!
→ 泛洪到除 1 号口外所有口(包括 2 号口)
[PC2] 收到,记录 A 在 1 号口方向
时刻 2:PC2 回包给 PC1
[交换机] 收到帧:源MAC=B,入2号口 → 学习:B → 2号口
目的MAC=A,查表 → A 在 1 号口
→ 精确转发到 1 号口(不再泛洪)
所以「第一次通信总会有泛洪,之后才精确」。这是二层网络的基本规律,也解释了为什么抓包时经常看到重复的帧。
MAC 表里的表项分三种:
| 类型 | 怎么产生 | 老不老 | 用途 |
|---|---|---|---|
| 动态(dynamic) | 源 MAC 自学习 | 会老化(缺省 300 秒) | 正常业务 |
| 静态(static) | 手工 mac-address static |
永不老化 | 关键服务器、固定设备 |
| 黑洞(blackhole) | 手工 mac-address blackhole |
永不老化 | 丢弃指定 MAC 的帧(阻断攻击) |
安全功能的层次关系,用一张图说清:
┌───────────────────────────────────┐
│ 三、MAC-IP 绑定(IP Source Guard) │ 防止冒用 IP
├───────────────────────────────────┤
│ 二、端口安全(Port Security) │ 限制 MAC 数量、粘滞学习
├───────────────────────────────────┤
│ 一、MAC 表管理(静态/黑洞/老化) │ 基础能力
└───────────────────────────────────┘
▲
│ 都依赖同一张底表
┌─────────────┴─────────────────────┐
│ DHCP Snooping 绑定表(第 8 章) │
│ ARP 防欺骗(本章入门,安全篇深化) │
└───────────────────────────────────┘
端口隔离解决的是另一个维度的需求:同一个 VLAN 里的两个终端(比如酒店房间、宿舍)本该互相不通,但又要都能上网。做法是把它们加入同一个隔离组,组内成员之间的二层流量不互相转发,但都能与「不在隔离组里的端口」(上联口)通信。
广播风暴抑制是给泛洪流量「装个水表」:当广播、组播或未知单播流量超过设定阈值时,直接丢弃多余部分(或关闭端口),防止一台故障设备把全网打瘫。
适用版本:华为 VRP V200R019 及以上、H3C Comware V7(R2610 及以上)。端口安全的保护动作、
sticky学习的支持、broadcast-suppression的单位(百分比 vs pps)与型号强相关,请以型号手册为准。
9.2 华为设备配置详解
9.2.1 命令行基础速览(本章会用到的那几条)
| 命令 | 在哪敲 | 干什么 |
|---|---|---|
display mac-address |
任意视图 | 看 MAC 表 |
mac-address static MAC 接口 vlan N |
系统视图 | 配静态 MAC |
mac-address blackhole MAC vlan N |
系统视图 | 配黑洞 MAC |
mac-address aging-time 300 |
系统视图 | 改老化时间(秒) |
mac-address learning disable |
接口视图 | 禁止该口学习 MAC |
mac-address max-mac-count N |
接口视图 | 限制该口最大学习数 |
port-security enable |
系统视图 | 开启端口安全 |
port-security max-mac-num N |
接口视图 | 最大安全 MAC 数 |
port-security protect-action ... |
接口视图 | 超限保护动作 |
port-security mac-address sticky |
接口视图 | 粘滞学习 |
port-isolate enable group N |
接口视图 | 加入隔离组 |
broadcast-suppression 20 |
接口视图 | 广播抑制(百分比) |
storm-control broadcast ... |
接口视图 | 风暴控制 |
arp anti-attack check user-bind enable |
系统视图 | ARP 绑定表检测 |
9.2.2 完整配置模板
下面是一个「接入交换机安全加固」的完整配置:MAC 表管理 + 端口安全 + 隔离 + 风暴抑制。
# 华为接入交换机
system-view
sysname ACC-SW1
vlan batch 10 20
# ===== 一、MAC 表管理 =====
# 关键服务器用静态 MAC(注意:静态 MAC 只在该 VLAN 内有效)
mac-address static 00e0-fc12-3456 GigabitEthernet0/0/1 vlan 10
# 攻击源 MAC 用黑洞 MAC 阻断
mac-address blackhole 00e0-fc12-3457 vlan 10
# 老化时间改为 300 秒(缺省 300 秒,办公网可适当缩短)
mac-address aging-time 300
# ===== 二、端口安全(限制每口 MAC 数 + 粘滞学习)=====
port-security enable
interface GigabitEthernet0/0/1
description DESK-3F-01
port link-type access
port default vlan 10
# 最多允许 2 个 MAC(PC + 话机)
port-security max-mac-num 2
# 超限后的动作:restrict(丢弃并告警)
port-security protect-action restrict
# 开启粘滞学习:把学到的 MAC 固化为安全 MAC
port-security mac-address sticky
quit
# ===== 三、端口隔离(同一 VLAN 内终端互不可见)=====
interface GigabitEthernet0/0/5
description HOTEL-ROOM-501
port link-type access
port default vlan 20
# 加入隔离组 1
port-isolate enable group 1
quit
interface GigabitEthernet0/0/6
description HOTEL-ROOM-502
port link-type access
port default vlan 20
port-isolate enable group 1
quit
# ===== 四、广播风暴抑制 =====
interface GigabitEthernet0/0/1
# 广播流量超过 20% 时开始抑制
broadcast-suppression 20
# 组播与未知单播同理
multicast-suppression 20
unicast-suppression 20
quit
quit
save
MAC-IP 绑定 + ARP 防欺骗(需要 DHCP Snooping 或静态绑定配合):
# 华为:开启 DHCP Snooping 生成绑定表(第 8 章已配)
dhcp snooping enable
# 静态绑定:把 MAC + IP + 接口 绑死
user-bind static ip-address 192.168.10.100 mac-address 00e0-fc12-3460 interface GigabitEthernet0/0/1 vlan 10
# 开启 IP 报文检查:源 IP 与绑定表不符的报文被丢弃
interface GigabitEthernet0/0/1
ip source check user-bind enable
quit
# 开启 ARP 报文检查:ARP 中的 IP-MAC 与绑定表不符则丢弃
arp anti-attack check user-bind enable
华为这组命令的准确写法(已核实):
user-bind static ip-address <IP> mac-address <MAC> interface <接口>—— 三个参数就能建表项;vlan <ID>是可选第四段,需要限定 VLAN 时才加(如... interface gigabitethernet 0/0/3 vlan 10)。ip source check user-bind enable—— 使能 IPSG,可配在接口视图或 VLAN 视图。配在接口下则检查该接口收到的 IP 报文;配在 VLAN 下则检查该 VLAN 内的报文。arp anti-attack check user-bind enable—— 使能 DAI,可配在接口视图、VLAN 视图或 BD 视图;它会比对 ARP 报文里的源 IP、源 MAC、接口、VLAN/BD 与绑定表。- 查看静态绑定表:
display dhcp static user-bind all(输出里还有IPSG Status一列,effective表示该表项已生效)。
有一点必须注意:DAI 只适用于 DHCP Snooping 场景。DHCP 用户上线时绑定表自动生成;但静态配 IP 的用户不会自动生成绑定表,必须手工 user-bind static,否则 DAI 会把这个合法用户的 ARP 全丢掉。另外,与合法 DHCP 服务器相连的接口要配成信任接口,否则回程报文匹配不到绑定表会被误丢。
H3C 侧 IP Source Guard 的正确写法(已核实)——注意命令顺序和名字,网上教程常把 ip source binding 和 ip verify source 写反或漏掉使能:
# H3C:接口先使能 IPv4SG(绑定哪些字段做校验),再配绑定表项
interface GigabitEthernet1/0/1
ip verify source ip-address mac-address
quit
# 接口级静态绑定(只在本接口生效)
interface GigabitEthernet1/0/1
ip source binding ip-address 192.168.10.100 mac-address 00e0-fc12-3460
quit
要点:ip verify source { ip-address | ip-address mac-address | mac-address } 是接口级开关(缺省关闭),决定「按 IP 校验 / 按 IP+MAC 校验 / 按 MAC 校验」;ip source binding ip-address ... mac-address ... 是绑定表项,可以配在接口下(接口级,只对本接口生效)也可以配在系统视图下(全局,对所有接口生效)。接口级绑定表项优先级高于全局绑定表项。
华为侧的对应关系:华为没有「IP Source Guard」这个叫法,功能通过两套机制实现——user-bind static(绑定表)+ ip source check user-bind enable(IP 报文校验)/ arp anti-attack check user-bind enable(ARP 报文校验,也叫 DAI,可配在接口、VLAN 或 BD 视图下)。华为这组命令的参数组合与型号强相关,请以自己的型号命令参考为准。
华为叫法对照:华为把这个能力叫 IPSG(IP Source Guard,IP 源防护)——「基于二层接口的源 IP 地址过滤技术,通过维护绑定表对报文进行信息匹配」。绑定表的来源有两条:一是手工配的静态绑定表(user-bind static),二是 DHCP Snooping 动态生成的绑定表。查看静态绑定表用 display dhcp static user-bind all,查看动态绑定表用 display dhcp snooping user-bind all。华为的 IPSG 检查命令是 ip source check user-bind enable,ARP 侧的检查是 arp anti-attack check user-bind enable。
9.2.3 逐行讲解
MAC 地址的写法。华为与 H3C 都用 H-H-H 十六进制格式,如 00e0-fc12-3456。命令行里也可以省略前导 0,但统一写全 12 位最稳妥。MAC 地址结构:
00 e0 fc | 12 34 56
└──┬───┘ └──┬───┘
OUI 厂商分配的序号
(前 3 字节 = 厂商代码,IEEE 分配)
第 1 个字节的最低位(I/G 位):0 = 单播,1 = 组播
第 1 个字节的次低位(U/L 位):0 = 全球唯一,1 = 本地管理
这个知识点很实用:看到 MAC 第一字节是奇数(如 01、33),基本就是组播/广播 MAC(01-80-c2-00-00-00 是 STP 的,33-33-xx 是 IPv6 组播的)。如果 MAC 表里出现大量组播 MAC,那不是攻击,而是组播流量经过了交换机。
静态 MAC 的用途。mac-address static MAC 接口 vlan N 把某个 MAC 永久绑定到「某个接口 + 某个 VLAN」。三个用途:
- 性能:关键服务器的 MAC 永远在表里,避免老化后重新泛洪。
- 安全:如果攻击者伪造了这个 MAC,交换机会按静态表转发到指定口,而不是跟着源 MAC 走。
- 排障:绑定后可确认「这个 MAC 一定在这个口」,便于定位。
⚠ 注意:静态 MAC 是「防止被覆盖」而不是「禁止别人用」。如果另一台机器伪造了同样的 MAC,它依然能发包,只是交换机会把去往这个 MAC 的流量继续送到绑定口——伪造者的流量会「石沉大海」,这才是静态 MAC 的安全价值。
黑洞 MAC。mac-address blackhole MAC vlan N 让交换机直接丢弃所有目的 MAC 为该地址的帧。这是阻断攻击最快的手段:发现某台机器在攻击,但它连在哪都不知道,可以先加一条黑洞 MAC 立刻压制。
MAC 老化时间。缺省是 300 秒(5 分钟)。一旦某个 MAC 在老化时间内没有出现,表项就被删除。调整的权衡:
| 老化时间 | 优点 | 缺点 | 适用 |
|---|---|---|---|
| 短(60~120 秒) | 终端下线后快速清理、防 MAC 表占满 | 泛洪变多 | 高流动性的接入层 |
| 缺省(300 秒) | 平衡 | — | 通用 |
| 长(600 秒以上) | 泛洪少 | 终端迁走后转发可能出错 | 稳定的服务器侧 |
禁止学习与限制学习数。华为接口下有两条不同的命令,别混:
mac-address learning disable:完全不学,所有流量按未知单播泛洪(或者按转发策略处理)。mac-address max-mac-count N:限制最多学 N 个,超过的不再学(新的 MAC 会泛洪)。
前者常见于「只接一台设备、且设备 MAC 固定」的场景(配合静态 MAC 使用);后者是防 MAC 泛洪攻击的基础手段。
端口安全的完整模型。华为的端口安全有三个参数组合:
| 参数 | 作用 | 取值 |
|---|---|---|
port-security max-mac-num N |
允许学习的安全 MAC 数 | 0 ~ 设备上限 |
port-security protect-action |
超限动作 | protect、restrict、shutdown |
port-security mac-address sticky |
粘滞学习(学到的 MAC 自动转成安全 MAC) | 开关 |
三种保护动作的差别必须记清楚:
| 动作 | 超限后干什么 | 优点 | 缺点 |
|---|---|---|---|
protect |
丢弃新 MAC 的报文,不告警 | 业务影响小 | 无告警,看不到被攻击 |
restrict(缺省值) |
丢弃并产生告警日志 | 有告警,可追溯;官方推荐 | 日志量大时可能刷屏 |
shutdown |
直接把接口关闭(error-down) | 最彻底,直接断掉攻击源 | 需要人工恢复或配自动恢复,可能误伤 |
缺省值是 restrict(官方文档:端口安全的保护动作缺省为「丢弃该报文并上报告警」),也就是说不配这条命令时行为已经是「丢包 + 告警」,这通常就是你要的效果;只有需要「静默丢包」或「直接关端口」时才需要显式改。
工程建议:接入层保持缺省的 restrict(有告警但不会把整个口关掉),服务器口用 shutdown(一旦异常立即隔离),并结合 error-down auto-recovery 做自动恢复。另外官方文档还提到:shutdown 触发后端口置为 error-down 并经 error-down auto-recovery cause port-security interval <秒> 可以自动恢复。
粘滞学习(sticky MAC) 是端口安全的「最好用」功能。它的工作方式:接口开启 port-security mac-address sticky 后,第一次学到的 MAC 会被「固化」成安全 MAC(写进配置或运行表)。之后这个口只允许这个 MAC(或这几个 MAC,取决于 max-mac-num),换了台机器就上不了网。这就是「端口与终端绑定」最轻量的实现,适合:
- 会议室、教室:固定电脑,不需要搬来搬去。
- 打印区、门禁控制器:长期固定设备。
- 服务器机柜:每个口对应一台服务器。
缺点也很明确:换设备要手工清 MAC。所以不适合员工常换工位的场景(那种场景用 802.1X 认证更合适)。
端口隔离。port-isolate enable group N 把接口加入隔离组,组内成员之间二层不互通,但都能访问「非隔离组成员」(比如上联口)。华为还有一个 port-isolate mode l2 / l2 all 的选项:l2 只隔离二层,all 连三层也隔离(同一个设备上的 VLANIF 也会一起隔离)。这个模式是全局配置,一次设定影响所有隔离组。
典型应用场景:
| 场景 | 隔离对象 | 说明 |
|---|---|---|
| 酒店/宿舍 | 房间之间 | 互相不可见,但都能上网 |
| 医院 | 病人 WiFi 终端之间 | 隐私与安全 |
| 运营商宽带 | 用户之间 | 防止横向攻击 |
| 会议室访客网络 | 访客终端之间 | 防止互相扫描 |
风暴抑制。华为有两套命令:broadcast-suppression <百分比> 和 storm-control broadcast min-rate/max-rate。两者的语义不同:
broadcast-suppression 20:广播流量超过接口带宽的 20% 时,对超出部分丢弃(简单直接)。storm-control broadcast min-rate 100 max-rate 1000:低于 min-rate 不动作,高于 max-rate 触发动作,中间区间按配置处理(更精细)。
⚠ 版本差异:broadcast-suppression 的单位在部分型号上是百分比(1~100,如 broadcast-suppression 20),在部分型号上是 pps(如 broadcast-suppression pps 1000);storm-control 的参数集合也因型号而异。配置前必须用 broadcast-suppression ? 确认单位——本意是「20%」却填进了 pps 参数位,会变成「20 个包/秒」,把正常流量一起干掉。
ARP 防欺骗入门。ARP 欺骗的原理:攻击者向全网广播「我是网关,我的 MAC 是 XXX」,终端收到后更新 ARP 表,把流量发给攻击者。防御有三层:
| 层次 | 手段 | 效果 |
|---|---|---|
| 终端侧 | 静态 ARP 绑定网关 | 最直接但不便管理 |
| 网关侧 | 静态 ARP 绑定关键服务器、免费 ARP 冲突检测 | 中等 |
| 接入侧 | DHCP Snooping + ARP 检查/ARP Detection | 最系统 |
接入侧的做法就是:交换机持有一张「MAC-IP-接口」的合法绑定表(来自 DHCP Snooping 或静态 user-bind),收到 ARP 报文时检查其中的 IP-MAC 是否与绑定表一致,不一致就丢弃。华为命令是 arp anti-attack check user-bind enable(配合 dhcp snooping enable 或 user-bind static),H3C 是 arp detection enable(VLAN 视图)+ arp detection trust(信任接口)+ arp detection validate(报文有效性检查)。本章只做入门,第 8.3 节讲 H3C 配置,深层机制在安全篇继续。
9.3 H3C 设备配置详解
9.3.1 命令行基础速览
| 命令 | 在哪敲 | 干什么 |
|---|---|---|
display mac-address |
任意视图 | 看 MAC 表 |
mac-address static MAC interface 接口 vlan N |
系统视图 | 静态 MAC |
mac-address blackhole MAC vlan N |
系统视图 | 黑洞 MAC |
mac-address timer aging 300 |
系统视图 | 老化时间(秒) |
mac-address max-mac-count N |
接口视图 | 最大学习数 |
port-security enable |
系统视图 | 开启端口安全 |
port-security max-mac-count N |
接口视图 | 最大安全 MAC 数 |
port-security port-mode autolearn |
接口视图 | 端口安全模式 |
port-isolate group N |
系统视图 | 创建隔离组 |
port-isolate enable group N |
接口视图 | 加入隔离组 |
broadcast-suppression pps N |
接口视图 | 广播抑制 |
arp detection enable |
VLAN 视图 | ARP Detection |
arp detection trust |
接口视图 | ARP 信任接口 |
9.3.2 完整配置模板
同样的接入层安全加固,H3C 侧的完整配置如下,注意端口安全的「模式」模型与华为不同:
# H3C 接入交换机
system-view
sysname ACC-SW1
vlan 10
quit
vlan 20
quit
# ===== 一、MAC 表管理 =====
# 静态 MAC(注意 interface 关键字)
mac-address static 00e0-fc12-3456 interface GigabitEthernet1/0/1 vlan 10
# 黑洞 MAC
mac-address blackhole 00e0-fc12-3457 vlan 10
# 老化时间(单位秒)
mac-address timer aging 300
# 限制接口最大学习 MAC 数
interface GigabitEthernet1/0/1
mac-address max-mac-count 4
quit
# ===== 二、端口安全 =====
port-security enable
interface GigabitEthernet1/0/1
description DESK-3F-01
port link-type access
port access vlan 10
# 必须在设置模式前先设最大数(autoLearn 模式下不能再改)
port-security max-mac-count 2
port-security port-mode autolearn
quit
# ===== 三、端口隔离(H3C 需先建组)=====
port-isolate group 1
interface GigabitEthernet1/0/5
description HOTEL-ROOM-501
port link-type access
port access vlan 20
port-isolate enable group 1
quit
interface GigabitEthernet1/0/6
description HOTEL-ROOM-502
port link-type access
port access vlan 20
port-isolate enable group 1
quit
# ===== 四、广播抑制(H3C 常用 pps 单位)=====
interface GigabitEthernet1/0/1
broadcast-suppression pps 1000
multicast-suppression pps 1000
unicast-suppression pps 1000
quit
quit
save force
H3C 的 ARP Detection(ARP 防欺骗):
# H3C:ARP Detection(在 VLAN 视图开启)
vlan 10
arp detection enable
quit
# 上联口设为 ARP 信任接口(不检查)
interface GigabitEthernet1/0/24
arp detection trust
quit
# 开启 ARP 报文有效性检查(源/目的 MAC 与 IP 合法性)
arp detection validate src-mac dst-mac ip
# 前提:需要 DHCP Snooping 绑定表或静态绑定作为判断依据
dhcp snooping enable
9.3.3 逐行讲解
| H3C 命令 | 对应华为 | 差异要点 |
|---|---|---|
mac-address static MAC interface 接口 vlan N |
mac-address static MAC 接口 vlan N |
H3C 多 interface 关键字 |
mac-address blackhole MAC vlan N |
相同 | 相同 |
mac-address timer aging 300 |
mac-address aging-time 300 |
名字不同(timer aging vs aging-time) |
mac-address max-mac-count N |
mac-address max-mac-count N |
相同 |
port-security max-mac-count N |
port-security max-mac-num N |
count vs num |
port-security port-mode autolearn |
port-security mac-address sticky |
模型完全不同 |
port-isolate group N(先建组) |
无(直接 enable group N) |
H3C 要先建组 |
port-isolate enable group N |
port-isolate enable group N |
相同(但 H3C 需先建组) |
broadcast-suppression pps N |
broadcast-suppression N(百分比) |
单位不同 |
unicast-suppression pps 1000 |
unicast-suppression 20(%) |
未知单播抑制,命令名相同但单位不同(华为百分比,H3C 用 pps) |
arp detection enable(VLAN) |
arp anti-attack check user-bind enable |
完全不同 |
arp detection trust |
无直接对应 | H3C 特有 |
H3C 端口安全与华为最大的差异是「模式(port-mode)」这个抽象。H3C 把端口安全分成两大类:控制 MAC 学习类(无需认证)和认证类(借用 802.1X / MAC 地址认证)。常见的模式如下(依据官方端口安全配置指导):
| 模式 | 类别 | 含义 | 用途 |
|---|---|---|---|
noRestrictions |
— | 安全功能关闭(缺省值) | 未启用端口安全 |
autoLearn |
控制 MAC 学习 | 自动学习 MAC 并转为安全 MAC,超过上限后自动转为 secure 模式 |
最常用,功能上对应华为的「限数量 + sticky」 |
secure |
控制 MAC 学习 | 禁止学习,只放行已配置的安全 MAC | 极端锁定场景 |
userLogin |
802.1X | 端口级 802.1X,首个用户认证通过后其他用户免认证 | 少量固定终端 |
userLoginSecure |
802.1X | 基于 MAC 的 802.1X,端口只允许 1 个用户 | 单终端口 |
macAddressWithRadius |
MAC 认证 | 基于 MAC 地址认证,允许多用户 | 打印机、IoT |
macAddressElseUserLoginSecure |
组合认证 | 先 MAC 认证,失败再 802.1X | 混合场景 |
有三个必须记住的坑:
坑一:port-mode 只接受 autolearn 这一个关键字(命令形式是 port-security port-mode autolearn),其余认证类模式并不是在 port-security port-mode 后面敲对应的名字,而是要通过 port-security port-mode 之外的相关命令组合(如 802.1X、MAC 认证的使能命令)来实现。这一点与很多网上教程写的「port-security port-mode userlogin-secure」不一致,请以自己型号的命令参考为准。
坑二:先设上限、再切模式。必须先用 port-security max-mac-count N 设好上限,再切 port-mode autolearn;切进 autoLearn 后就改不了这个上限,要改必须先用 undo port-security port-mode 退回 noRestrictions。
坑三:autoLearn 与 MAC 表限制命令互斥。port-security max-mac-count 不能与 mac-address max-mac-count 同时配(旧版手册明确禁止),两个都配会互相打架。
至于「超过上限后怎么处置」,H3C 不是用华为那种 protect-action,而是用入侵检测(Intrusion Protection):
| 处置 | H3C 命令 | 效果 |
|---|---|---|
| 丢弃并记录非法源 MAC | port-security intrusion-mode blockmac |
源 MAC 进阻塞列表(缺省 180 秒) |
| 永久关闭端口 | port-security intrusion-mode disableport |
需人工恢复 |
| 暂时关闭端口 | port-security intrusion-mode disableport-temporarily |
关闭时长由 port-security timer disableport 设(缺省 20 秒) |
⚠ 版本/型号差异:上面这些模式名来自官方端口安全配置指导;而某些较新版本的命令参考里,port-security port-mode 一节只列出 autolearn 一个参数(并将其余模式标为「暂不支持」),说明部分型号/版本确实只支持 autoLearn。配置前务必在你的型号上敲 port-security port-mode ? 看实际支持哪些关键字。
H3C 的端口隔离要先建组:port-isolate group 1(系统视图)创建组 1,然后接口下 port-isolate enable group 1 加入。华为没有「建组」这一步,直接 port-isolate enable group 1 即可(组号自动存在)。H3C 的隔离组号范围是 1~8(port-isolate group group-id 的 group-id 取值 1~8),规划隔离组时要注意这个上限。
H3C 的广播抑制常用 pps 单位:broadcast-suppression pps 1000 表示每秒 1000 个包;不带 pps 的 broadcast-suppression 20 则表示百分比 20%。两家单位写法不同是最大的抄配置陷阱:把华为的 broadcast-suppression 20(20%)抄到 H3C 上,含义碰巧相同(也是百分比);但在 H3C 上想写「每秒 1000 包」却漏了 pps 关键字写成 broadcast-suppression 1000,就会被当成 1000% 这种非法或越界值而被拒绝/截断,抑制等于没生效。抄配置前先看清楚有没有 pps 这个词。
H3C 的 ARP Detection 是「VLAN 级」的:arp detection enable 在 VLAN 视图下开,意味着这个 VLAN 内所有口的 ARP 都要检查,除了 arp detection trust 标记的接口。它的判断依据是 DHCP Snooping 绑定表或静态绑定表。这个模型与华为的 arp anti-attack check user-bind enable 是等价的。
arp detection validate 是另一层:它检查 ARP 报文的合法性(源 MAC 与以太网头一致、目的 MAC 不是全 0/全 1、IP 不是组播等),不依赖绑定表。两者可以叠加使用。
MAC 表容量与攻击面
理解 MAC 表「满」的后果,是理解这一章价值的关键。假设一台接入交换机的 MAC 表容量是 8K 条,正常情况下只用了 200 条(这台交换机下挂 200 个终端)。如果攻击者用工具每秒伪造上万个不同的源 MAC 发包:
时刻 0:表里有 200 条正常表项
时刻 1:攻击者发包,表里变成 8200 条(满了)
时刻 2:新终端上线,交换机学不到它的 MAC
→ 所有发给这个终端的流量变成「未知单播泛洪」
→ 泛洪到所有端口,网络性能骤降
时刻 3:交换机的 CPU 为了处理海量学习请求和泛洪而升高
→ 全网卡顿,甚至控制面协议(STP/OSPF)也跟着超时
这类攻击叫 MAC 泛洪攻击(MAC Flooding),是最古老的二层攻击之一,至今依然有效,因为很多接入交换机对 MAC 数量默认不限制。
防御三板斧:
| 手段 | 命令 | 效果 |
|---|---|---|
| 限制单口 MAC 数 | 华为 port-security max-mac-num N / H3C mac-address max-mac-count N |
一个口最多学 N 个,攻击口很快被打满后不再学习,其他口不受影响 |
| 端口安全动作 | restrict / shutdown |
超限后告警或关端口 |
| 全局 MAC 表容量保护 | 视型号(部分型号支持 mac-address learning priority 或告警阈值) |
表满时告警 |
一个口限 1~3 个 MAC 是最有效的防线。因为正常工位上一个口最多接一台 PC(或者 PC + 话机,2 个 MAC),设定 3 个上限不会误伤,但攻击者一伪造就立刻超限。这就是为什么接入层的端口安全配置是所有安全基线里必配的一项。
静态 MAC 与端口安全的关系:别搞混
初学者经常把这两件事混为一谈,其实它们解决的是不同问题:
| 对比项 | 静态 MAC | 端口安全(sticky) |
|---|---|---|
| 配置对象 | 某个 MAC 地址 | 某个接口 |
| 管的是「谁」 | 这个 MAC 从哪来 | 这个口能接几个 MAC |
| 换设备的影响 | 不影响(新设备用自己的 MAC) | 影响(口被锁在旧 MAC 上) |
| 能否防伪造 | 部分(流量仍按绑定口走,伪造者的流量被送走) | 能(新 MAC 上不了) |
| 维护成本 | 每条 MAC 手工配 | 一次配置、自动学习 |
正确的组合方式是:关键服务器配静态 MAC + 服务器口配端口安全(max=1,shutdown);普通办公口只配端口安全(max=2~3,restrict),不配静态 MAC(因为员工会换机器)。
端口隔离与 PVLAN 的区别
端口隔离(Port Isolation)是「按接口做隔离」,配置简单、粒度是接口。而 Private VLAN(H3C 叫私有 VLAN)/ MUX VLAN(华为)是「在 VLAN 内部再做子划分」,粒度是 VLAN,功能更强但配置复杂。
| 对比项 | 端口隔离 | Private VLAN / MUX VLAN |
|---|---|---|
| 隔离粒度 | 接口 | VLAN 子域 |
| 支持跨设备 | 否(只在本设备内) | 是(需要全网支持) |
| 复杂度 | 低 | 高 |
| 典型场景 | 酒店房间、宿舍、会议室 | 运营商、大型园区 |
本章只需掌握端口隔离。听到「隔离组」时,先确认说的是端口隔离的 group,还是 MUX VLAN 的主/从 VLAN——两者名字相似,但完全不是一个东西。
ARP 欺骗的原理与防御推理
ARP 是「无状态、无认证」的协议:谁问「谁是 192.168.10.1」,谁回答「我是,我的 MAC 是 XXX」,问的人就信了。攻击者只要不停地广播「我是网关」,全网的终端就会把网关的 MAC 改成攻击者的 MAC,于是所有外网流量都经过攻击者——这就是「ARP 中间人攻击」。
防御的本质是「给 ARP 加一层可信来源校验」:
ARP 报文的 IP-MAC 组合
│
▼
┌────────────────────┐
│ 是否与绑定表一致? │ ← 绑定表来自 DHCP Snooping 或静态配置
└─────────┬──────────┘
一致 │ 不一致
▼ ▼
正常转发 丢弃 + 告警
这就解释了为什么 ARP 防欺骗一定要先有绑定表。没有绑定表,交换机无从判断谁真谁假,只能靠终端侧的静态 ARP 绑定兜底。
在工程上的落地顺序是:
- 接入交换机开 DHCP Snooping(生成绑定表)。
- 上联口设 Snooping 信任口。
- 开启 ARP 检查(华为
arp anti-attack check user-bind enable,H3Carp detection enable)。 - 上联/网关口设为 ARP 信任接口(H3C
arp detection trust)。 - 网关设备上配静态 ARP 绑定关键服务器。
一份可落地的「接入层安全基线」
把本章所有功能组合成一份可以直接抄进项目文档的基线清单:
| 序号 | 配置项 | 华为命令 | H3C 命令 | 目的 |
|---|---|---|---|---|
| 1 | 关闭未使用端口 | 接口下 shutdown |
同 | 防误接入 |
| 2 | 端口安全限数 | port-security max-mac-num 3 |
port-security max-mac-count 3 |
防 MAC 泛洪 |
| 3 | 保护动作 | port-security protect-action restrict |
port-security port-mode autolearn |
超限告警 |
| 4 | 边缘端口 | stp edged-port enable |
stp edged-port |
快速接入(第 4 章) |
| 5 | BPDU 保护 | stp bpdu-protection |
stp bpdu-protection |
防私接交换机 |
| 6 | DHCP Snooping | dhcp snooping enable + 上联 trusted |
dhcp snooping enable + 上联 trust |
防私接 DHCP |
| 7 | 广播抑制 | broadcast-suppression 20 |
broadcast-suppression pps 1000 |
防风暴 |
| 8 | 端口隔离(按需) | port-isolate enable group 1 |
port-isolate group 1 + enable group 1 |
终端间隔离 |
| 9 | ARP 检查 | arp anti-attack check user-bind enable |
arp detection enable |
防 ARP 欺骗 |
| 10 | 管理面加固 | SSH + ACL + 日志 | 同 | 第 1 章 |
这份清单看起来长,但实际部署时可以用脚本批量下发。接入层安全的价值不在于「防住高级黑客」,而在于把 90% 的低成本攻击(私接路由器、MAC 泛洪、ARP 欺骗、广播风暴)挡在门外,让运维把精力放在真正复杂的问题上。
9.4 华为 / H3C 命令对照表
| 功能 | 华为(VRP) | H3C(Comware V7) | 差异说明 |
|---|---|---|---|
| 看 MAC 表 | display mac-address |
display mac-address |
相同 |
| 按 VLAN 看 | display mac-address vlan 10 |
display mac-address vlan 10 |
相同 |
| 静态 MAC | mac-address static MAC 接口 vlan N |
mac-address static MAC interface 接口 vlan N |
H3C 多 interface |
| 黑洞 MAC | mac-address blackhole MAC vlan N |
mac-address blackhole MAC vlan N |
相同 |
| 老化时间 | mac-address aging-time 300 |
mac-address timer aging 300 |
命令名不同 |
| 最大学习数 | mac-address max-mac-count N |
mac-address max-mac-count N |
相同 |
| 开端口安全 | port-security enable |
port-security enable |
相同 |
| 最大安全数 | port-security max-mac-num N |
port-security max-mac-count N |
num vs count |
| 粘滞学习 | port-security mac-address sticky |
port-security port-mode autolearn |
模型不同 |
| 保护动作 | port-security protect-action restrict |
由 intrusion-mode 控制 |
命令不同 |
| 隔离组 | port-isolate enable group N |
port-isolate group N + port-isolate enable group N |
H3C 要先建组 |
| 广播抑制 | broadcast-suppression 20(%) |
broadcast-suppression pps 1000 |
单位可能不同 |
| 组播抑制 | multicast-suppression 20 |
multicast-suppression pps 1000 |
同上 |
| 未知单播抑制 | unicast-suppression 20(%) |
unicast-suppression pps 1000 |
命令名相同,单位写法不同(华为百分比,H3C 用 pps) |
| ARP 检查 | arp anti-attack check user-bind enable |
arp detection enable(VLAN) |
完全不同 |
| ARP 信任口 | 无 | arp detection trust |
H3C 特有 |
| 看端口安全 | display port-security |
display port-security interface |
命令不同 |
| 看隔离组 | display port-isolate group |
display port-isolate group |
相同 |
端口安全的「粘滞 MAC」怎么落地运维
粘滞学习是把接口和终端锁死的最简单办法,但它的运维流程必须提前想清楚,否则会出现「换台电脑就叫运维跑现场」的窘境。
标准的粘滞 MAC 运维流程:
[1] 接口开启 sticky,终端首次接入
|
[2] 交换机学到 MAC,写入安全 MAC 表(部分版本还会写进配置)
|
[3] 该口此后只允许这个 MAC
|
[4] 换设备 / 维修 / 报废?——需要人工处理
|
[5] 清理方式:
- 华为:undo port-security mac-address sticky(接口下),
或清除该口的安全 MAC 后重新学习
- H3C :先切回 port-security port-mode noRestrictions,
再改配置,或在对应视图清除安全 MAC
|
[6] 新设备接入,重新学习
工程上有三条经验:
- 不要在所有办公口都开 sticky。员工的电脑会换、会带来访客,sticky 会让每次换机都变成一次工单。只在「设备固定、位置固定」的口上开。
- 配合端口安全动作使用。只开 sticky 不开保护动作,超限时的行为不确定;建议 sticky +
restrict组合。 - 记录安全 MAC 表。定期导出
display mac-address security,和资产管理系统的设备台账对一遍,能发现「未登记的私接设备」。
风暴抑制阈值的设定方法
广播抑制的阈值不能拍脑袋,要按场景估算。方法如下:
第一步:测正常值。在正常业务时段,看接口的实际广播速率:
# 华为:看接口的广播流量统计
<HUAWEI> display interface GigabitEthernet0/0/1
# 关注 Output/Input 中的 broadcast 计数与速率
第二步:按正常值的 3~5 倍设阈值。如果正常广播约 200 pps,阈值可以设 1000 pps。这样既不会误伤,又能拦住每秒上万包的攻击。
第三步:留出增长余量。新业务上线、终端增多都会让广播上升,阈值不能贴着当前值设。
不同场景的参考范围:
| 场景 | 广播速率参考 | 建议阈值 |
|---|---|---|
| 办公接入口(单终端) | 几十 pps | 1000 pps |
| 汇聚/上联口 | 数千 pps | 10000 pps |
| AP 接入 VLAN(无线) | 较高(组播/广播多) | 放宽或改用组播抑制 |
| 服务器口 | 极低 | 500 pps |
⚠ 无线网络的广播/组播值得单独说:AP 的广播、组播报文会被复制到每个无线终端,速率天然较高。在 AP 接入的口上做过于严格的广播抑制,会导致无线用户掉线。这类口的抑制阈值要么放宽,要么改用「组播转单播」等无线侧优化(第 22 章)。
9.5 配置验证
第一步:看 MAC 表本身。
<HUAWEI> display mac-address
正常输出:
MAC Address VLAN/VSI/BD Learned-From Type
------------------------------------------------------------
00e0-fc12-3456 10/-/- GE0/0/1 static
00e0-fc12-3457 10/-/- - blackhole
00e0-fc12-3465 10/-/- GE0/0/2 dynamic
00e0-fc12-3466 20/-/- GE0/0/5 dynamic
读法:Type 列 dynamic 是学来的、static 是手工配的、blackhole 是黑洞;Learned-From 是学到的接口;VLAN 是所属 VLAN。如果某台终端在表里查不到,说明交换机没有从它那里学到 MAC——问题在二层(接口、VLAN、链路)。
# 查某个具体 MAC
<HUAWEI> display mac-address 00e0-fc12-3465
# 查某个 VLAN 的所有 MAC
<HUAWEI> display mac-address vlan 10
# 查表容量
<HUAWEI> display mac-address summary
第二步:看端口安全状态。
<HUAWEI> display port-security
正常输出(节选):
Port security is enabled
...
Interface MaxMacNum CurrentMacNum ProtectAction
GigabitEthernet0/0/1 2 2 restrict
CurrentMacNum 达到 MaxMacNum 说明这个口已经满了——再来的新 MAC 会被按照 ProtectAction 处理。如果你看到某台终端上不了网,而它所在口的 CurrentMacNum 已经满了,那就是端口安全在拦截。
# 看安全 MAC 表(粘滞学习后的固定 MAC)
<HUAWEI> display mac-address security
第三步:看隔离组。
<HUAWEI> display port-isolate group
正常输出:
Port-isolate group 1
GigabitEthernet0/0/5
GigabitEthernet0/0/6
验证隔离效果:从 501 房间访问 502 房间应该不通,但两个房间都能访问上联口(网关)。如果 501 能 ping 通 502,说明隔离没生效——检查两个口是不是真的都在组 1 里、以及是否存在其他路径(比如都能走到核心再回来,那就是三层路径,需要用 port-isolate mode all 或者在核心上做 ACL)。
第四步:验证广播抑制。
# 华为:看接口风暴控制状态
<HUAWEI> display storm-control interface GigabitEthernet0/0/1
或者直接看接口计数是否在丢包:
<HUAWEI> display interface GigabitEthernet0/0/1
# 关注 broadcast 相关计数与 drops
第五步:验证 ARP 防欺骗。
# 华为:看用户绑定表
<HUAWEI> display user-bind all
# 触发一次 ARP 欺骗测试(在测试机上伪造网关 MAC),
# 看交换机日志是否记录丢弃,以及终端 ARP 表是否被污染
<HUAWEI> display logbuffer | include ARP
H3C 的验证命令:
<H3C> display mac-address
<H3C> display mac-address static
<H3C> display mac-address blackhole
<H3C> display port-security
<H3C> display port-security interface GigabitEthernet1/0/1
<H3C> display port-isolate group
<H3C> display arp detection statistics
H3C display port-security interface 输出(从官方文档摘录的字段格式):
Port mode : autoLearn
NeedToKnow mode : Disabled
Intrusion protection mode : DisablePortTemporarily
Security MAC address attribute
Learning mode : Sticky
Aging type : Periodical
Max secure MAC addresses : 64
Current secure MAC addresses : 0
Port mode 是 autoLearn 说明模式配对了;Max secure MAC addresses 与 Current 显示上限与当前数量。
9.6 排错与故障树
| 症状 | 可能原因 | 排查命令 | 定位方法 |
|---|---|---|---|
| 终端换了机器后上不了网 | 粘滞 MAC 学习了旧终端 | display mac-address security |
清除旧安全 MAC 或关闭 sticky |
| 某个口插新设备不通 | 端口安全 max 已满 | display port-security |
看 CurrentMacNum |
| 端口被 error-down | protect-action shutdown 触发 |
display interface、日志 |
清理安全 MAC 或 undo shutdown |
| MAC 表项找不到终端 | 链路/VLAN 问题 | display mac-address vlan 10 |
回到第 3 章二层排查 |
| MAC 表项频繁跳口 | 环路 / 攻击 | display mac-address 看同一 MAC 多个口 |
查 STP、查攻击源 |
| MAC 表打满、新终端不上网 | MAC 泛洪攻击 / 端口安全未限数 | display mac-address summary |
加 max-mac-count,查攻击口 |
| 同 VLAN 终端互相不通 | 端口隔离 | display port-isolate group |
确认是否误加隔离组 |
| 隔离后终端上不了网 | 隔离组把上联口也包含了 | display port-isolate group |
上联口不能加入隔离组 |
| 广播一多全网慢 | 无风暴抑制 | display interface 看广播速率 |
配 broadcast-suppression |
| 配了抑制反而正常流量被丢 | 单位搞错(pps vs %) | display current-configuration interface |
确认单位,调整阈值 |
| ARP 表里网关 MAC 异常 | ARP 欺骗 | 终端 arp -a、交换机日志 |
开 ARP 检查/DHCP Snooping |
| 静态 MAC 配了不生效 | VLAN 不对 / 接口不支持 | display mac-address static |
核对 VLAN 与接口 |
故障树(「终端上不了网」,只看本章相关部分):
终端上不了网(本章相关分支)
|
+-- MAC 表里能学到这个终端吗?(display mac-address vlan N)
| +-- 学不到 -> 二层问题,转第 3 章
| +-- 学到了 -> 继续
|
+-- 端口安全是否拦截了?(display port-security)
| +-- max 已满 -> 清理/上调 max
| +-- protect-action shutdown -> 接口 error-down
|
+-- 是否有粘滞 MAC 不匹配?(display mac-address security)
| +-- 是 -> 清掉旧安全 MAC
|
+-- 是否被端口隔离误伤?(display port-isolate group)
| +-- 是 -> 移出隔离组
|
+-- ARP 是否被欺骗过滤?(display user-bind all / 日志)
+-- 绑定表不匹配 -> 修正绑定表
9.7 新手踩坑与注意事项
- 端口安全动作用了
shutdown却不配自动恢复——症状:一次误触发把整个口关了,值班员要跑现场;怎么避:配error-down auto-recovery,或接入层改用restrict。 - 粘滞 MAC 学了旧设备——症状:换电脑后接口不通;怎么避:换设备时清理安全 MAC,或改用认证而非粘滞。
- 静态 MAC 忘了带 VLAN——症状:配了不生效;怎么避:静态 MAC 一定是「MAC + 接口 + VLAN」三元组。
broadcast-suppression单位搞错——症状:正常业务被抑制或抑制完全不生效;怎么避:配置前用?确认是百分比还是 pps。- H3C 端口安全先切模式后设上限——症状:
max-mac-count改不了;怎么避:先设上限,再切port-mode autolearn。 - 隔离组把上联口也加了——症状:全网不同;怎么避:只把用户口加入隔离组。
- 以为端口隔离能防三层通信——症状:隔离后终端还是能通过网关互访;怎么避:华为用
port-isolate mode all,或在上层用 ACL。 - MAC 表满不处理——症状:网络间歇性变慢;怎么避:配
max-mac-count限流 + 查攻击源 + 考虑黑洞 MAC 阻断。 - 黑洞 MAC 加错了导致正常终端不通——症状:某个终端彻底不通;怎么避:加黑洞 MAC 前确认这个 MAC 是攻击源。
- ARP 防欺骗只开了交换机侧没开 DNCP Snooping——症状:绑定表为空,检查不生效;怎么避:ARP 检查依赖绑定表,必须先有 Snooping 或静态绑定。
- MAC 老化时间调太短——症状:网络泛洪增多、性能下降;怎么避:一般保持缺省 300 秒,除非有特殊需要。
- 端口安全与 STP 边缘端口冲突——症状:端口反复上下;怎么避:理解端口安全触发的接口关闭与 STP 的交互,必要时调整处置动作。
9.8 本章小结
本章是 Part A 基础篇的收官章,它把前面几章的能力串联成「接入侧安全基线」:
- MAC 表是交换机的门牌号簿,靠源自学习,分动态/静态/黑洞三类,缺省老化 300 秒。
- MAC 表有软肋:可被伪造、有容量上限、默认无限制——这三条正是端口安全存在的原因。
- 端口安全三参数:最大 MAC 数(
max-mac-numvsmax-mac-count)、保护动作(protect/restrict/shutdown)、粘滞学习(华为stickyvs H3Cport-mode autolearn)。 - 端口隔离:同 VLAN 内终端互不可见;H3C 要先
port-isolate group建组,组号上限 8。 - 风暴抑制:给广播/组播/未知单播设上限,防一台故障设备打瘫全网;注意 pps 与百分比两种单位。
- ARP 防欺骗:底层靠 DHCP Snooping/静态绑定表,接入侧做 MAC-IP 检查(华为
arp anti-attack check user-bind,H3Carp detection)。 - 两家最容易抄错的地方:
max-mac-numvsmax-mac-count、aging-timevstimer aging、抑制单位、隔离组是否需要先建。
自测题
- 一台交换机 MAC 表里出现同一个 MAC 在两个不同端口之间「跳来跳去」,可能是什么原因?
- 端口安全的
restrict和shutdown两种保护动作有什么区别?各自适合什么场景? - 端口隔离为什么不能阻止两个终端通过三层互通?要怎么才能真正隔离三层?
- 华为的
broadcast-suppression 20和 H3C 的broadcast-suppression pps 1000含义分别是什么? - ARP 防欺骗为什么依赖 DHCP Snooping 绑定表?如果网络里全是手工配置 IP、没有 DHCP,还能用吗?
- 最常见的原因是二层环路:同一条帧从不同路径被反复学到,MAC 表在老化和重新学习之间摆动。次要原因是MAC 欺骗攻击(有人在伪造 MAC)、或者链路频繁抖动(端口 up/down 导致重新学习)。排查:先看 STP 状态与端口 up/down 日志,再抓包看是否有重复帧,最后查是否有攻击。
restrict:超限后丢弃新 MAC 的报文并产生告警,接口保持 up。适合接入层(用户能感知到告警,但不至于全网断)。shutdown:超限后直接把接口置为 error-down,彻底断开攻击源。适合服务器口或安全要求高的点位,配合error-down auto-recovery使用以避免长期断网。- 端口隔离只在二层生效:两个终端虽然二层不通,但它们都会把跨网段流量发给网关,网关做三层转发后就能互通。要真正隔离三层,一是华为的
port-isolate mode all(隔离三层),二是在网关/核心上做 ACL 限制网段之间的互访。 - 华为的
broadcast-suppression 20表示「广播流量超过端口带宽的 20% 时开始抑制」(百分比)。H3C 的broadcast-suppression pps 1000表示「每秒广播包数超过 1000 时开始抑制」(pps = packets per second)。需要注意两家也支持彼此的单位形式,必须以?帮助为准。 - 因为 ARP 检查的本质是「拿 ARP 报文里的 IP-MAC 去和一张合法绑定表比对」,这张表的来源有两类:DHCP Snooping 动态生成(终端通过 DHCP 拿地址时记录 MAC-IP-接口),或管理员手工
user-bind static配置。没有 DHCP 时仍然可用,但需要手工维护绑定表(工作量大),因此纯手工 IP 的网络通常改用「终端侧静态 ARP + 网关侧静态 ARP 绑定」的轻量方案。
关于本书:《华为 / H3C 网络设备典型功能配置详解》—— 面向国内高校/企业网络环境, 华为 VRP 与 H3C Comware 双厂商并排配置的实操教材,共 43 章。 全书所有命令尽量有官方出处,查不到的显式标注「待核实」。 返回系列目录
本人保留对侵权者及其全家发动因果律武器的权利
版权提醒
如无特殊申明,本站所有文章均是本人原创。转载请务必附上原文链接:https://www.elliot98.top/post/huawei-h3c-book/09/。
如有其它需要,请邮件联系!版权所有,违者必究!