跳到正文
Lutong's Homepage

华为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,另加业务策略体系 板卡能力差异、硬件门槛

给新手的三条选型心法:

  1. 先问「并发在线多少」再问型号。几千在线用中低端板卡就够,几万在线才需要讨论单板规格和热备。
  2. 先查「这块板卡支不支持 BRAS」。这是最硬的约束——尤其 H3C,买到非 CSPEX/CEPC 板卡,配置命令会直接报错,跟配置水平无关。
  3. 先确认「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 功能)

这张图里有两个非常容易被忽略的坑,先提前说:

  1. NE40E 是两阶段提交设备。配完命令提示符里如果看到 [~HUAWEI] 这种带波浪号的,说明改动还没生效,必须敲 commit。这是从 S 系列交换机转过来的人最容易翻车的地方——交换机上敲完就生效,NE40E 上不 commit 等于没配。
  2. 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 candidate command to delete all uncommitted configurations.」 「Managing Configuration Files」原文为:「Run display 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)

⚠ 这里有个坑要记住:是 clear configuration 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 方案 → 域 → 地址池 → 虚拟模板 → 接口绑定」,但视图名字、命令拼写差别不小。先记住三条最省事的差异:

  1. 华为的「认证方案/计费方案」在 H3C 里合并消失了,H3C 直接在 ISP 域里一条命令指定:authentication ppp radius-scheme rs1。
  2. 华为的 radius-server group 在 H3C 里叫 radius scheme。
  3. 华为在 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 新手踩坑与注意事项

  1. 把 BRAS 当交换机配,去给用户 VLAN 配 VLANIF 网关——症状是用户能拨上号但上不了网。BRAS 的用户网关在地址池里,不在 VLANIF 上,别去建 VLANIF。
  2. 华为 NE40E 忘记 commit——症状是配置看起来全对、就是一丁点效果都没有。看提示符:带 ~ 就是没提交。
  3. 拿 S 系列交换机的思路去理解 BRAS 的「接口」——对 BRAS 来说,真正的主体是「会话」,接口只是会话的出生地。排错要 display access-user,而不是只看接口 up 没 up。
  4. PPPoE 和 IPoE 的配置混在一台设备上却分不清域——一个域一套认证方式,混用会让用户走错认证路径。建议按业务起名,如 isp_dorm、isp_hotel。
  5. 以为 BRAS 自己存账号——绝大多数部署里账号在 RADIUS 上,BRAS 本地只做兜底。改了 BRAS 本地用户却发现登录还是失败,说明请求根本已经打到 RADIUS 了。
  6. 忽略 license 与单板门槛——H3C 非 CSPEX/CEPC 板卡、华为未激活 BRAS 授权,都会导致「配置命令报错」而不是「功能不生效」,这两种报错含义完全不同,别混淆。
  7. 地址池按接口个数规划——应该按并发在线用户数规划,且要留余量。池子用满的表现是「认证通过但拿不到地址」,这个现象极易被误判成认证问题。

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 对照设备实际版本的文档。

自测题

  1. 为什么 BRAS 的用户网关上不能配在 VLANIF 接口上?
  2. 华为 NE40E 上敲完配置提示符显示 [~HUAWEI],意味着什么?
  3. PPPoE 与 IPoE 在「认证」和「分配地址」的先后顺序上有什么本质区别?
  4. H3C 没有华为那种独立的 authentication-scheme,认证方式配在哪里?
  5. 一台 BRAS 的容量应该按什么维度规划?
  1. BRAS 的用户是「会话」而非「接口/VLAN」,用户网关由地址池的 gateway 指定(华为)或 gateway-list 指定(H3C),用户地址从池中动态分配,路由以 /32 主机路由形式注入,所以不存在 VLANIF 网关。
  2. 配置处于「未提交」状态,改动尚未生效,需要执行 commit。[*HUAWEI] 才表示差异已提交。
  3. PPPoE 是「先认证、后分配地址」(LCP → PAP/CHAP → IPCP);IPoE 是「先通过 DHCP 拿到地址、再通过 Web/Portal 认证」,认证滞后于地址分配。
  4. 直接配置在 ISP 域(domain name isp1)视图里,例如 authentication ppp radius-scheme rs1、authorization ppp radius-scheme rs1、accounting ppp radius-scheme rs1。
  5. 按**并发在线用户数(会话数)**规划,而不是按接口数量,需要同时考虑单板会话规格、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 章。 全书所有命令尽量有官方出处,查不到的显式标注「待核实」。 返回系列目录