|
基于源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):通过命令匹配报文的源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地址 | 说明 | | Router | VLANIF10 | 10.1.1.1/24 | 内网网关(被限制主机可访问) | | Router | Eth2/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中执行。注释以//形式跟在命令后方。
- #
- sysname Router <span class="cmd-comment">// 配置设备主机名</span>
- #
- vlan batch 10 <span class="cmd-comment">// 创建VLAN 10(用于内网业务)</span>
- #
- acl number 3001 <span class="cmd-comment">// 创建高级ACL 3001,用于匹配访问网关的流量</span>
- rule 1 permit ip destination 10.1.1.0 0.0.0.255 <span class="cmd-comment">// 匹配目的地址为10.1.1.0/24网段(即网关所在网段)</span>
- #
- traffic classifier gate operator and <span class="cmd-comment">// 创建流分类gate,匹配规则为与(and)关系</span>
- if-match acl 3001 <span class="cmd-comment">// 匹配ACL 3001(目的地址为网关网段的流量)</span>
- traffic classifier mac1 operator and <span class="cmd-comment">// 创建流分类mac1,匹配规则为与(and)关系</span>
- if-match source-mac 0015-c50d-0001 <span class="cmd-comment">// 匹配源MAC地址为0015-c50d-0001</span>
- traffic classifier mac2 operator and <span class="cmd-comment">// 创建流分类mac2</span>
- if-match source-mac 0015-c50d-0002 <span class="cmd-comment">// 匹配源MAC地址为0015-c50d-0002</span>
- traffic classifier mac3 operator and <span class="cmd-comment">// 创建流分类mac3</span>
- if-match source-mac 0015-c50d-0003 <span class="cmd-comment">// 匹配源MAC地址为0015-c50d-0003</span>
- #
- traffic behavior p1 <span class="cmd-comment">// 创建流行为p1</span>
- permit <span class="cmd-comment">// 配置流行为p1为允许通过</span>
- traffic behavior d1 <span class="cmd-comment">// 创建流行为d1</span>
- deny <span class="cmd-comment">// 配置流行为d1为拒绝并丢弃</span>
- #
- traffic policy myqos <span class="cmd-comment">// 创建流策略myqos</span>
- classifier gate behavior p1 <span class="cmd-comment">// 绑定流分类gate与流行为p1(放行网关流量)</span>
- classifier mac1 behavior d1 <span class="cmd-comment">// 绑定流分类mac1与流行为d1(丢弃受限主机1流量)</span>
- classifier mac2 behavior d1 <span class="cmd-comment">// 绑定流分类mac2与流行为d1(丢弃受限主机2流量)</span>
- classifier mac3 behavior d1 <span class="cmd-comment">// 绑定流分类mac3与流行为d1(丢弃受限主机3流量)</span>
- #
- interface Vlanif10
- ip address 10.1.1.1 255.255.255.0 <span class="cmd-comment">// 配置VLANIF10的IP地址(内网网关)</span>
- traffic-policy myqos inbound <span class="cmd-comment">// 在VLANIF10接口入方向应用流策略myqos</span>
- #
- interface Ethernet2/0/0
- port link-type trunk <span class="cmd-comment">// 配置接口的链路类型为Trunk</span>
- port trunk allow-pass vlan 10 <span class="cmd-comment">// 配置Trunk类型接口允许VLAN10通过</span>
- #
- return
复制代码
八、验证方法
完成配置后,可通过以下步骤验证效果:
- 查看流策略配置信息:在Router上执行
- display traffic policy user-defined
复制代码 命令,查看配置的流策略myqos的流分类、流行为和绑定顺序。 - 验证受限主机可访问网关:在MAC地址为0015-c50d-0001/0002/0003的主机上执行,应成功Ping通。
- 验证受限主机无法访问互联网:在受限主机上执行或访问外网Web页面,应无法访问。
- 验证非受限主机正常:在其他主机上执行或访问外网Web页面,应正常通信。
- 查看流策略命中统计:执行
- display traffic policy policy-name myqos
复制代码 命令,查看各流分类的匹配次数(Hit Count),确认受限MAC的流量被匹配并丢弃。
九、排障指南
| 常见问题现象 | 可能原因 | 解决方法 | | 受限主机仍能访问互联网 | - 流策略未正确应用到VLANIF10入方向。
- 流策略中流分类的绑定顺序错误(未先放行网关流量)。
- 受限主机的MAC地址与配置不一致。
- 流行为d1未正确配置为deny。
| - 检查
- traffic-policy myqos inbound
复制代码 是否在VLANIF10接口下配置。 - 确保流策略中先绑定gate与p1,再绑定mac1/mac2/mac3与d1。
- 在受限主机上执行确认MAC地址。
- 检查是否为。
| | 受限主机无法访问网关(ping不通10.1.1.1) | - 流策略中gate流分类未正确匹配ACL 3001。
- ACL 3001规则配置错误(目的地址或反掩码错误)。
- 流策略中gate与p1的绑定顺序在mac1之后。
| - 检查是否匹配。
- 检查ACL 3001规则
- 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接口进入设备。
- 检查的MAC地址格式是否正确(如0015-c50d-0001)。
|
十、注意事项
- 策略顺序至关重要:由于在接口下应用流策略后,报文依次匹配流策略中的流分类,一旦匹配即执行对应动作并停止后续匹配。所以在配置流策略myqos时,必须先配置允许访问网关的流分类和流行为(gate→p1),再配置禁止访问互联网的流分类和流行为(mac1/mac2/mac3→d1),确保被限制主机可以访问网关但无法访问互联网。
- Switch接口类型配置:请配置Switch与Router对接的接口为Trunk类型,并加入VLAN10,确保内网流量正确传递到Router。
- 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地址精细化访问控制的常用且有效的手段。
如果本文对您有帮助,欢迎点击关注,获取更多网络技术实战干货!
—— 全文完 ——
|