第193篇:城域网 BRAS 与 CGNAT 部署
关键词:BRAS、CGNAT、城域网、AAA、PPPoE、DHCP、NAT64、IPv4 地址枯竭、运营商网络、用户接入
一、引言
随着互联网用户的爆炸式增长和 IPv4 地址资源的日益枯竭,城域网面临着前所未有的挑战。BRAS(Broadband Remote Access Server,宽带远程接入服务器)作为城域网的核心接入设备,负责汇聚来自千家万户的宽带用户流量;而 CGNAT(Carrier-Grade NAT,运营商级 NAT)则成为缓解 IPv4 地址短缺的关键技术手段。
在第192篇中,我们学习了不同自治域之间的跨域互联方案。现在将视角从骨干层下沉到接入层,深入探讨城域网中 BRAS 的部署架构、用户接入认证流程、以及 CGNAT 的大规模部署实践。
二、BRAS 城域网部署架构
2.1 BRAS 在网络中的位置
BRAS 位于城域网的核心位置,向上通过骨干路由器(CR)连接互联网,向下通过接入交换机(如 MAU、OLT)汇聚来自家庭或企业用户的宽带接入流量。

2.2 用户接入方式
城域网中常见的用户接入方式包括:
| 接入方式 | 协议 | 认证方式 | 地址分配 | 典型场景 |
|---|---|---|---|---|
| PPPoE | Point-to-Point Protocol over Ethernet | RADIUS(CHAP/PAP) | BRAS 分配或 DHCP | 家庭宽带 |
| DHCP | Dynamic Host Configuration Protocol | 无/Portal 认证 | DHCP Server | 企业专线、酒店 WiFi |
| 802.1X | IEEE 802.1X 端口认证 | RADIUS(EAP) | DHCP Server | 校园网、企业内网 |
| IPoE | IP over Ethernet(纯三层接入) | Portal/无认证 | DHCP Server 或静态 | 政企专网 |
2.3 BRAS 主备部署
BRAS 作为城域网核心节点,必须具备高可用性保障。通常采用 VRRP(Virtual Router Redundancy Protocol)或 ISSU(In-Service Software Upgrade)实现主备切换。
# BRAS-1 配置(主用)
<BRAS-1> system-view
[BRAS-1] sysname BRAS-1
# VRRP 配置(双机热备)
[BRAS-1] interface Vlanif100
[BRAS-1-Vlanif100] ip address 10.100.1.1 255.255.255.0
[BRAS-1-Vlanif100] vrrp vrid 100 virtual-ip 10.100.1.254
[BRAS-1-Vlanif100] vrrp vrid 100 priority 120
[BRAS-1-Vlanif100] vrrp vrid 100 preempt-mode timer delay 30
[BRAS-1-Vlanif100] vrrp vrid 100 authenticate-mode simple cipher Huawei@123
[BRAS-1-Vlanif100] quit
2.4 PPPoE 接入配置
# BRAS-1 PPPoE 接入配置
[BRAS-1] interface GigaEthernet5/0/0
[BRAS-1-GigaEthernet5/0/0] portswitch
[BRAS-1-GigaEthernet5/0/0] port link-type trunk
[BRAS-1-GigaEthernet5/0/0] port trunk allow-pass vlan 1000 to 2000
[BRAS-1-GigaEthernet5/0/0] quit
# 创建 PPPoE 接入模板
[BRAS-1] pppoe-global-interface AN
[BRAS-1] pppoe-client bind AN
# 创建 VLAN 接入层接口
[BRAS-1] interface Vlanif1000
[BRAS-1-Vlanif1000] pppoe-server AN VLAN-based
[BRAS-1-Vlanif1000] quit
# AAA 配置
[BRAS-1] aaa
[BRAS-1-aaa] authentication-scheme radius
[BRAS-1-aaa] authorization-scheme radius
[BRAS-1-aaa] accounting-scheme radius
[BRAS-1-aaa] domain broadcom
[BRAS-1-aaa-domain-broadcom] authentication-scheme radius
[BRAS-1-aaa-domain-broadcom] authorization-scheme radius
[BRAS-1-aaa-domain-broadcom] accounting-scheme radius
[BRAS-1-aaa-domain-broadcom] quit
[BRAS-1-aaa]quit
# RADIUS 服务器配置
[BRAS-1] radius-server host 10.200.1.10 1812
[BRAS-1] radius-server shared-secret cipher Huawei@RADIUS
[BRAS-1] radius-server retransmit 3
[BRAS-1] radius-server timeout 5
三、CGNAT 部署架构
3.1 CGNAT 基本原理
CGNAT(Carrier-Grade NAT,运营商级网络地址转换)是传统 NAT 技术在运营商网络中的大规模应用。当 IPv4 公网地址池(如 /20 地址段)不足以给每个用户分配一个独立公网 IP 时,CGNAT 将大量用户的私有地址映射到少量公网 IP 上,通过不同的端口号进行区分。
一个公网 IP + 65535 个端口(实际可用约 64000 个,1024 以下保留端口不可用),理论上一个公网 IP 最多可承载约 64000 个并发 NAT 会话。

