设为首页收藏本站language 语言切换
查看: 1762|回复: 3
收起左侧

[分享] 基于源MAC地址QOS实战:限制特定主机访问互联网

[复制链接]
发表于 2026-7-30 17:11:31 | 显示全部楼层 |阅读模式
基于源MAC地址QOS实战:限制特定主机访问互联网





一、本文亮点

  • 场景真实,贴近实战:模拟企业内网通过源MAC地址限制特定主机访问互联网的典型管控场景,配置基于华为设备,可直接参考应用于现网或实验环境。
  • 基于MAC的精细化控制:通过流分类(traffic classifier)匹配源MAC地址,实现对特定主机的精准识别,即使主机变换IP地址也能有效管控。
  • 策略顺序保障网关可达:在流策略中先放行网关流量,再阻断互联网流量,确保被限制的主机可以访问网关但无法访问互联网。
  • 逐条注释,清晰易懂:对每一条关键配置命令都添加了中文注释,解释其功能和作用,帮助读者理解配置背后的网络原理。


二、适合人群

  • 负责企业内网访问控制、MAC地址过滤的网络工程师
  • 正在学习华为设备流策略、基于MAC的ACL技术的初学者或认证备考者
  • 希望实现"特定主机禁止上网但允许访问网关"差异化管控的运维人员


三、原理说明:基于源MAC地址的访问控制工作机制

1. 核心概念
基于源MAC地址的访问控制是指通过流分类(traffic classifier)匹配报文的源MAC地址,并结合流行为(traffic behavior)执行允许(permit)或拒绝(deny)动作,实现对特定终端的精细化访问控制。与基于IP地址的ACL相比,基于MAC的控制不受终端IP地址变化的影响,适用于DHCP动态分配IP地址的场景。

2. 关键技术点
  • 流分类(traffic classifier):通过
    1. if-match source-mac
    复制代码
    命令匹配报文的源MAC地址,精确识别特定终端。
  • 流行为(traffic behavior):对匹配的报文执行permit(允许通过)或deny(丢弃)动作。
  • 流策略(traffic policy):将多个流分类和流行为按顺序绑定,报文依次匹配,一旦匹配即执行对应动作并停止后续匹配
  • 策略顺序的重要性:先匹配放行网关流量的规则,再匹配阻断互联网流量的规则,确保被限制主机可以访问网关但无法访问互联网


3. 工作流程
  • 内部主机发送报文到达Router的Eth2/0/0接口,进入VLANIF10的入方向流策略处理。
  • 报文依次匹配流策略myqos中的流分类:
    • 第一步:匹配流分类gate(目的地址为网关10.1.1.0/24)→ 执行流行为p1(permit允许),报文放行
    • 第二步:匹配流分类mac1/mac2/mac3(源MAC为0015-c50d-0001/0002/0003)→ 执行流行为d1(deny丢弃),报文被丢弃,无法访问互联网。
    • 第三步:其他未匹配的报文(非限制MAC)→ 默认放行,正常访问互联网。
  • 被限制主机可以Ping通网关(10.1.1.1),但无法Ping通非LAN内的IP地址


四、拓扑与需求

组网需求
如图1所示,Router为企业网关,企业内部用户通过Switch连接至Router的Eth2/0/0接口,通过Router访问互联网。现要求限制局域网内某些主机访问互联网,但是由于这些主机可以变换IP地址,所以通过防火墙限制不能有效防范,最合适的做法是基于源MAC地址进行限制。在本例中要求限制某些主机访问互联网,但是可以访问网关

  • 限制MAC地址为0015-c50d-0001、0015-c50d-0002、0015-c50d-0003的三台主机访问互联网。
  • 被限制的主机可以Ping通网关地址(10.1.1.1)
  • 其他主机不受限制,正常访问互联网



(图1:配置组网图)

五、IP规划表

设备接口IP地址说明
RouterVLANIF1010.1.1.1/24内网网关(被限制主机可访问)
RouterEth2/0/0-连接Switch(Trunk接口,允许VLAN10)
Switch--连接内网主机,与Router通过Trunk链路对接
受限主机1-动态获取MAC=0015-c50d-0001,网关=10.1.1.1
受限主机2-动态获取MAC=0015-c50d-0002,网关=10.1.1.1
受限主机3-动态获取MAC=0015-c50d-0003,网关=10.1.1.1
其他主机-动态获取正常访问互联网


