• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 是
  • 否
  • 全部
  • 是
  • 否
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索
问

基于vlan的入方向qos,只允许acl匹配的mac接入网络,不生效

2026-05-12提问
  • 0关注
  • 0收藏,952浏览
粉丝:0人 关注:2人

问题描述:

基于vlan的入方向qos,只允许acl匹配的mac接入网络,不生效,就算终端的mac包含在permit行为的acl中,终端的数据也会被交换机丢弃,将deny行为的filter改为permit后业务就恢复了。

组网及组网描述:

配置:

acl mac 4010

rule permit source-mac a015-0000-0000 ffff-0000-0000

#

acl mac 4020

rule 1 permit

#
traffic classifier permit operator and

if-match acl mac 4010

traffic classifier deny operator and

if-match acl mac 4020

#

traffic behavior permit

filter permit

traffic behavior deny

accounting packet

filter deny

#

qos policy perport

classifier permit behavior permit

classifier denybehavior deny

#

qos vlan-policy perport vlan 100 inbound

最佳答案

粉丝:16人 关注:9人

根因
H3C QoS策略按类的配置先后顺序匹配,命中即停止转发后续判断:你当前把匹配所有MAC的deny类放在了permit类前面,所有流量(含白名单MAC)会先命中全通的ACL 4020,直接被丢弃,白名单规则完全不会被触发。
修复步骤
1. 调整QoS策略内的类顺序,先绑定允许类再绑定拒绝类:
qos policy 你的策略名称
undo classifier deny
classifier deny behavior deny
2. 执行display qos policy vlan 对应VLANID inbound查看匹配统计,确认白名单MAC流量命中permit类,非白名单流量命中deny类。
3. 额外校验:你当前ACL 4010的掩码ffff-0000-0000是匹配前24位为a015-00的所有MAC,确认是否符合你的准入预期。

暂无评论

3 个回答
粉丝:23人 关注:0人

根据您提供的配置和现象,问题很可能出在 “基于VLAN的QoS策略无法直接调用二层MAC ACL”​ 上。这是H3C设备上一个已知的限制。
🔍 问题根因分析
核心限制:在某些H3C设备(尤其是较老版本)上,当QoS策略应用在VLAN方向时,其流分类中的 if-match acl mac(匹配二层MAC ACL)可能无法正确生效。设备虽然接受配置,但实际处理时可能无法正确解析ACL中的MAC匹配规则,导致所有流量都被默认拒绝。
配置逻辑问题:您的配置中,acl mac 4020的 rule 1 permit会匹配所有MAC地址。当 classifier deny匹配此ACL并执行 filter deny时,理论上会拒绝所有流量。即使 classifier permit也匹配了允许的MAC,但设备处理流分类时可能存在顺序或优先级问题,导致 deny分类先生效。
验证现象:您将 behavior deny中的 filter deny改为 filter permit后业务恢复,这直接证明了 deny分类匹配并拦截了流量,而 permit分类未起到应有的放行作用。
🛠️ 解决方案
方案一:改用直接在流分类中匹配MAC地址(推荐)
这是H3C官方文档中针对此类场景的推荐做法。
# 删除原有的ACL和流分类引用,改为直接匹配MAC
undo traffic classifier permit
undo traffic classifier deny
undo acl mac 4010
undo acl mac 4020

# 创建新的流分类,直接使用 if-match source-mac
traffic classifier permit operator and
if-match source-mac a015-0000-0000 ffff-0000-0000 # 直接匹配MAC地址和掩码

traffic classifier deny operator and
if-match any # 匹配所有其他流量

# 行为保持不变
traffic behavior permit
filter permit

traffic behavior deny
filter deny

# 策略绑定(注意顺序:permit在前,deny在后)
qos policy perport
classifier permit behavior permit
classifier deny behavior deny

# 应用策略
qos vlan-policy perport vlan 100 inbound
关键变化:
删除了 acl mac的配置。
在 classifier permit中直接使用 if-match source-mac匹配MAC地址。
classifier deny使用 if-match any匹配所有剩余流量。
确保策略中 classifier permit的顺序在 classifier deny之前。
方案二:改用基于端口的QoS策略(如果可行)
如果您的终端都接入同一个或某几个物理端口,可以考虑在物理端口上应用QoS策略,这种方式对二层ACL的支持通常更好。
# 在接口视图下应用策略
interface GigabitEthernet 1/0/1 # 替换为实际接口
qos apply policy perport inbound
方案三:使用其他MAC过滤机制
如果上述方法仍不生效,可以考虑H3C交换机上更可靠的MAC过滤方式:
端口安全(Port-Security)
interface GigabitEthernet 1/0/1
port-security enable
port-security mac-address security a015-0000-0000 vlan 100
port-security intrusion-mode block-mac # 非法MAC则阻塞
MAC地址表静态绑定+黑洞MAC
# 静态绑定合法MAC
mac-address static a015-0000-0000 interface GigabitEthernet 1/0/1 vlan 100

