网络设备管用户,靠的就是 AAA。这三个字母看着简单,但配置时最容易漏的就是那个不起眼的东西——认证域(domain)。

AAA 的认证、授权、计费三个环节与三种认证方式对比
▲ AAA 的三个环节,以及三种认证方式的取舍

三个环节的边界

回答的问题典型动作
认证 Authentication你是谁校验用户名密码 / 证书 / MAC 地址
授权 Authorization你能干什么下发权限级别、ACL、VLAN、带宽策略
计费 Accounting你干了什么记录上下线时间、流量、执行过的命令

顺序是认证 → 授权 → 计费。认证不过,后面两步都不会发生。计费是异步的,断了也不影响用户上网,所以经常被忽略——但审计和故障回溯全靠它。

RADIUS 还是 HWTACACS

RADIUSHWTACACS
承载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 配置:设备管理场景

huawei · AAA + HWTACACS 管管理员
# ① 配 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 配置:用户上网接入场景

huawei · AAA + RADIUS
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

调试与排错

huawei
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 必须开这个)

排错顺序:

一句话总结:认证管「是谁」、授权管「能干啥」、计费管「干了啥」;管人上网用 RADIUS,管管理员用 HWTACACS;配完千万别忘了配 domain 和本地兜底账号。

📌 本篇整理自 2024–2025 的「数通」学习笔记(HCIE-Datacom 方向)

合并了原始笔记中「AAA / 地址池AAA / 混合认证」三页。
原笔记偏概念与配置片段,本文补上了 domain 这个高频遗漏点、RADIUS 与 HWTACACS 的选择依据、以及 online-fail-record 这个排错利器。
配置命令保留华为 VRP 原样。