网络设备管用户,靠的就是 AAA。这三个字母看着简单,但配置时最容易漏的就是那个不起眼的东西——认证域(domain)。
三个环节的边界
| 回答的问题 | 典型动作 | |
|---|---|---|
| 认证 Authentication | 你是谁 | 校验用户名密码 / 证书 / MAC 地址 |
| 授权 Authorization | 你能干什么 | 下发权限级别、ACL、VLAN、带宽策略 |
| 计费 Accounting | 你干了什么 | 记录上下线时间、流量、执行过的命令 |
顺序是认证 → 授权 → 计费。认证不过,后面两步都不会发生。计费是异步的,断了也不影响用户上网,所以经常被忽略——但审计和故障回溯全靠它。
RADIUS 还是 HWTACACS
| RADIUS | HWTACACS | |
|---|---|---|
| 承载 | UDP(1812 认证 / 1813 计费) | TCP(49 端口) |
| 协议基础 | RFC 标准,通用 | 华为私有,基于 TACACS+ |
| 认证授权关系 | 合一,一个报文同时带认证和授权信息 | 分离,认证和授权独立交互 |
| 加密范围 | 只加密密码字段 | 整个报文体加密 |
| 最适合 | 用户上网接入(802.1X、Portal、PPPoE) | 设备管理(管理员登录、命令级授权) |
选择口诀:管人上网用 RADIUS,管管理员登设备用 HWTACACS。原因就是 HWTACACS 支持「命令级授权」——能精确控制某个管理员只能敲哪些命令,RADIUS 做不到这个粒度。
认证域(domain):最容易被漏的一环
设备上的用户是按域分组的。用户名写成 user@domain 的形式,设备就按 domain 去找对应的认证方案。
用户输入: zhangsan@office
↓ 设备按 "@" 后面的部分拆出域
domain = office
↓ 找到这个域绑定的 AAA 方案
authentication-scheme auth-office → 用哪个服务器认证
authorization-scheme authz-office → 权限怎么下发
accounting-scheme acct-office → 计费发到哪
★ 不配 domain 的后果:
用户名不带 @ 时走 default 域;带了 @ 但域没配 → 直接认证失败
→ 现象是"服务器上明明有账号,设备就是登不上"
★ 一个设备可以有多个域:
office → 走公司 RADIUS
guest → 走访客服务器,权限极低
admin → 走 HWTACACS,命令级授权
default → 兜底,走本地
华为 VRP 配置:设备管理场景
# ① 配 HWTACACS 服务器模板
hwtacacs-server template hwtac
hwtacacs-server authentication 10.1.1.100
hwtacacs-server authorization 10.1.1.100
hwtacacs-server accounting 10.1.1.100
hwtacacs-server shared-key cipher Huawei@123
# ② 配认证方案
aaa
authentication-scheme auth-admin
authentication-mode hwtacacs # 先用服务器
authentication-mode local # ★ 服务器不可达时用本地兜底
authorization-scheme authz-admin
authorization-mode hwtacacs
authorization-mode local
accounting-scheme acct-admin
accounting-mode hwtacacs
# ③ 配域,把方案和服务器绑起来
domain admin
authentication-scheme auth-admin
authorization-scheme authz-admin
accounting-scheme acct-admin
hwtacacs-server hwtac
# ④ 创建本地兜底账号(服务器挂了还能进)
local-user backup password irreversible-cipher Huawei@123
local-user backup privilege level 15
local-user backup service-type telnet terminal ssh
# ⑤ 让 VTY 走 AAA 认证
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
# ⑥ 全局指定用哪个 HWTACACS 模板
hwtacacs-server template hwtac
华为 VRP 配置:用户上网接入场景
radius-server template rad1
radius-server shared-key cipher Huawei@123
radius-server authentication 10.1.1.200 1812
radius-server accounting 10.1.1.200 1813
radius-server retransmit 3
aaa
authentication-scheme auth-user
authentication-mode radius
authentication-mode local
authorization-scheme authz-user
authorization-mode radius
accounting-scheme acct-user
accounting-mode radius
domain office
authentication-scheme auth-user
authorization-scheme authz-user
accounting-scheme acct-user
radius-server rad1
# 让新用户默认走 office 域(否则用户必须手输 user@office)
domain office
...
aaa
domain office
state active
domain default
# 或者把 default 域也指向同一个方案
# ★ 简化用户输入:在接口上指定默认域
interface GigabitEthernet0/0/1
authentication default-domain office
调试与排错
display aaa configuration # ★ AAA 全局配置与所有域
display domain # 域列表与状态
display domain name office # 某个域的详细配置
display aaa online-fail-record all # ★ 上线失败记录(排错神器)
display aaa offline-record all # 下线记录
display local-user # 本地用户
display radius-server configuration # RADIUS 模板
display hwtacacs-server template hwtac # HWTACACS 模板
debugging radius all # 调试(慎用)
debugging hwtacacs all
terminal monitor # 打开终端输出(debug 必须开这个)
排错顺序:
- 先看
display aaa online-fail-record all。这个命令会直接告诉你失败原因(用户名错、密码错、域不存在、服务器无响应),比抓包快得多; - 「服务器上有账号但登不上」 → 90% 是域没配或没绑对;
- 「服务器挂了就完全登不上」 → 认证方案里没配 local 兜底,或者本地没建账号;
- 「radius 服务器无响应」 → 查 1812/1813 端口通不通、shared-key 是否一致(两端密钥不一致是最常见的);
- 「认证过了但权限不对」 → 授权环节的问题。RADIUS 下发的是
Filter-Id/HW-Privilege-Level属性,检查服务器上的属性配置。
一句话总结:认证管「是谁」、授权管「能干啥」、计费管「干了啥」;管人上网用 RADIUS,管管理员用 HWTACACS;配完千万别忘了配 domain 和本地兜底账号。
📌 本篇整理自 2024–2025 的「数通」学习笔记(HCIE-Datacom 方向)
合并了原始笔记中「AAA / 地址池AAA / 混合认证」三页。
原笔记偏概念与配置片段,本文补上了 domain 这个高频遗漏点、RADIUS 与 HWTACACS 的选择依据、以及 online-fail-record 这个排错利器。
配置命令保留华为 VRP 原样。