上一篇讲了 802.1X——它很安全,但有个硬伤:必须装客户端软件。打印机、摄像头、IP 电话这些东西装不了,访客的笔记本也不该让你装。所以实际环境里必须用别的方式兜底。
MAC 认证:给哑终端用的
原理很简单:把终端的 MAC 地址当作用户名和密码,去 RADIUS 服务器上比对。
三种触发方式,区别很大
| 方式 | 怎么触发 | 特点 |
|---|---|---|
| MAC 旁路 mac-bypass | 802.1X 认证失败或超时后,自动降级用 MAC 认证 | 最常用。PC 走 802.1X,哑终端自动降级,一个端口搞定 |
| MAC 优先 mac-priority | 先试 MAC 认证,不行再走 802.1X | 哑终端多、PC 少的场景 |
| 纯 MAC 认证 | 只做 MAC 认证 | 适合纯粹的 IoT 接入端口(如摄像头专用口) |
# PC 来 → 802.1X 认证
# 打印机来 → 802.1X 超时 → 自动降级为 MAC 认证
dot1x-access-profile name dot1x-prof
dot1x authentication-method eap
mac-access-profile name mac-prof
authentication-profile name auth-prof
dot1x-access-profile dot1x-prof
mac-access-profile mac-prof
authentication-scheme auth-1x
radius-server rad1
interface GigabitEthernet0/0/1
authentication-profile auth-prof
# ★ 服务器上要给每台哑终端建一个「用户名为 MAC 地址」的账号
# 用户名格式一般是 xxxx-xxxx-xxxx (带连字符、小写)
# 不同厂商服务器格式要求不同,这是 MAC 认证最常见的坑
MAC 认证最大的坑是用户名格式。华为设备提交的 MAC 格式(带不带连字符、大小写、冒号还是短横)和服务器上建账号时的格式必须完全一致,否则永远认证失败。排错时先在服务器日志里看设备实际提交的字符串。
Portal 认证:给访客用的
Portal 认证的体验最好:终端连上网,随便打开一个网页,被重定向到一个登录页面,输入账号密码就通了。全程不需要装任何东西。
① 终端拿到 IP(★ 认证前必须能拿 IP,这是和 802.1X 最大的区别)
② 终端访问任意网站(比如 http://example.com)
③ 设备拦截这个请求 → 返回 302 重定向到 Portal 页面
http://portal.example.com/login?userip=10.1.1.10&...
④ 用户在 Portal 页面输入账号密码
⑤ Portal 服务器把凭据转给设备/RADIUS 验证
⑥ 验证通过 → 设备放行该终端的流量 + 记录在线表
★ 「认证前放行」是 Portal 的关键设计:
必须放行 DHCP(拿地址)、DNS(解析域名)、到 Portal 服务器的 HTTP
这些流量如果不放行,用户连登录页面都打不开
★ 也正因为要放行这些,Portal 的安全性弱于 802.1X
—— 未认证终端已经能和这几个目标通信了
Portal 的两种部署形态
| 内置 Portal | 外置 Portal | |
|---|---|---|
| 页面放哪 | 设备自己提供(简单页面) | 独立的 Portal 服务器 |
| 优点 | 部署简单,不依赖额外服务器 | 页面可定制、可对接短信/微信认证 |
| 缺点 | 样式固定,功能有限 | 多一台服务器,且要和设备联动 |
| 适用 | 小型场景 | 商场、酒店、企业访客 |
混合认证:一个端口覆盖所有终端
这才是实际项目的做法。把三种方式都挂上,让设备按终端能力自动选择:
authentication-profile name auth-prof
dot1x-access-profile dot1x-prof # ① 优先 802.1X(PC)
mac-access-profile mac-prof # ② 降级 MAC 认证(哑终端)
portal-access-profile portal-prof # ③ 最后 Portal(访客)
authentication-scheme auth-1x
radius-server rad1
# 认证顺序:802.1X → MAC → Portal
# ★ 顺序可以调,但一般把安全性最高的放最前
# 授权下发不同 VLAN,实现终端自动分流:
# PC 认证成功 → VLAN 10(员工)
# 打印机认证成功 → VLAN 20(IoT)
# 访客 Portal → VLAN 30(访客,带宽受限)
# 认证失败 → VLAN 99(隔离区)
排错
display access-user # ★ 所有在线用户(含认证方式)
display access-user username 0011-2233-4455
display mac-authentication connection # MAC 认证在线用户
display portal user all # Portal 在线用户
display portal server # Portal 服务器配置
display authentication-profile # 认证模板绑定关系
display aaa online-fail-record all # ★ 上线失败记录
reset access-user username xxx # 强制下线重新认证
- 哑终端一直认证不上 → 先看服务器上 MAC 账号的用户名格式和 MAC 旁路是否开启。用
display aaa online-fail-record all看设备提交的用户名; - Portal 页面打不开 → 认证前的放行策略没配全。至少要放行 DHCP、DNS、到 Portal 服务器的流量;
- Portal 认证成功但上不了网 → 授权下发失败,或者设备没把该用户加入放行表。查
display portal user all; - PC 走成了 MAC 认证 → 客户端没装 802.1X 软件,或者交换机上 dot1x-access-profile 没绑上。虽然能上网,但安全性降级了,要注意;
- 认证成功后终端要等很久才能上网 → 终端在认证期间没拿到 IP,认证完成后要等 DHCP 重试。可以在交换机上配「认证成功后主动触发 DHCP」或者把租期调短。
一句话总结:802.1X 给 PC,MAC 认证给哑终端,Portal 给访客。实际项目三者同时开、按能力自动降级,再配合授权下发不同 VLAN 实现终端自动分流。MAC 认证排错先查用户名格式。
📌 本篇整理自 2024–2025 的「数通」学习笔记(HCIE-Datacom 方向)
合并了原始笔记中「MAC 认证 / portal认证 / 混合认证」三页。
原笔记偏配置片段,本文补上了 MAC 用户名格式这个高频坑、Portal「认证前必须放行哪些流量」的完整清单,以及混合认证的推荐顺序。
配置命令按华为 VRP 新版认证模板语法整理。