3.2 CGNAT 部署模式
| 部署模式 | 说明 | 优点 | 缺点 |
|---|---|---|---|
| 集中式 CGNAT | 在城域网核心集中部署 CGNAT 设备 | 易于管理和维护,地址池统一调度 | 单点故障风险,回包路径绕行 |
| 分布式 CGNAT | 在多个 BRAS 上分散部署 CGNAT | 就近转换、降低回包延迟、提高可靠性 | 地址池分散、管理复杂 |
| 混合部署 | 核心集中 + 边缘分布式 | 灵活性强 | 架构最复杂 |
3.3 CGNAT 配置(华为 VRP)
# CGNAT 地址池配置
<BRAS-1> system-view
[BRAS-1] nat address-group 1
[BRAS-1-nat-address-1] address object 59.43.1.1 59.43.1.32
[BRAS-1-nat-address-1] port 20000 60000
[BRAS-1-nat-address-1] quit
# NAT 实例配置
[BRAS-1] nat instance CGNAT-WAN
[BRAS-1-nat-instance-CGNAT-WAN] nat address-group 1
[BRAS-1-nat-instance-CGNAT-WAN] quit
# NAT 策略配置
[BRAS-1] nat-policy
[BRAS-1-nat-policy] rule name CGNAT-OUTBOUND
[BRAS-1-nat-policy-rule-CGNAT-OUTBOUND] source-address 10.0.0.0 0.255.255.255
[BRAS-1-nat-policy-rule-CGNAT-OUTBOUND] destination-address 0.0.0.0 255.255.255.255
[BRAS-1-nat-policy-rule-CGNAT-OUTBOUND] action nat instance CGNAT-WAN
[BRAS-1-nat-policy-rule-CGNAT-OUTBOUND] quit
[BRAS-1-nat-policy] quit
# 在出接口应用 NAT 策略
[BRAS-1] interface 100GE1/0/1
[BRAS-1-100GE1/0/1] nat-policy outbound CGNAT-OUTBOUND
[BRAS-1-100GE1/0/1] quit
3.4 CGNAT 性能考量
大规模 CGNAT 部署时,必须关注以下性能指标:
| 指标 | 含义 | 参考值 |
|---|---|---|
| CPS(Connections Per Second) | 每秒新建连接数 | ≥ 200,000 CPS |
| TPS(Throughput) | 吞吐能力 | ≥ 400 Gbps |
| Session Table Size | NAT 会话表容量 | ≥ 20,000,000 sessions |
| CPU 利用率 | NAT 转换对 CPU 的占用 | < 70% |
| 内存利用率 | 会话表占用的内存 | < 80% |
四、BRAS 与 CGNAT 联动故障案例
4.1 案例:用户能 PPPoE 拨号但无法上网
故障现象: 某地市城域网中,大量家庭宽带用户反映能正常 PPPoE 拨号获取地址,但无法访问互联网。
排查过程:
# 在 BRAS 上查看用户会话状态
<BRAS-1> display pppoe-session user-name user12345
PPPoE Session Status: Up
Local Address: 10.8.1.100
Remote Address: 192.168.1.1
# 检查 CGNAT 会话表
<BRAS-1> display nat session verbose source-ip 10.8.1.100
Total sessions: 0 # 没有NAT会话!
根因分析: NAT 策略未正确应用到用户流量的出接口,导致用户数据包没有经过 NAT 转换,以私有地址(10.8.1.100)直接发往互联网,被上游 ISP 丢弃。
解决方案:
# 检查 NAT 策略绑定
<BRAS-1> display nat-policy interface 100GE1/0/1
# 确认 outbound 方向是否绑定了正确的 NAT 策略
# 重新应用 NAT 策略
[BRAS-1] interface 100GE1/0/1
[BRAS-1-100GE1/0/1] nat-policy outbound CGNAT-OUTBOUND
[BRAS-1-100GE1/0/1] quit
# 验证 NAT 会话
<BRAS-1> display nat session verbose source-ip 10.8.1.100
Total sessions: 3 # 恢复正常
Session Table:
Source IP : 10.8.1.100
Source Port : 49152
Global IP : 59.43.1.5
Global Port : 25678
Protocol : TCP
4.2 案例:CGNAT 会话表满载导致用户断网
故障现象: 晚间高峰期(20:00-22:00),部分用户间歇性断网,ping 公网出现严重丢包。
排查过程:
# 查看 NAT 会话表使用率
<BRAS-1> display nat session statistics
Session Table Utilization: 98.5% # 几乎满载!
Total Sessions: 19,700,000
Maximum Sessions: 20,000,000
# 查看 NAT 地址池使用情况
<BRAS-1> display nat address-group 1
Address Pool: 59.43.1.1 - 59.43.1.32 (32 IPs)
Ports per IP: 40000
Total Available Ports: 1,280,000
Used Ports: 1,260,000 # 端口耗尽
根因分析: 晚间大量用户同时在线观看高清视频,每用户占用多个 TCP/UDP 连接,CGNAT 地址池的端口资源被耗尽,新用户的 NAT 会话无法创建。
解决方案:
# 扩展 NAT 地址池
[BRAS-1] nat address-group 1
[BRAS-1-nat-address-1] address object 59.43.1.1 59.43.1.64 # 从32扩展到64个IP
[BRAS-1-nat-address-1] port 1024 65535 # 最大化端口范围
[BRAS-1-nat-address-1] quit
# 优化 NAT 会话超时时间(减少空闲会话占用)
[BRAS-1] nat instance CGNAT-WAN
[BRAS-1-nat-instance-CGNAT-WAN] tcp timeout 3600 # TCP 空闲超时从7200秒降至3600秒
[BRAS-1-nat-instance-CGNAT-WAN] udp timeout 300 # UDP 空闲超时从600秒降至300秒
[BRAS-1-nat-instance-CGNAT-WAN] icmp timeout 60
[BRAS-1-nat-instance-CGNAT-WAN] quit
五、总结
BRAS 与 CGNAT 是城域网中密不可分的技术组合。BRAS 完成用户的接入、认证、授权和计费(AAA),CGNAT 则确保有限 IPv4 地址资源支撑海量用户并发上网。
| 组件 | 核心功能 | 关键技术 | 故障重点 |
|---|---|---|---|
| BRAS | 用户接入与 AAA | PPPoE、VLAN 终结、VRRP 主备 | 拨号失败、AAA 超时 |
| CGNAT | IPv4 地址复用 | NAT 实例、地址池、策略绑定 | 会话表满载、NAT 策略未应用 |
| AAA(RADIUS) | 认证、授权、计费 | RADIUS 协议、域管理 | 认证失败、计费异常 |
思考题:
- 为什么 PPPoE 接入方式比纯 IPoE 更适合家庭宽带场景?在哪些方面 PPPoE 提供了 IPoE 不具备的能力?
- CGNAT 地址池设计时,如何估算所需的公网 IP 数量和端口范围?需要考虑哪些业务参数?
- 在 BRAS 主备切换场景中,如果 CGNAT 会话表无法在主备之间同步,切换过程中用户业务会中断吗?为什么?
下篇预告:第194篇《CGNAT(运营商级 NAT)原理与端口块分配》将深度剖析 CGNAT 的内部工作原理,包括端口分配算法、NAPT 映射机制、端口块(Port Block)分配策略(RFC 7671)以及在大规模部署中如何避免端口耗尽。