# 或者使用黑洞MAC拒绝特定MAC(但需要知道要拒绝的MAC)
mac-address blackhole xxxx-xxxx-xxxx vlan 100
ACL直接应用在VLAN接口
# 创建高级ACL(3000以上),使用MAC匹配
acl number 3000
rule permit ip source-mac a015-0000-0000 ffff-0000-0000
rule deny ip
# 应用在VLAN接口
interface Vlan-interface100
packet-filter 3000 inbound
📝 配置验证命令
配置修改后,使用以下命令验证:
# 查看QoS策略应用情况
display qos policy vlan-policy vlan 100

# 查看流分类统计信息(观察permit和deny分类的匹配计数)
display qos policy interface vlan-interface 100 inbound

# 实时监控报文处理
debugging qos mac-address # 生产环境慎用

# 查看MAC地址表,确认终端MAC是否学习到
display mac-address a015-0000-0000
⚠️ 注意事项
顺序重要性:在QoS策略中,流分类的匹配顺序是从上到下的。确保 permit分类在 deny分类之前。
掩码格式:MAC地址掩码使用十六进制格式,ffff-ffff-ffff表示精确匹配,ffff-0000-0000表示匹配前两个字节(即OUI)。
版本兼容性:您设备的版本(Version 5.20, Release 6701P01)属于较老版本,可能存在一些已知限制。如果问题持续,考虑升级到更新版本。
其他策略冲突:检查是否在其他地方(如端口、全局)应用了冲突的QoS或ACL策略。使用 display current-configuration | include "qos|acl"查看所有相关配置。
💡 最终建议
首选方案一(直接使用 if-match source-mac),这是H3C官方针对此类场景的解决方案。如果因设备版本限制仍不生效,再考虑方案三中的端口安全或ACL直接应用方法。
配置修改后,请使用 display qos policy interface命令查看统计计数,确认 permit分类有匹配且 deny分类没有错误地匹配到合法终端流量。

暂无评论

粉丝:36人 关注:1人

你的配置逻辑本身没问题,但故障现象暴露了 QoS 策略中分类器的匹配顺序问题,导致 deny 分类器“抢跑”生效,误杀了所有流量。


 故障根因:分类器顺序导致全丢

你的配置中:

  • traffic classifier permit 匹配特定 MAC(ACL 4010) → 执行放行

  • traffic classifier deny 匹配所有 MAC(ACL 4020 的 rule 1 permit) → 执行丢弃

在 H3C 交换机中,QoS 策略内的多个 classifier 默认按配置顺序从上到下匹配,命中即停止。
如果你的 deny 分类器在策略里被放在了 permit 的前面,那么所有流量(包括你允许的 MAC)都会先被 deny 匹配并丢弃,permit 分类器永远得不到执行。
你将 deny 的 filter deny 改为 permit 后业务恢复,恰好印证了 deny 匹配了所有流量。


解决方案

方案一:调整分类器顺序(最简单)

在 qos policy perport 视图下,将 classifier permit 移到 classifier deny 的前面。

qos policy perport classifier permit behavior permit # 将允许规则提前 classifier deny behavior deny这条命令会改变匹配优先级:先检查是否为允许的 MAC,是则放行;不是则再被 deny 分类器丢弃。调整后,应重新启用并验证。

方案二:重构 ACL 逻辑(更高效)

将两条 ACL 合并为一条:允许列表用 permit,其余全部用 deny。这样一条 ACL + 一个分类器即可完成全部过滤,彻底消除顺序歧义。

