华为H3C实战 | 第31章 BRAS 定位与组网
📚 本系列共 43 篇(第 31 / 43 篇) · 第五卷 BRAS 与认证计费篇 —— 大规模用户接入
← 上一篇:第 30 章 设备管理安全与等保基线 下一篇:第 32 章 BRAS PPPoE 服务器配置 →
本章导读:BRAS 不是"更贵的路由器",它是在网络入口给每个用户建一个有身份、有状态、有额度的会话。本章把 BRAS 在宽带网里的位置、A 面/B 面接口分层、VT 与地址池这套反直觉模型讲清楚,是后面五章的地基。
本章结构:
- 31.1 功能原理与业务场景 —— BRAS 与普通路由器"无状态 vs 有状态"的根本差异、宽带接入四段模型、A 面/B 面与地址池的逻辑网关、PPPoE 与 IPoE 两条接入路线、BNG 演进
- 31.2 华为设备配置详解 —— 登录与视图地图、A/B 面接口与 VT、地址池、域的骨架配置
- 31.3 H3C 设备配置详解 —— H3C 侧对应模型与写法差异
- 31.4 华为 / H3C 命令对照表
- 31.5 配置验证 —— 会话表、地址池、VT/VA 状态怎么看
- 31.6 常见概念混淆逐条澄清 —— VT 与 VA、域与方案、地址池与接口 IP 等六组高频混淆
- 31.7 排错与故障树 —— 定位级的总故障树(具体命令在第 36 章)
- 31.8 新手踩坑与注意事项
- 31.9 本章小结
- 31.10 本章与后续章节的关系 —— Part E 六章的依赖关系图
重点提示:读 BRAS 卡壳先查 31.6——一半的困惑是概念串了,不是命令不会。想反了的一点:用户网关不配在接口上,而是地址池里的逻辑网关。31.10 那张图建议先看,能看出"哪章必须按顺序读"。 关联章节:PPPoE 从 PADI 到 IPCP 的完整流程见第 32 章;AAA 与 RADIUS 对接见第 33 章;IPoE 与 Portal 见第 34 章;用户限速与 QoS 见第 35 章;集中排错见第 36 章。
31.1 功能原理与业务场景
31.1.1 这功能是干嘛的(通俗版)
把 BRAS(宽带远程接入服务器,Broadband Remote Access Server)想成一个大型公寓楼的门卫加前台。
普通路由器的角色更像小区门口道闸——它只关心「车能出去、能回来」,不关心车里坐的是谁。而 BRAS 是要做登记的:每位住户进门要刷卡(认证),物业要根据他的房型决定给他几把钥匙、能开哪几扇门(授权),月底按面积和水电表算物业费(计费)。一人一档,随时能点名。
所以 BRAS 本质上不是「一个更贵的路由器」,而是在网络的入口处为每一个用户建立一个有身份、有状态、有额度的会话。用户下线了,会话要销毁、IP 要回收、账单要结算;用户欠费了,下一次进门就刷不开。
这里最关键的一句话是:普通路由器的转发是「无状态」的,BRAS 的转发是「有状态、有身份的」。这一条差异决定了设备形态、配置复杂度、排错方法全都不同。也正因为有状态,BRAS 才不得不面对本书后面几章反复出现的三个问题:会话在不在、认证过没过、账号里有没有钱。
31.1.2 在网络里怎么落地(设计视角)
一个典型的宽带接入网络分成四段,BRAS 站在第三段和第四段的交界处:
[家庭/宿舍 PC] 第1段:用户侧
|
[接入交换机] VLAN 隔离、QinQ 打外层标签
|
[汇聚交换机] 收敛用户 VLAN,透传到 BRAS
|
===== [BRAS] ===== ← 第2段(接入段)与第3段(城域/核心)的分界
|
[核心路由器 / CR]
|
[AAA/RADIUS 服务器] [DHCP/DNS 服务器] [Portal 服务器]
把四段的职责说清楚,后面所有配置才有落脚点:
| 段落 | 谁负责 | 关键动作 |
|---|---|---|
| 第1段 用户侧 | 接入/汇聚交换机 | 一个用户一个 VLAN 或一个 QinQ 外层,把用户「隔开」 |
| 第2段 接入段 | BRAS | 终结 PPPoE 或建立 IPoE 会话,做认证、授权、计费、限速 |
| 第3段 城域/核心 | CR / 核心路由 | 只管把包按路由表送到目的,不关心用户是谁 |
| 第4段 业务侧 | AAA / DHCP / Portal | 存账号、发地址、弹认证页面 |
BRAS 的接口分层是新手最容易懵的地方。同一块物理接口,在BRAS上被切成三种角色:
物理接口 GE1/0/2
├── 子接口 GE1/0/2.1 → 绑定用户 VLAN,挂 VT(B 面,朝向用户)
└── 主接口 / 另一组口 → 普通三层口,跑路由(A 面,朝向核心)
- B 面(朝向用户):不配 IP 地址,只做「收标签 + 找 VT」。
- A 面(朝向核心):普通三层接口,配 IP、跑 OSPF/IS-IS,把它当一个路由器用。
- 用户的 IP 地址不配在任何一个物理接口上,而是从地址池里动态分配,网关地址是池子里的
gateway。
这一点非常反直觉:你在交换机上学到的「VLANIF 配网关」在这里不成立。BRAS 的用户侧没有 VLANIF 网关,用户的路由是主机路由(/32),会话建立时动态注入路由表。
PPPoE 与 IPoE 两条路线是 BRAS 的第一道分叉,必须先讲明白:
PPPoE 路线 IPoE 路线
--------- ---------
PADI → PADO → PADR → PADS DHCP Discover → Offer → Request → Ack
(以太网上找服务器) (正常拿地址)
↓ ↓
PPP LCP 协商(链路层参数) BRAS 从 DHCP 报文里"顺手"建会话
↓ ↓
PAP/CHAP 认证(带用户名密码) Web/Portal 弹页面,填账号密码
↓ ↓
IPCP 协商,分配 IP 认证通过后放行
两条路线一句话对比:PPPoE 是「先认证,后给地址」,IPoE 是「先给地址,后认证」。PPPoE 严格但客户端必须有拨号能力;IPoE 轻量、即插即用,但必须靠 Portal 补上认证环节。这也是为什么宿舍网/小区宽带多用 PPPoE,酒店/商场/图书馆多用 IPoE 加 Portal。
BNG 演进顺带说一句,免得读者看文档时被两个词绕晕:BNG(宽带网络网关,Broadband Network Gateway)是 BRAS 在 newer 标准体系里的叫法,功能范围更宽,强调用户面与控制面分离(例如把转发面下沉、把认证计费集中)。在国内教材语境下,BRAS 和 BNG 基本指同一台设备,只是 BNG 的表述更强调「网关」而非「远程接入服务器」这层历史包袱。
31.1.3 BRAS 在三种场景里分别扮演什么
同一台设备,在三种网络里干的活完全不一样,这直接决定了配置的重点:
| 场景 | 典型规模 | 认证方式 | 配置重点 |
|---|---|---|---|
| 校园网(宿舍区) | 数千到数万在线 | PPPoE + RADIUS,或 IPoE+Portal | 地址池规划、按楼栋分域、限速 |
| 小区宽带 | 数百到数千 | PPPoE 为主 | 会话数、上下行限速、防私接 |
| 运营商城域 | 十万级在线 | PPPoE/IPoE 双栈、双机热备 | 性能规格、可靠性、IPv6 |
一个必须提醒的数字概念:BRAS 的资源是「会话」而不是「接口」。一台 48 口交换机要担心的是端口够不够,一台 BRAS 要担心的是在线用户数、单板会话规格、地址池够不够用。所以 BRAS 容量规划永远从「有多少用户同时在线」倒推,而不是从「有多少个接口」倒推。
31.1.4 设备内部长什么样(理解排错的关键)
如果你把 BRAS 当成一个黑盒,排错永远只能靠猜。把盖子掀开看,一台 BRAS 内部其实有两条分离的转发通道,这个概念在整套 BRAS 排错里权重极高:
主控板 (MPU)
┌──────────────────┐
│ 控制面 Control │ 跑 OSPF/BGP/RADIUS 客户端/会话管理
│ Plane │ 只处理"少量、重要"的包
└────────┬─────────┘
│
┌────────┴─────────┐
│ 转发面 Forward │ 跑在业务板(NPU/ASIC)上
│ Plane │ 处理"海量、普通"的用户数据
└────────┬─────────┘
┌───────────────┼───────────────┐
[业务板1] [业务板2] [业务板3]
GE1/0/1~48 GE2/0/1~48 GE3/0/1~48
承载用户会话 承载用户会话 承载用户会话
- 控制面:负责协商、认证、下发策略、维护会话表、发 RADIUS 报文。它怕的是「包太多」——一旦有攻击者狂发 PADI 报文,控制面会被打满,表现是全网用户都上不了线,但已经在线的用户照样能上网。这个现象是判断「控制面被攻击」的铁证。
- 转发面:跑在业务板的专用芯片上,负责用户数据的实际转发。它怕的是「表项太多」——比如 ACL 表、会话表、MAC 表写满。
所以 BRAS 排错有一条非常实用的分诊原则:先看是「新用户上不去」还是「老用户也断了」。
| 现象 | 大概率问题所在 | 下一步 |
|---|---|---|
| 新用户上不去,老用户正常 | 控制面(认证/RADIUS/会话创建/地址池) | 查 display access-user 能否查到已在线用户 |
| 新老用户全断 | 转发面 / 单板故障 / 上游路由 | 查单板状态、接口状态、路由 |
| 单个 VLAN/楼栋的用户断了 | 接入层(用户 VLAN 没终结、汇聚链路) | 查子接口与 VLAN 配置 |
这一条分诊法比任何具体命令都来得快,请务必记住。
31.1.5 双机热备为什么对 BRAS 比对路由器更要命
普通路由器挂了,下游断一下重新收敛,影响是「秒级抖动」。BRAS 挂了,影响是所有在线用户会话全部清零——用户要重新拨号,所有流量计费记录要中断,正在下载的东西全断。对运营商来说这是重大事故。
所以 BRAS 几乎都上双机,但 BRAS 的双机热备比 VRRP 复杂得多:它不仅要备份转发路径(谁是主用网关),还要备份会话状态(谁在线、IP 分给了谁、已经用了多少流量)。
┌─── 上游核心 ───┐
│ │
[BRAS-A] ←─心跳─→ [BRAS-B]
主用 备用
(会话在此) (会话状态实时同步)
│ │
└─── 接入层 ─────┘
这里必须先给读者一个诚实的提醒:华为的分层设备热备方案(如 VRRP + 会话备份、以及各类双机备份特性)和 H3C 的 IRF 双机方案,配置细节差异大、且与单板型号强相关,属于运营商级实施范畴,远超本书「零基础能照着配」的定位。本书只在第 32 章给出双机的设计要点与配置骨架,并明确标注了哪些命令需要按你自己设备版本核实。不要照着一本入门教材去做运营商级热备割接。
31.1.6 设备选型:NE40E/ME60 与 CR16000 怎么挑
这是实际工作里最常被问到的问题。先看两家的产品线定位:
| 维度 | 华为 NE40E 系列 | 华为 ME60 系列 | H3C CR16000-F 系列 |
|---|---|---|---|
| 定位 | 通用业务路由器,兼做 BRAS | 多业务控制网关,专业 BRAS | 核心路由器,BRAS 按板卡能力开放 |
| BRAS 能力 | 需 BRAS license + BAS 授权 | 原生强 BRAS 能力 | 需 CSPEX/CEPC 板卡 + 标准模式 |
| 典型场景 | 城域网边缘、园区出口、教育网 | 电信级宽带接入、大型运营商 | 运营商 IP 骨干、大型 BRAS |
| 配置复杂点 | 两阶段提交、license 管理 | 同 NE40E,另加业务策略体系 | 板卡能力差异、硬件门槛 |
给新手的三条选型心法:
- 先问「并发在线多少」再问型号。几千在线用中低端板卡就够,几万在线才需要讨论单板规格和热备。
- 先查「这块板卡支不支持 BRAS」。这是最硬的约束——尤其 H3C,买到非 CSPEX/CEPC 板卡,配置命令会直接报错,跟配置水平无关。
- 先确认「license 买够没有」。华为的 BRAS 能力是 license 控制的,license 不够会在
display license resource usage port-bras里暴露出来。
另一个容易被忽略的选型维度是是否要做 BNG 用户面分离。如果你的网络未来要把认证计费集中到云上、转发留在本地,就要选支持控制面与用户面分离架构的设备,这已经不是「路由器」的选型逻辑,而是「宽带网关」的选型逻辑。本书不深入这部分,只需知道:看到文档里出现 BNG、vBNG、CU 分离这些词时,讲的就是这条路。
31.1.7 与 AAA / RADIUS 的关系
BRAS 自己通常不存账号。它做的是「把用户递过来的用户名密码,连同用户从哪个口、哪个 VLAN 上来的信息,打包发给 RADIUS 服务器,然后听服务器的话」。
BRAS RADIUS 服务器
---- -------------
1. 收到 PAP/CHAP 或 Portal 提交的账号密码
2. 组装 Access-Request ─────────────────────→
带 User-Name / CHAP-Password /
NAS-IP-Address / NAS-Port-Id / Called-Station-Id
3. 查库比对
←───────────────────── 4. Access-Accept / Access-Reject
5. 按 Accept 里的属性办事:
Framed-IP-Address(指定 IP)
Framed-Pool(用哪个地址池)
Filter-Id(下发 ACL)
Session-Timeout(会话超时)
6. 上线成功 → 发 Accounting-Request(Start) ─→
7. 用户下线 → 发 Accounting-Request(Stop) ─→
理解这条链路,就能理解 BRAS 排错的黄金法则:一旦用户上不了线,永远按「用户侧 → BRAS 会话 → RADIUS → 属性解析 → 策略下发」这个顺序,一段一段卡,不要一上来就改配置。第 36 章会把这条法则拆成逐条的排查命令。
这里再补三个新手最常问、但文档里往往不正面回答的问题:
问题一:BRAS 凭什么知道「这个用户是哪个 VLAN 上来的」?
靠接入层打进去的信息。PPPoE 场景下,BRAS 从 PADI 报文进哪个子接口、命中哪个 user-vlan,就知道用户属于哪栋楼;IPoE 场景下,DHCP 报文里的 Option 82(规范叫「DHCP 中继代理信息选项」)会带上接入交换机填的 circuit-id 和 remote-id。这也是为什么接入交换机的 DHCP Snooping / Option 82 配置一旦忘了开,BRAS 侧的分域和定位就全乱了——这是一个跨章节的联动坑,在第 8 章 DHCP 那章也出现过。
问题二:一个用户能不能拿到「固定 IP」?
能,但路径不是改地址池。正常流程是地址池动态分配;如果需要给某个用户固定 IP,做法是在 RADIUS 上给这个账号配 Framed-IP-Address 属性,BRAS 收到 Access-Accept 后就按服务器指定的地址下发。这就是第 33 章要重点讲的「属性驱动」思路——BRAS 的策略大部分不在 BRAS 上配,而在服务器上配,BRAS 只负责执行。这个思维转变是新手上手 BRAS 最大的坎。
问题三:为什么用户下线后,地址会被「占住」一段时间?
因为会计费。用户下线时 BRAS 要发 Accounting-Stop 报文给 RADIUS,服务器结完账才算真正释放。如果计费服务器没响应,地址就可能被锁住。华为在这块提供了一个专门的应对手段(强制发送 Stop 报文),第 33 章会给出命令。
31.2 华为设备配置详解
31.2.1 命令行基础速览(本章会用到的那几条)
本章是概念章,但既然要讲清 BRAS 的落地,就必须先把华为 BRAS 的视图体系摆出来。BRAS 的配置命令分散在五六个视图里,先建立一张地图,后面几章才不会迷路。
# 查看设备型号与版本(确认是不是 BRAS 设备、软件版本是否支持)
display version
# 查看单板,确认业务板型号与状态
display device
# 查看 BRAS 授权资源使用情况(BRAS 功能要靠 license 激活)
display license resource usage port-bras
# 查看在线用户(BRAS 最常用的命令,没有之一)
display access-user
# 查看当前配置
display current-configuration
31.2.2 BRAS 视图地图(华为)
下面是华为 BRAS 从零到用户上线的六个关键视图,建议先背下来这张图,再去看配置:
system-view
├── aaa AAA 总视图
│ ├── authentication-scheme auth1 认证方案(用 radius 还是 local)
│ ├── accounting-scheme acct1 计费方案
│ ├── domain isp1 域(一个域绑一套方案+一个地址池)
│ └── access-user ... 接入用户相关
├── radius-server group rd1 RADIUS 服务器组
├── ip pool pool1 bas local 本地地址池
├── interface virtual-template 1 虚拟模板 VT(定义会话参数)
├── interface Eth-Trunk1 / GE1/0/2.1 物理接口或子接口
│ ├── (子接口) pppoe-server bind virtual-template 1
│ └── bas BAS 接口视图(配接入类型、默认域)
├── user-group ug1 用户组(QoS 用,第 35 章)
└── license 授权视图(激活 BRAS 功能)
这张图里有两个非常容易被忽略的坑,先提前说:
- NE40E 是两阶段提交设备。配完命令提示符里如果看到
[~HUAWEI]这种带波浪号的,说明改动还没生效,必须敲commit。这是从 S 系列交换机转过来的人最容易翻车的地方——交换机上敲完就生效,NE40E 上不commit等于没配。 - BRAS 功能需要 license。裸机是一台普通路由器,要在
license视图里active之后,接口上才能创建bas接口。
31.2.3 一台最小可用的华为 BRAS 的配置骨架
下面给出一个「概念骨架」,目的是让你看清各组件的先后关系;完整可照抄的版本在下一章。注意这里的顺序就是配置依赖顺序,顺序错了会报「对象不存在」:
# 进入系统视图
system-view
# 第一步:RADIUS 服务器组(AAA 要引用它,所以先配)
radius-server group rd1
radius-server shared-key-cipher Bras@2024
radius-server authentication 10.200.1.10 1812
radius-server accounting 10.200.1.10 1813
commit
quit
# 第二步:认证方案与计费方案
aaa
authentication-scheme auth1
authentication-mode radius
quit
accounting-scheme acct1
accounting-mode radius
quit
# 第三步:本地地址池(域要引用它)
ip pool pool_sd
gateway 10.200.10.1 255.255.255.0
section 0 10.200.10.2 10.200.10.254
dns-server 10.200.1.53
commit
quit
# 第四步:域(把方案、服务器组、地址池串起来)
aaa
domain isp1
authentication-scheme auth1
accounting-scheme acct1
radius-server group rd1
ip-pool pool_sd
commit
quit
# 第五步:VT 虚拟模板(定义 PPP 协商参数)
interface virtual-template 1
ppp authentication-mode chap
commit
quit
# 第六步:激活 BRAS 授权(不激活,后面建不出 BAS 接口)
license
active bas slot 1
commit
quit
# 保存
save
31.2.4 逐行讲解
上面那份骨架里每条命令的作用和容易填错的地方,集中列在下面这张表里,建议对照着设备敲一遍:
| 命令 | 作用 | 新手常填错的地方 |
|---|---|---|
radius-server group rd1 |
定义 RADIUS 服务器组,供域引用 | 老版本 V6 里叫 radius-server template,V8 改成 group,抄旧文档会报错 |
radius-server shared-key-cipher |
配和服务器通信的共享密钥 | 必须与服务器端逐字节一致,多一个空格都认证失败 |
radius-server authentication <ip> <port> |
指定认证服务器地址与端口 | 端口要写对,标准 RADIUS 认证端口是 1812 |
radius-server accounting <ip> <port> |
指定计费服务器地址与端口 | 计费标准端口是 1813,别和认证端口写反 |
commit |
提交配置生效 | NE40E 不敲这句,等于白配 |
authentication-scheme auth1 |
建认证方案 | 方案名在域里要一字不差引用 |
authentication-mode radius |
指定认证模式为 RADIUS | 写 radius 却忘了配服务器组,上线时会卡住 |
accounting-scheme acct1 |
建计费方案 | 只配认证不配计费=能上网但不出账单 |
accounting-mode radius |
指定计费模式 | — |
ip pool pool_sd |
建本地地址池 | 名字随便起,但域里必须一字不差地引用 |
gateway 10.200.10.1 255.255.255.0 |
指定网关地址和掩码 | 这个网关地址不在任何物理接口上,是逻辑网关 |
section 0 10.200.10.2 10.200.10.254 |
指定可分配的地址段 | 段号 0 是必须的,别写成 section 10.200.10.2 ... |
dns-server |
域/池里下发 DNS 服务器地址 | 忘了配,用户能拨上号但打不开网页,极易误判成"没连上" |
domain isp1 |
建域 | 域名要和用户名的域名后缀对上,否则走默认域 |
interface virtual-template 1 |
建虚拟模板 | VT 号要和接口上 bind 的号一致 |
ppp authentication-mode chap |
指定 PPP 认证方式 | 写 chap 而客户端只支持 pap 就会卡在认证阶段 |
bas |
把接口变成 BAS 接口 | 必须在子接口/接口视图下敲,且该槽位已激活 BRAS |
access-type layer2-subscriber |
指定接入类型为二层普通用户 | 这是 PPPoE 用户的正确类型,写成 layer3 用户路径完全不同 |
active bas slot 1 |
激活某槽位单板的 BRAS 功能 | 别的槽位的接口照样建不出 BAS 接口 |
save |
保存配置 | 不保存,重启回到出厂 |
31.2.5 两阶段提交到底坑在哪(华为特有)
这一节单独拿出来讲,因为它比其他所有踩坑加起来的杀伤力都大。NE40E/ME60 这类设备为了支持「配置回滚」和「不中断业务的平滑变更」,采用的是两阶段提交:
你敲命令
↓
进入 candidate 配置(暂存区),提示符变成 [~HUAWEI]
↓
敲 commit
↓
暂存区合并进 running 配置,提示符变成 [*HUAWEI]
↓
敲 save(把 running 写进存储)
三段式的提示符含义一定要分清:
| 提示符 | 含义 | 你该做什么 |
|---|---|---|
[~HUAWEI] |
有未提交的候选配置 | 敲 commit |
[*HUAWEI] |
差异已提交,运行中生效 | 敲 save 固化 |
[HUAWEI] |
无差异 | 正常状态 |
除了手工 commit,还有几条相关的实用操作,遇到配置改坏了的时候能救命:
# 查看候选配置(未提交与已提交的都预览一遍)
display configuration candidate
# 查看候选配置与当前运行配置的差异
display configuration candidate changes
# 放弃修改:把未提交的候选配置全部删掉
clear configuration candidate
# 提交
commit
已核实:上面三条命令都出自 NE40E V800R023C10《Configuration Management》章节,「Configuring a Validation Mode」原文为: 「You can run the
clear configuration candidatecommand to delete all uncommitted configurations.」 「Managing Configuration Files」原文为:「Rundisplay configuration candidate changes— The difference between the candidate configuration and current running configuration is displayed.」 URL:https://support.huawei.com/enterprise/en/doc/EDOC1100367122/(Configuration Management → Configuring a Validation Mode / Managing Configuration Files)⚠ 这里有个坑要记住:是
clearconfiguration candidate,不是reset。很多人凭直觉敲reset configuration candidate会报错。
为什么这个坑这么隐蔽:因为 display current-configuration 看到的是已提交的配置,你在候选区敲的东西在 display current-configuration 里看得到(部分版本合并显示),但业务没生效。于是出现经典的「配置明明在那儿,功能就是不起效」现象。新手往往会去怀疑更复杂的 RADIUS、地址池问题,实际上只是一句 commit 没敲。所以:任何时候「配置看起来对但没效果」,第一反应查提示符有没有 ~。
31.2.6 一道题自检:给用户分域
假设一个学校要区分「宿舍区」和「教学楼」两批用户,两批人走不同的认证服务器、用不同的地址池。用本章的知识先设计出来,下一章再落地成命令:
用户侧 BRAS 侧
───── ───────
宿舍楼 VLAN 100-199 ───┐
├──→ 子接口 GE1/0/2.1 (user-vlan 100 199)
│ 域 isp_dorm → 方案 auth_dorm → 池 pool_dorm
│
教学楼 VLAN 200-299 ───┤
├──→ 子接口 GE1/0/3.1 (user-vlan 200 299)
│ 域 isp_teach → 方案 auth_teach → 池 pool_teach
│
核心上行 ───┴──→ GE1/0/1 (普通三层口,配 IP 跑 OSPF)
设计要点就三条:一个业务一段 VLAN 区间、一个子接口、一个域、一个池。这个「一一对应」关系是 BRAS 规划的铁律,规划乱了后面排错会非常痛苦。
| 命令 | 作用 | 新手常填错的地方 |
|---|---|---|
radius-server group rd1 |
定义 RADIUS 服务器组,供域引用 | 老版本 V6 里叫 radius-server template,V8 改成 group,抄旧文档会报错 |
radius-server shared-key-cipher |
配和服务器通信的共享密钥 | 必须与服务器端逐字节一致,多一个空格都认证失败 |
commit |
提交配置生效 | NE40E 不敲这句,等于白配 |
ip pool pool_sd |
建本地地址池 | 名字随便起,但域里必须一字不差地引用 |
gateway 10.200.10.1 255.255.255.0 |
指定网关地址和掩码 | 这个网关地址不在任何物理接口上,是逻辑网关 |
section 0 10.200.10.2 10.200.10.254 |
指定可分配的地址段 | 段号 0 是必须的,别写成 section 10.200.10.2 ... |
domain isp1 |
建域 | 域名要和用户名的域名后缀对上,否则走默认域 |
ppp authentication-mode chap |
指定 PPP 认证方式 | 写 chap 而客户端只支持 pap 就会卡在认证阶段 |
active bas slot 1 |
激活某槽位单板的 BRAS 功能 | 别的槽位的接口照样建不出 BAS 接口 |
save |
保存配置 | 不保存,重启回到出厂 |
适用版本:本章华为部分以 NE40E V800R023C10 系列配置指南为准。V8 相对 V6 最显著的变化是 RADIUS 相关命令从
radius-server template体系迁移到radius-server group体系,且 NE40E 全线采用两阶段提交(commit)。若你手上的设备是 V6 版本,请以设备实际display version对应的文档为准。
31.3 H3C 设备配置详解
31.3.1 命令差异先说清楚
H3C 的 BRAS 配置思路和华为是同构不同词:都是「RADIUS 方案 → 域 → 地址池 → 虚拟模板 → 接口绑定」,但视图名字、命令拼写差别不小。先记住三条最省事的差异:
- 华为的「认证方案/计费方案」在 H3C 里合并消失了,H3C 直接在 ISP 域里一条命令指定:
authentication ppp radius-scheme rs1。 - 华为的
radius-server group在 H3C 里叫radius scheme。 - 华为在 BAS 接口上配默认域,H3C 在 VT 接口上用
ppp authentication-mode chap domain isp1直接把域带出来。
华为 H3C
---- ----
aaa / authentication-scheme auth1 → (无此层)
app 认证方案挂在 domain 上 → domain name isp1 里直接
authentication ppp radius-scheme rs1
radius-server group rd1 → radius scheme rs1
ip pool pool1 bas local → dhcp server ip-pool pool1 + remote-server
bas 接口上 default-domain → VT 上 ppp authentication-mode chap domain isp1
31.3.2 H3C BRAS 视图地图
system-view
├── radius scheme rs1 RADIUS 方案
├── domain name isp1 ISP 域(认证/授权/计费 + 授权属性)
├── dhcp server ip-pool pool1 地址池(本地或远端)
├── interface virtual-template 1 VT 虚拟模板
├── interface GE3/1/1.1 三层子接口
│ ├── vlan-type dot1q vid 101 ... VLAN 终结
│ └── pppoe-server bind virtual-template 1
└── user-profile up_4m 用户策略模板(第 35 章)
31.3.3 H3C 最小可用骨架
下面是 H3C CR16000-F 的骨架配置,与华为那份一一对应,方便你对照着看差异:
# 进入系统视图
system-view
# 第一步:RADIUS 方案
radius scheme rs1
primary authentication 10.200.1.10
primary accounting 10.200.1.10
key authentication simple Bras@2024
key accounting simple Bras@2024
quit
# 第二步:ISP 域(认证、授权、计费一次性指明,还能配授权地址池)
domain name isp1
authentication ppp radius-scheme rs1
authorization ppp radius-scheme rs1
accounting ppp radius-scheme rs1
authorization-attribute ip-pool pool1
quit
# 第三步:地址池(本例用本地 DHCP 池;用远端服务器时配 remote-server)
dhcp server ip-pool pool1
gateway-list 10.200.10.1 export-route
network 10.200.10.0 mask 255.255.255.0
quit
# 第四步:VT 虚拟模板(认证模式后面直接带域,这是 H3C 的特色)
interface virtual-template 1
ppp account-statistics enable
ppp authentication-mode chap domain isp1
quit
# 第五步:三层子接口做 VLAN 终结并启用 PPPoE server
interface GigabitEthernet3/1/1.1
vlan-type dot1q vid 101
pppoe-server bind virtual-template 1
quit
# 保存
save force
⚠ 版本差异与硬件门槛:以上 H3C 配置以 CR16000-F 的 Release 795x 配置指南与业务配置举例为准。BRAS 功能在 H3C 上有两个硬门槛:设备必须运行在标准模式(standard mode),且只有 CSPEX 单板(CSPEX-1104-E 除外)与 CEPC 单板支持。在非受支持的板卡上敲
pppoe-server bind会直接报错——这不是配置错,是硬件不支持。关于地址池:H3C 官方的 BRAS 配置举例中,住宅小区 PPPoE 场景是用 DHCP 中继 + 远端 DHCP 服务器分配地址的,本地池写法请以你设备版本的《DHCP 配置》章节为准。
gateway-list ... export-route的含义是「同时生成一条到该网段的网关路由」,这在 BRAS 场景很关键。
31.3.4 H3C 骨架逐行讲解
把 H3C 这份骨架和华为那份对照着理解,差异点会特别清楚:
| 命令 | 作用 | 与华为的差异 |
|---|---|---|
radius scheme rs1 |
建 RADIUS 方案 | 对应华为的 radius-server group |
primary authentication <ip> |
主认证服务器 | H3C 用 primary/secondary 主备概念,华为用权重/选路算法 |
key authentication simple <key> |
认证共享密钥 | simple 表示明文,另有 cipher 密文写法 |
domain name isp1 |
建 ISP 域 | 比华为多一个 name 关键字 |
authentication ppp radius-scheme rs1 |
域内直接指定 PPP 认证走哪个 RADIUS 方案 | 华为要绕一层 authentication-scheme,H3C 一步到位 |
authorization ppp radius-scheme rs1 |
授权 | 华为把授权隐含在认证方案里,需另配 authorization-scheme 才显式分离 |
accounting ppp radius-scheme rs1 |
计费 | 对应华为 accounting-scheme + accounting-mode radius |
authorization-attribute ip-pool pool1 |
给域下授权地址池 | 对应华为域里的 ip-pool |
dhcp server ip-pool pool1 |
建 DHCP 地址池 | 对应华为 ip pool |
gateway-list ... export-route |
配网关并导出路由 | 华为网关在 ip pool 的 gateway,路由靠 import-route unr |
interface virtual-template 1 |
建 VT | 两家一样 |
ppp account-statistics enable |
打开 PPP 计费统计 | 华为无等价必配项(计费统计默认按会话采集) |
ppp authentication-mode chap domain isp1 |
认证方式 + 直接绑域 | H3C 特色,华为域绑在 BAS 接口的 access-type 上 |
vlan-type dot1q vid 101 |
子接口做 VLAN 终结 | 对应华为的 user-vlan(语法与语义有差别,见下) |
pppoe-server bind virtual-template 1 |
接口启用 PPPoE 并绑 VT | 两家一样 |
save force |
强制保存免交互 | 对应华为的 save(需敲 y 确认) |
H3C 的 vlan-type dot1q vid 和华为的 user-vlan 是最容易搞混的一对,必须讲清楚:
- H3C 的
vlan-type dot1q vid 101 second-dot1q 11 to 14:这是标准的 VLAN 终结语法,含义是「这个子接口终结外层 VLAN 101、内层 11~14 的报文」。它本是通用的三层子接口配置,PPPoE 只是顺带用上。 - 华为的
user-vlan 1 2:这是 BAS 用户 VLAN 绑定语法,含义是「这个子接口接收的用户侧 VLAN 是 1 和 2」。它是 BRAS 专有的一套用户侧 VLAN 模型。 - 华为也支持
vlan-type dot1q,但在 IPoE 场景里它表示「三层普通用户」的接入方式(第 34 章会讲),与 H3C 同名但语义不完全一致。这是跨厂商迁移时最容易翻车的点之一。
31.4 华为 / H3C 命令对照表
把本章涉及的全部关键命令汇总成一张对照大表,建议打印出来贴在机柜边上:
| 功能 | 华为(VRP / NE40E) | H3C(Comware / CR16000-F) | 差异说明 |
|---|---|---|---|
| RADIUS 服务器组/方案 | radius-server group rd1 |
radius scheme rs1 |
华为 V8 用 group;V6 老设备是 radius-server template |
| RADIUS 服务器地址 | radius-server authentication <ip> <port> |
primary authentication <ip> |
华为显式写端口,H3C 默认 1812/1813 |
| 共享密钥 | radius-server shared-key-cipher <key> |
key authentication simple <key> |
都支持明文/密文两种写法 |
| 认证方案 | authentication-scheme auth1 + authentication-mode radius |
无独立方案,域内 authentication ppp radius-scheme rs1 |
H3C 少一层 |
| 计费方案 | accounting-scheme acct1 + accounting-mode radius |
域内 accounting ppp radius-scheme rs1 |
同上 |
| 域 | domain isp1 |
domain name isp1 |
H3C 多一个 name 关键字 |
| 域内绑地址池 | ip-pool pool1 |
authorization-attribute ip-pool pool1 |
H3C 叫「授权属性」 |
| 虚拟模板 | interface virtual-template 1 |
interface virtual-template 1 |
相同 |
| PPP 认证方式 | ppp authentication-mode chap |
ppp authentication-mode chap domain isp1 |
H3C 可同时带域 |
| PPPoE 绑定 | pppoe-server bind virtual-template 1 |
pppoe-server bind virtual-template 1 |
相同 |
| BAS 接口/接入类型 | 接口下 bas → access-type layer2-subscriber ... |
无 BAS 接口概念,靠 VT 带域 | 思路差异最大 |
| 激活 BRAS | license → active bas slot 1 |
无对应,靠板卡型号天然支持 | H3C 是硬件门槛 |
| 提交配置 | 需 commit |
无需,回车即生效 | 华为特有的坑 |
| 保存 | save |
save force |
H3C 可免交互 |
表里最后两行——提交与保存的区别——值得单独强调一次,因为它反映了两家完全不同的设备哲学。华为的 NE40E 继承的是运营商级设备「变更要可控、可回滚」的思路,所以强制两阶段提交;H3C 的 CR16000 在这一点上沿用了交换机式的「即时生效 + 事后保存」,操作手感更接近普通交换机。对新手来说,这意味着在两家设备上「改完配置」的心理模型应该是不同的:在华为上改完一定要问自己「我 commit 了吗」,在 H3C 上改完一定要问自己「我 save 了吗」。
另一个值得对照的差异是**「用户从哪来」的表达**。华为用「BAS 接口 + access-type + default-domain」这套组合,显式地把「这个接口上的用户属于哪一类、默认走哪个域」写在接口上;H3C 则把域直接焊在 VT 上(ppp authentication-mode chap domain isp1)。两种设计各有道理:
- 华为的方式更灵活:同一个 VT 可以被多个 BAS 接口复用,每个接口走不同的域,适合「一套 PPP 参数、多个业务域」的场景。
- H3C 的方式更直观:一条命令就把「这个 VT 的用户认证走哪个域」说死了,配置串短,但同一个 VT 就只能服务一个域,多域场景要建多个 VT。
这个差异在下一章做多域规划时会直接体现出来:华为按接口分域,H3C 按 VT 分域。记住这句话,第 32 章读起来会顺畅很多。
31.5 配置验证
本章不落地具体业务,所以验证聚焦在「这台设备到底是不是 BRAS、BRAS 功能有没有被激活」两件事上。先看设备身份:
# 华为:确认型号与软件版本
display version
期望输出里能对得上 NE40E 的型号和 V800R0xx 的版本号。如果 display version 显示的是一台 S 系列交换机,那这台设备做不了 BRAS,别再往下配了。
接着确认 BRAS 授权是否生效,这是新手最常卡住的地方:
# 华为:查看 BRAS 接口授权资源占用
display license resource usage port-bras
正常情况应能看到被激活的槽位/端口列表,且状态正常(Active)。如果这里是空的,说明 license 视图里的 active 没做或者没 commit,接下来建 bas 接口必然失败。
最后确认关键对象是否都已创建、且互相引用正确:
# 华为:分别确认域、地址池、VT 三个核心对象
display domain isp1
display ip pool name pool_sd
display current-configuration interface Virtual-Template1
display domain isp1 的输出里重点看三行:Authentication-scheme-name、Accounting-scheme-name 是否指向你配的方案,以及是否出现地址池绑定信息。只要有任意一项是空的,用户上线时就会在对应阶段失败——这三行是 BRAS 配置的「体检三件套」。
顺手把 display domain 输出里其它几个字段的含义也解释一下,免得看到一堆英文就跳过:
| 字段 | 含义 | 什么时候要关注 |
|---|---|---|
Domain-state |
域的状态,正常为 Active | 显示非 Active 说明域不可用 |
Authentication-scheme-name |
绑定的认证方案名 | 空 = 用户走到这就断了 |
Accounting-scheme-name |
绑定的计费方案名 | 空 = 能上网但没账单 |
User-group-name |
绑定的用户组(第 35 章 QoS 用) | 空 = 用户没有 QoS 策略 |
Idle-data-attribute |
空闲切断的时长/流量阈值 | 配错了会频繁踢用户下线 |
Primary-DNS-IP-address |
下发给用户的 DNS | 空 = 用户能上网但打不开网页 |
H3C 侧的验证命令思路一致:
# H3C:确认 RADIUS 方案与 ISP 域
display radius scheme rs1
display domain name isp1
# H3C:确认 VT 与子接口的绑定关系
display current-configuration interface virtual-template 1
H3C 的 display radius scheme rs1 输出里,重点确认服务器地址和状态是否为 Active;如果服务器状态显示为 blocked 或 dead,说明 H3C 已经把这个服务器判死、后续请求根本不会发过去,这时候用户表现为「全部认证失败」,而服务器端日志里一条记录都没有——这个现象在第 33 章会详细展开。
31.5.1 容量规划:新手最该先算清的一笔账
最后补一段规划方法,因为这是 BRAS 项目最容易在验收时翻车的地方。算量分三步:
第一步:算并发在线数。 注意是并发不是总数。假设一个学校 2 万注册用户,峰值同时在线按 60% 估,就是 1.2 万并发。别用注册用户数去买设备。
第二步:算地址池。 每个域一个池,池子容量必须大于该域并发在线数,并留 20%~30% 余量(因为下线后地址有回收延迟)。举例:1.2 万并发,至少准备 1.5 万个地址。如果地址不够,现象是「认证通过但 IPCP 阶段失败」——用户端会显示"正在获取地址"卡住,这个现象最容易被误判成认证问题。
第三步:算会话规格。 对照单板规格表,确认「单板最大 PPPoE 会话数」大于你的规划值。H3C 侧还要注意文档里提到的「每槽位用户数告警阈值」类特性,可以提前收到容量预警。
三步算完,再去挑型号。先有数,后有机,这是 BRAS 选型的正确顺序。
31.6 常见概念混淆逐条澄清
BRAS 学习曲线陡,一半原因不在命令,在概念被串了。下面六组是问得最多的混淆,一次说清:
| 易混概念 | 正确理解 | 混淆后果 |
|---|---|---|
| VT 与 VA | VT 是模板,VA 是 VT 实例化出来的接口 | 以为要手动建 VA,到处找命令建不出来 |
| 域与方案 | 方案管「怎么认证」,域管「谁用哪套方案」 | 改了方案但域没引用,改了个寂寞 |
| 地址池与接口 IP | 池子里的网关是逻辑网关,不落在接口 | 去接口配 IP,反而破坏 BRAS 转发 |
| 认证与授权 | 认证=证明你是谁;授权=给你什么权限 | 以为 RADIUS 只做认证,忽略了属性下发 |
| 计费开始与在线 | 计费 Start 报文发送成功才算真正在线 | 用户能上网但无账单,误判为计费没问题 |
| PPPoE 会话与 PPP 会话 | 先有 PPPoE 会话,才有 PPP 会话 | 查错地方,PPPoE 没起来却去查 PPP 日志 |
VT 与 VA 这一组值得多讲两句,因为它是理解整章的关键。VT(虚拟模板,Virtual Template)是一份参数清单:PPP 用什么认证方式、MTU 多少、要不要探测、探测几次。这份清单本身不转发任何东西。当一个用户通过 PPPoE 拨上来时,设备按这份清单复制出一个 VA(虚拟接入,Virtual Access)接口,这个 VA 接口才是真正承载这个用户流量、拥有这个用户 IP 的东西。
所以理解方式应该是这样:
VT 1(模板,只有一份) VA 接口(每个用户一个)
├── ppp authentication-mode chap → VA0 (用户 A,IP 10.200.10.11)
├── ppp keepalive ... → VA1 (用户 B,IP 10.200.10.12)
└── mtu 1492 → VA2 (用户 C,IP 10.200.10.13)
这也解释了一个常见的疑问:为什么改了 VT 上的参数,还得让用户重新拨号才生效? 因为已经拨上来的用户用的是「老模板复制出来的老 VA」,模板改了不会回头去改已生成的 VA。所以运维上的规矩是:改 VT 参数必须安排窗口,让用户重新上线,不能说改就改。
「域与方案」这一组则对应着 BRAS 配置的最高频错误——改了 authentication-scheme auth1,却忘了 domain isp1 里引用的是 auth1 还是 auth2。诊断方法很简单:display domain isp1,看 Authentication-scheme-name 那一行指向谁,再去查那个方案的内容。
31.7 排错与故障树
本章是全篇的概念章,故障树只给「定位级」的判断,具体命令在第 36 章展开。先给一张总松弛树,帮你判断问题出在哪一段:
用户报"上不了网"
|
Q1: 用户能拿到 IP 吗?
├── 拿不到 ──→ 地址池/会话建立阶段(第31、33章)
└── 拿得到 ──→ Q2
|
Q2: PPPoE 拨号能到哪一步?(或 IPoE 会话在不在?)
├── 卡在 PADI ──→ 二层不通 / 用户 VLAN 没终结(第32章)
├── 卡在 LCP ──→ VT 没绑定到接口
├── 卡在认证 ──→ RADIUS 不通 / 密码错 / 域错(第33章)
└── 卡在 IPCP ──→ 地址池耗尽 / 无可用地址(第36章)
|
Q3: 能上网但慢/掉 ──→ 限速策略 / 探测参数 / 会话老化(第34、35章)
对应到本章的「定位级」排查命令:
| 症状 | 可能原因 | 排查命令 |
|---|---|---|
接口建不出 bas |
BRAS 授权未激活 | display license resource usage port-bras |
| 配了命令但不生效 | 华为未 commit |
看提示符前缀是 [~HUAWEI] 还是 [*HUAWEI] |
bas 报错「单板不支持」 |
H3C 用了非 CSPEX/CEPC 板卡 | 查单板型号,对照版本文档 |
| 域看起来配了但用户走默认域 | 用户名不带 @域名 且 BAS 接口没配默认域 |
display domain isp1 确认状态,检查 BAS 接口 |
| 在线用户为 0 | 会话根本没建起来 | display access-user |
31.8 新手踩坑与注意事项
- 把 BRAS 当交换机配,去给用户 VLAN 配 VLANIF 网关——症状是用户能拨上号但上不了网。BRAS 的用户网关在地址池里,不在 VLANIF 上,别去建 VLANIF。
- 华为 NE40E 忘记
commit——症状是配置看起来全对、就是一丁点效果都没有。看提示符:带~就是没提交。 - 拿 S 系列交换机的思路去理解 BRAS 的「接口」——对 BRAS 来说,真正的主体是「会话」,接口只是会话的出生地。排错要
display access-user,而不是只看接口 up 没 up。 - PPPoE 和 IPoE 的配置混在一台设备上却分不清域——一个域一套认证方式,混用会让用户走错认证路径。建议按业务起名,如
isp_dorm、isp_hotel。 - 以为 BRAS 自己存账号——绝大多数部署里账号在 RADIUS 上,BRAS 本地只做兜底。改了 BRAS 本地用户却发现登录还是失败,说明请求根本已经打到 RADIUS 了。
- 忽略 license 与单板门槛——H3C 非 CSPEX/CEPC 板卡、华为未激活 BRAS 授权,都会导致「配置命令报错」而不是「功能不生效」,这两种报错含义完全不同,别混淆。
- 地址池按接口个数规划——应该按并发在线用户数规划,且要留余量。池子用满的表现是「认证通过但拿不到地址」,这个现象极易被误判成认证问题。
31.9 本章小结
- BRAS 是在网络入口为每个用户建立有状态、有身份会话的设备,做认证、授权、计费三件事,不能当普通路由器理解。
- 组网上分四段:用户侧 → 接入段(BRAS)→ 城域核心 → 业务侧(AAA/DHCP/Portal)。BRAS 站在接入段与城域的交界。
- 用户侧接口(B 面)不配 IP、只收标签找 VT;核侧接口(A 面)是普通三层口跑路由;用户 IP 从地址池动态分配,路由是 /32 主机路由。
- 两条路线:PPPoE 先认证后给地址,IPoE 先给地址后认证。这决定了后续章节的全部差异。
- 华为与 H3C 同构不同词:H3C 没有独立的「认证/计费方案」层,直接写在 ISP 域里;华为 V8 用
radius-server group,老版本用radius-server template。 - 三个硬件/版本门槛必须记住:华为要
commit、华为要激活 BRAS 授权、H3C 要标准模式 + CSPEX/CEPC 板卡。
适用版本:华为 NE40E V800R023C10 系列配置指南;H3C CR16000-F Release 795x 配置指南与《Service Provider BRAS Configuration Examples》。两家的 BRAS 命令在不同大版本间有迁移(尤其华为的 RADIUS 配置体系),上线前务必用
display version对照设备实际版本的文档。
自测题
- 为什么 BRAS 的用户网关上不能配在 VLANIF 接口上?
- 华为 NE40E 上敲完配置提示符显示
[~HUAWEI],意味着什么? - PPPoE 与 IPoE 在「认证」和「分配地址」的先后顺序上有什么本质区别?
- H3C 没有华为那种独立的
authentication-scheme,认证方式配在哪里? - 一台 BRAS 的容量应该按什么维度规划?
- BRAS 的用户是「会话」而非「接口/VLAN」,用户网关由地址池的
gateway指定(华为)或gateway-list指定(H3C),用户地址从池中动态分配,路由以 /32 主机路由形式注入,所以不存在 VLANIF 网关。 - 配置处于「未提交」状态,改动尚未生效,需要执行
commit。[*HUAWEI]才表示差异已提交。 - PPPoE 是「先认证、后分配地址」(LCP → PAP/CHAP → IPCP);IPoE 是「先通过 DHCP 拿到地址、再通过 Web/Portal 认证」,认证滞后于地址分配。
- 直接配置在 ISP 域(
domain name isp1)视图里,例如authentication ppp radius-scheme rs1、authorization ppp radius-scheme rs1、accounting ppp radius-scheme rs1。 - 按**并发在线用户数(会话数)**规划,而不是按接口数量,需要同时考虑单板会话规格、license 容量和地址池规模。
31.10 本章与后续章节的关系
最后用一张图把 Part E 的六章串起来,读完本章可以把它当目录用:
第31章 定位与组网 ← 你在这里
│ 建立"BRAS 是会话设备"的心智模型、摸清视图地图
↓
第32章 PPPoE 服务器配置 ← 把宽带接入的第一条路线走通
│ PADI/PADO/PADR/PADS → LCP → PAP/CHAP → IPCP
↓
第33章 AAA 与 RADIUS ← 把"认证"这一步接上服务器
│ 域 / Access-Request / 属性下发 / 计费报文
↓
第34章 IPoE 与 Portal ← 第二条路线,校园网/酒店常用
│ DHCP 触发会话 + Web/Portal 补认证
↓
第35章 用户策略与 QoS ← 认证通过之后,怎么给用户"上规矩"
│ 限速 / 用户组 / 优先级 / ACL 下发 / 计费策略
↓
第36章 排错专题 ← 前面五章的所有坑,集中成一棵故障树
六章之间的关系是层层依赖而不是并列:第 32 章配的域,第 33 章要往里填 RADIUS;第 33 章下发的属性,第 35 章要让 BRAS 能执行;第 36 章的每一条排错路径,本质上都是在检查前五章某个配置环节有没有断。所以如果你时间有限,建议按顺序读、不要跳——跳着读 BRAS 很容易读到崩溃,因为几乎每个报错都指向前面的某个前置条件。
关于本书:《华为 / H3C 网络设备典型功能配置详解》—— 面向国内高校/企业网络环境, 华为 VRP 与 H3C Comware 双厂商并排配置的实操教材,共 43 章。 全书所有命令尽量有官方出处,查不到的显式标注「待核实」。 返回系列目录
本人保留对侵权者及其全家发动因果律武器的权利
版权提醒
如无特殊申明,本站所有文章均是本人原创。转载请务必附上原文链接:https://www.elliot98.top/post/huawei-h3c-book/31/。
如有其它需要,请邮件联系!版权所有,违者必究!