六、配置思路

  • 创建VLAN并配置三层接口:创建VLAN10,配置VLANIF10的IP地址(10.1.1.1/24)作为内网网关。
  • 配置ACL用于匹配网关流量:创建ACL 3001,配置规则匹配目的地址为10.1.1.0/24网段(网关所在网段)的流量。
  • 配置流分类
    • 创建流分类gate,匹配ACL 3001(目的地址为网关网段)。
    • 创建流分类mac1/mac2/mac3,分别匹配源MAC地址0015-c50d-0001/0002/0003
  • 配置流行为
    • 创建流行为p1,动作为permit(允许通过)
    • 创建流行为d1,动作为deny(丢弃)
  • 配置流策略:创建流策略myqos,按顺序绑定流分类和流行为:
    • 先绑定gate与p1(放行网关流量)。
    • 再绑定mac1/mac2/mac3与d1(阻断受限主机的互联网流量)。
  • 应用流策略:在VLANIF10接口的入方向(inbound)应用流策略myqos。


七、设备配置命令(逐条注释)

请将以下配置粘贴至Router的CLI中执行。注释以//形式跟在命令后方。


  1. #
  2. sysname Router                                                                 <span class="cmd-comment">// 配置设备主机名</span>
  3. #
  4. vlan batch 10                                                                  <span class="cmd-comment">// 创建VLAN 10(用于内网业务)</span>
  5. #
  6. acl number 3001                                                                <span class="cmd-comment">// 创建高级ACL 3001,用于匹配访问网关的流量</span>
  7. rule 1 permit ip destination 10.1.1.0 0.0.0.255                               <span class="cmd-comment">// 匹配目的地址为10.1.1.0/24网段(即网关所在网段)</span>
  8. #
  9. traffic classifier gate operator and                                          <span class="cmd-comment">// 创建流分类gate,匹配规则为与(and)关系</span>
  10. if-match acl 3001                                                             <span class="cmd-comment">// 匹配ACL 3001(目的地址为网关网段的流量)</span>
  11. traffic classifier mac1 operator and                                           <span class="cmd-comment">// 创建流分类mac1,匹配规则为与(and)关系</span>
  12. if-match source-mac 0015-c50d-0001                                            <span class="cmd-comment">// 匹配源MAC地址为0015-c50d-0001</span>
  13. traffic classifier mac2 operator and                                           <span class="cmd-comment">// 创建流分类mac2</span>
  14. if-match source-mac 0015-c50d-0002                                            <span class="cmd-comment">// 匹配源MAC地址为0015-c50d-0002</span>
  15. traffic classifier mac3 operator and                                           <span class="cmd-comment">// 创建流分类mac3</span>
  16. if-match source-mac 0015-c50d-0003                                            <span class="cmd-comment">// 匹配源MAC地址为0015-c50d-0003</span>
  17. #
  18. traffic behavior p1                                                            <span class="cmd-comment">// 创建流行为p1</span>
  19. permit                                                                        <span class="cmd-comment">// 配置流行为p1为允许通过</span>
  20. traffic behavior d1                                                            <span class="cmd-comment">// 创建流行为d1</span>
  21. deny                                                                          <span class="cmd-comment">// 配置流行为d1为拒绝并丢弃</span>
  22. #
  23. traffic policy myqos                                                           <span class="cmd-comment">// 创建流策略myqos</span>
  24. classifier gate behavior p1                                                   <span class="cmd-comment">// 绑定流分类gate与流行为p1(放行网关流量)</span>
  25. classifier mac1 behavior d1                                                   <span class="cmd-comment">// 绑定流分类mac1与流行为d1(丢弃受限主机1流量)</span>
  26. classifier mac2 behavior d1                                                   <span class="cmd-comment">// 绑定流分类mac2与流行为d1(丢弃受限主机2流量)</span>
  27. classifier mac3 behavior d1                                                   <span class="cmd-comment">// 绑定流分类mac3与流行为d1(丢弃受限主机3流量)</span>
  28. #
  29. interface Vlanif10
  30. ip address 10.1.1.1 255.255.255.0                                            <span class="cmd-comment">// 配置VLANIF10的IP地址(内网网关)</span>
  31. traffic-policy myqos inbound                                                  <span class="cmd-comment">// 在VLANIF10接口入方向应用流策略myqos</span>
  32. #
  33. interface Ethernet2/0/0
  34. port link-type trunk                                                          <span class="cmd-comment">// 配置接口的链路类型为Trunk</span>
  35. port trunk allow-pass vlan 10                                                 <span class="cmd-comment">// 配置Trunk类型接口允许VLAN10通过</span>
  36. #
  37. return
复制代码


八、验证方法

