第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)汇聚来自家庭或企业用户的宽带接入流量。

BRAS 在网络中的位置 - 图示

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 会话。

CGNAT 基本原理 - 图示

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 协议、域管理 认证失败、计费异常

思考题:

  1. 为什么 PPPoE 接入方式比纯 IPoE 更适合家庭宽带场景?在哪些方面 PPPoE 提供了 IPoE 不具备的能力?
  2. CGNAT 地址池设计时,如何估算所需的公网 IP 数量和端口范围?需要考虑哪些业务参数?
  3. 在 BRAS 主备切换场景中,如果 CGNAT 会话表无法在主备之间同步,切换过程中用户业务会中断吗?为什么?

下篇预告:第194篇《CGNAT(运营商级 NAT)原理与端口块分配》将深度剖析 CGNAT 的内部工作原理,包括端口分配算法、NAPT 映射机制、端口块(Port Block)分配策略(RFC 7671)以及在大规模部署中如何避免端口耗尽。