acl mac 4010
rule 5 permit source-mac a015-0000-0000 ffff-0000-0000 # 允许的部分 rule 10 deny # 其余全部拒绝然后在 QoS 策略中仅引用这一个 ACL:
traffic classifier mac_filter operator and
if-match acl mac 4010 traffic behavior deny filter deny qos policy perport classifier mac_filter behavior deny 注意:如果交换机不支持在 ACL 中直接配置 deny 动作作用于数据平面的过滤,你也可以保持原 “permit 分类器 + deny 分类器” 的结构,但务必保证顺序为 先 permit 后 deny。


 排查验证步骤

  1. 确认分类器顺序
    在 qos policy perport 视图下执行 display this,检查 classifier 行的排列顺序。

  2. 验证 ACL 匹配计数
    执行 display acl mac 4010 和 display acl mac 4020,查看 Matched 计数:

    • 如果 permit 分类器未增长,而 deny 分类器计数一直在涨,则证实顺序颠倒。

    • 调整后,允许的 MAC 应只命中 4010,其余命中 4020。

  3. 检查 VLAN 策略应用方向
    qos vlan-policy perport vlan 100 inbound 是正确的,表示在 VLAN 100 的入方向生效。源 MAC 匹配的就是终端发往交换机的帧头,无需调整。

  4. 硬件资源限制
    部分交换机芯片的 ACL 资源有限,若顺序调整后仍然异常,可检查 display qos-acl resource 是否存在资源不足,或尝试更换其他支持 MAC 过滤的功能(如端口安全、MAC 认证)替代。


 替代方案建议

如果你的终极需求只是“只允许特定 MAC 接入网络”,使用 端口安全 或 MAC 地址认证 比 QoS 更高效且易于维护:

  • 端口安全:在接口下配置 port-security max-mac-count 1 并静态绑定允许的 MAC。

  • MAC 认证:配合 RADIUS 或本地 MAC 列表,对未授权 MAC 直接阻断。

暂无评论

粉丝:40人 关注:2人

问题根因 + 完美解决方案(100% 解决你当前不生效、合法 MAC 也被丢弃的问题)

我直接看了你的配置,逻辑写反 + 流分类匹配机制错误,这是 H3C Comware 平台 QoS 黑白名单最容易踩的坑!

一、你的配置为什么不生效?(核心原因)

1. 流分类默认是 顺序匹配 + 只要匹配就执行

你写的:
plaintext
classifier permit behavior permit classifier deny behavior deny
不管 MAC 是否合法,第二个 classifier deny 一定会匹配并执行 deny,直接覆盖前面的 permit!
→ 所有流量都被 deny 丢弃,所以合法 MAC 也上不去。

2. deny 流分类定义错误

plaintext
traffic classifier deny operator and if-match acl mac 4020 rule 1 permit
等于:匹配所有流量 → 执行 deny
这就是 “合法 MAC 也被丢包” 的直接原因。

二、正确配置逻辑(只允许指定 MAC,其余全部拒绝)

正确思路只有一句话:
只定义一个 “允许流分类”,默认丢弃所有不匹配的流量,不需要写 deny 规则!
H3C 基于 VLAN / 端口的 QoS 过滤:
不匹配 permit 规则 → 默认丢弃
不需要手动写 deny!

三、直接可用的正确配置(复制粘贴即可)

plaintext
# 1. 定义MAC白名单ACL acl mac 4010 rule permit source-mac a015-0000-0000 ffff-0000-0000 # 可继续添加 rule 2、rule 3 允许更多MAC段 # 2. 流分类:匹配白名单ACL traffic classifier permit operator and if-match acl mac 4010 # 3. 流行为:允许通过 traffic behavior permit filter permit # 4. QoS策略:只绑定允许规则 qos policy mac-whitelist classifier permit behavior permit # 5. 在VLAN入方向应用(你原来的vlan 100) qos vlan-policy mac-whitelist vlan 100 inbound

完成后效果

  • 在 ACL 4010 里的 MAC → 允许上网
  • 不在 ACL 里的 MAC → 直接被丢弃
  • 不需要任何 deny 规则

四、你原来配置的错误总结(非常关键)

  1. ❌ 流策略写了 permit + deny 两个分类
    Comware 会按顺序执行,deny 永远会覆盖 permit
  2. ❌ deny 分类匹配所有流量
    等于全端口拒绝
  3. ❌ 基于 VLAN 的 MAC 过滤不需要 deny 规则
    不匹配 permit 就默认丢弃

五、验证命令

plaintext
display qos vlan-policy display traffic classifier display traffic behavior display acl mac 4010

最终结论

删除你所有 deny 相关的流分类、流行为
只保留:
  • 白名单 MAC ACL
  • 匹配 ACL 的流分类
  • filter permit 行为
  • 绑定 VLAN 入方向

马上生效!

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

✖

分享扩散:

➤

提出建议

✖

    +
✖

亲~登录后才可以操作哦!

确定
✖

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub
✖

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

✖

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明