完成配置后,可通过以下步骤验证效果:

  • 查看流策略配置信息:在Router上执行
    1. display traffic policy user-defined
    复制代码
    命令,查看配置的流策略myqos的流分类、流行为和绑定顺序
  • 验证受限主机可访问网关:在MAC地址为0015-c50d-0001/0002/0003的主机上执行
    1. ping 10.1.1.1
    复制代码
    ,应成功Ping通
  • 验证受限主机无法访问互联网:在受限主机上执行
    1. ping 8.8.8.8
    复制代码
    或访问外网Web页面,应无法访问
  • 验证非受限主机正常:在其他主机上执行
    1. ping 8.8.8.8
    复制代码
    或访问外网Web页面,应正常通信
  • 查看流策略命中统计:执行
    1. display traffic policy policy-name myqos
    复制代码
    命令,查看各流分类的匹配次数(Hit Count),确认受限MAC的流量被匹配并丢弃。


九、排障指南

常见问题现象可能原因解决方法
受限主机仍能访问互联网
  • 流策略未正确应用到VLANIF10入方向。
  • 流策略中流分类的绑定顺序错误(未先放行网关流量)。
  • 受限主机的MAC地址与配置不一致。
  • 流行为d1未正确配置为deny。
  • 检查
    1. traffic-policy myqos inbound
    复制代码
    是否在VLANIF10接口下配置。
  • 确保流策略中先绑定gate与p1,再绑定mac1/mac2/mac3与d1。
  • 在受限主机上执行
    1. ipconfig /all
    复制代码
    确认MAC地址。
  • 检查
    1. traffic behavior d1
    复制代码
    是否为
    1. deny
    复制代码

受限主机无法访问网关(ping不通10.1.1.1)
  • 流策略中gate流分类未正确匹配ACL 3001。
  • ACL 3001规则配置错误(目的地址或反掩码错误)。
  • 流策略中gate与p1的绑定顺序在mac1之后。
  • 检查
    1. traffic classifier gate
    复制代码
    是否匹配
    1. acl 3001
    复制代码
  • 检查ACL 3001规则
    1. rule 1 permit ip destination 10.1.1.0 0.0.0.255
    复制代码
    是否正确。
  • 确保流策略中gate与p1的绑定在mac1之前
非受限主机也无法访问互联网
  • 流策略中缺少对非受限流量的放行规则。
  • 流策略默认动作为deny(缺省为permit,但需确认)。
  • 检查流策略中是否仅配置了受限主机的deny规则,未匹配的报文默认permit
  • 确认流策略缺省动作是否为permit(默认即为permit)。
流策略命中计数为0
  • 流量未经过应用了流策略的VLANIF10接口。
  • 流分类匹配条件错误(MAC地址或ACL配置错误)。
  • 确认内网用户流量确实经过VLANIF10接口进入设备。
  • 检查
    1. if-match source-mac
    复制代码
    的MAC地址格式是否正确(如0015-c50d-0001)。


十、注意事项

  • 策略顺序至关重要:由于在接口下应用流策略后,报文依次匹配流策略中的流分类一旦匹配即执行对应动作并停止后续匹配。所以在配置流策略myqos时,必须先配置允许访问网关的流分类和流行为(gate→p1),再配置禁止访问互联网的流分类和流行为(mac1/mac2/mac3→d1),确保被限制主机可以访问网关但无法访问互联网
  • Switch接口类型配置:请配置Switch与Router对接的接口为Trunk类型,并加入VLAN10,确保内网流量正确传递到Router。
  • MAC地址格式:在配置
    1. if-match source-mac
    复制代码
    时,MAC地址格式为xxxx-xxxx-xxxx(如0015-c50d-0001),注意分隔符为连字符(-),不同设备可能要求不同格式,请参考具体设备文档。
  • ACL匹配网关网段:ACL 3001匹配目的地址为10.1.1.0/24网段(而非仅匹配网关IP 10.1.1.1),确保访问网关所在网段的所有流量均被放行(如广播、ARP等)。
  • 流策略缺省动作:未匹配任何流分类的报文默认执行permit(允许通过),因此非受限主机不受影响,正常访问互联网


十一、总结

本文通过一个典型的企业内网访问控制场景,详细介绍了在华为设备上通过基于源MAC地址的流策略实现限制特定主机访问互联网的完整流程。涵盖VLAN配置、ACL配置(匹配网关网段)、流分类配置(gate+mac1/2/3)、流行为配置(permit+deny)、流策略配置(顺序绑定)、接口应用等关键环节。该方案通过"先放行网关、再阻断互联网"的策略顺序,实现了"受限主机可访问网关但无法上网"的差异化管控目标,且不受终端IP地址变化影响,是企业内网基于MAC地址精细化访问控制的常用且有效的手段。

如果本文对您有帮助,欢迎点击关注,获取更多网络技术实战干货!


—— 全文完 ——

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?论坛注册

x
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2026-8-19 17:20 , Processed in 0.084336 second(s), 8 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表