做了这么多年宽带接入网,我越来越觉得转控分离vBNC/vBRAS这套架构,最反直觉的地方是:它看起来是把控制面、用户面拆分,实际是在解决一个“合”的问题——让用户的会话状态、转发规则、策略模板,能跨网元、跨设备、跨厂商保持一致。上一篇讲了这套架构为什么会出现的背景,这篇接着把架构本身讲细一点:vBNC和vBRAS各自承担什么,C/U接口怎么设计,用户上线流程怎么走,最后再聊聊落地过程中那些测试用例里根本测不出来的坑。
1. 为什么说一体化BRAS已经是“过去的答案”
1.1 一体化BRAS的三个死穴
宽带接入网里,BRAS一直是“咽喉”角色。所有宽带用户上线、认证、计费、流量转发、QoS调度、组播复制,几乎都在这一台设备上完成。早期这样设计没问题,一台BRAS服务几千户、几万户,性能够用,逻辑也简单。可到了当下的流量规模,三个问题越来越明显。
第一个是容量和性能的硬瓶颈。单框BRAS的转发能力、会话数、路由表项,受限于硬件背板和主控架构,扩容只能换更高端设备或者横向叠设备。叠加之后又要面对负载分担策略、环路防护、跨框会话一致性这些麻烦。高清视频、云游戏、视频会议一上来,流量模型从“下行多上行少”变成“上下行都高”,不少老设备的缓存和调度器根本扛不住,高峰期丢包、时延抖动就成了事故常态。
第二个是新业务部署周期太长。一体化设备内部各功能模块耦合太紧,要加一个新的组播协议、新的认证方式、新的策略控制逻辑,开发完成后要整机测试、整网升级,一个局点一个局点排期。业务部门提需求,网络部门说要等三个月,这在今天的业务迭代节奏下几乎没法接受。
第三个是厂商锁定。控制面和转发面绑定在同一台设备里,软件和硬件由一家厂商闭源交付。运营商想引入新的转发设备、想自己做一点差异化功能,基本都要看厂商的排期和配合意愿。对运营商来说,这不仅是成本问题,更是整个网络演进节奏被卡住的问题。
1.2 CUPS不是新概念,为什么现在才真正落地
转控分离这个思路,早在SDN刚热起来那几年就被反复讨论过。3GPP在R14里也正式定义了CUPS(Control and User Plane Separation)架构,率先用在移动核心网。宽带接入领域对应的标准化成果,主要是BBF的TR-384,叫Cloud Centralized BNG,从名字就能看出来是要把BNG的控制逻辑集中上云。
但理论和商用之间差了很远。真正让这套架构大面积落地,靠的是三个条件同时成熟。
第一是通用服务器的转发能力突破。早年用软件在x86上做流量转发,性能惨不忍睹。DPDK出现之后,通过大页内存、CPU绑核、轮询收包等手段,通用服务器跑几十甚至上百Gbps的转发成为可能。再加上智能网卡和FPGA加速卡的出现,用户面的性能短板被逐步补齐。
第二是NFV编排体系的成熟。vBNC本质上就是一个虚拟化网元,可以像普通云主机一样部署、升级、弹性扩缩容。配合MANO和编排器,新局点开通、故障恢复、容量调整都能自动化完成,这在过去一体化设备时代是做不到的。
第三是业务倒逼。现在BRAS要承载的远不止家庭宽带,还有专线接入、物联接入、中小企业多业务接入。不同业务对时延、带宽、策略的要求差异极大,一体化设备处理起来非常吃力。运营商需要一套能按业务灵活调度的架构,转控分离正好补齐了这个缺口。
1.3 vBNC和vBRAS各自站在什么位置
理解这套架构,可以先记一句话:vBNC管“大脑”,vBRAS管“手脚”。
vBNC(virtual Broadband Network Controller)是控制面网元,负责所有用户的会话管理、认证授权计费、地址分配、策略控制,以及向用户面下发转发规则。它不直接碰用户数据报文,但每一个用户的在线状态、业务属性、QoS参数都记在它这里。
vBRAS在转控分离语境下通常指用户面网元,有时也叫vUP(User Plane)。它负责真正的高速转发、QoS执行、ACL过滤、流量统计和组播复制。它收到vBNC下发的转发表项和策略后,在本地执行,并把执行结果和统计数据反馈给控制面。
这两个网元之间的边界划分,本质上就是“决策在哪里做”和“执行在哪里做”的划分。vBNC做决策,vBRAS做执行,两者之间通过标准化的C/U接口通信。接口上跑什么消息、消息怎么定义,直接决定了这套架构能撑多大、能跑多稳。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. vBNC控制面到底忙什么
2.1 会话管理:一台严格的状态机
vBNC是一台状态机密度极高的网元。每个宽带用户从发起连接请求开始,就进入vBNC维护的会话状态机:初始、认证中、在线、授权变更、下线、清理。整个生命周期里,任何一条路径走错,都会表现为用户上不了网或者掉线。
用户侧看着很简单的一个“宽带连接”,对应到设备里其实是一张复杂表项:用户名、IP地址、MAC地址、VLAN、接入端口、QoS模板、计费ID、业务属性,几十个字段一次都要对齐。一体化BRAS时代,这些字段以本地内存表的形式存在单台设备里,同步问题不突出。转控分离之后,这份表的核心副本在vBNC,vBRAS上只保留转发必要的最小子集,比如IP、VLAN、隧道信息、策略ID。
这个变化带来的直接后果是:会话建立和删除的时序必须显式设计。传统设备内部通过共享内存通信,状态更新是同步的;vBNC和vBRAS之间走的是网络消息,天然存在延迟和丢包可能。所以必须把“下发会话确认”“用户侧响应”“状态同步”这些步骤拆开,分别设计超时和重试机制。
初期做转控分离项目,很多人把注意力全放在转发性能上,忽略了vBNC的并发会话管理能力。一个省级节点动辄上百万在线会话,vBNC要能扛住这个规模的会话状态,还要能快速处理上线风暴和下线风暴。比如晚间新闻联播结束后,大量用户同时关电视,光猫下线消息短时间内涌进来,如果vBNC处理不过来,整个控制面就会卡死,连带新用户上线也受影响。
2.2 认证计费:RADIUS信令留在控制面
宽带用户的认证计费依赖RADIUS协议,由BRAS和AAA服务器配合完成。转控分离之后,一个关键变化是:RADIUS信令由vBNC负责,vBRAS完全不用管。
具体流程是:用户发起连接请求后,vBRAS感知到新建会话,把用户信息上报给vBNC;vBNC构造RADIUS认证请求发给AAA服务器;AAA服务器返回认证结果和用户属性;vBNC根据结果决定接受或拒绝,如果接受,再向vBRAS下发允许转发的规则。计费报文的生成与上报同样由vBNC负责,周期性从vBRAS采集流量统计,再封装成RADIUS计费包发给AAA。
这样设计的好处很明显:计费信息全部集中到vBNC一层,运营商的计费系统只需要和vBNC对接,不需要同时对接几台、几十台vBRAS。用户面分布式部署之后,这个逻辑能省掉大量对接工作,也让计费数据的口径更统一。
代价是vBNC的可靠性成了单点风险。vBNC宕机,所有认证计费流程中断,新用户无法上线,老用户的计费信息也可能丢。所以现网部署中,vBNC必须做双机热备或集群化,而且要求主备切换时用户不掉线。这背后需要一套完整的会话状态同步机制,不能靠简单的“冷备”糊弄过去。
2.3 策略与QoS下发:从全局策略到单用户指令
宽带运营里,用户套餐不同,对应的带宽、优先级、封禁策略也不同。传统BRAS里,这些策略通过配置逐条下发到设备。转控分离后,vBNC变成了策略决策和分发的中枢。
这套体系分三层。最上层是OSS/BSS或者SDN控制器,负责定义全局策略,比如“开通了千兆套餐的用户,下行限速1000M,优先队列为高”。中间层是vBNC,负责把全局策略翻译成单用户可执行的规则。最下层是vBRAS,执行具体的QoS队列、限速、ACL过滤。
这里有一个很容易踩的坑:策略的生效粒度。同一个用户,可能同时被多条策略覆盖,比如访问控制、带宽限速、优先级标记、URL过滤。vBNC必须把这些策略合并、去重、解决冲突,再转换成用户面可执行的指令。如果策略下发顺序不对,或者合并逻辑有缺陷,真实表现就是用户套餐明明是100M,实际跑不满,而且问题非常难排查,因为转发路径上看不到任何丢包,就是限速规则冲突了。
另一个细节是策略变更的实时性。用户中途改套餐,vBNC要能立刻更新对应的QoS模板,让vBRAS调整限速参数,而不是等用户重新拨号才生效。这个能力在现网里直接影响用户感知。
3. vBRAS用户面的“力量”从哪里来
3.1 用户面的核心功能清单
vBRAS作为数据面网元,要做的事情非常多。列一个核心功能清单:
- 用户接入与报文识别:根据物理端口、VLAN、隧道标识识别每一个用户,确保流量归属正确;
- 路由与转发:逐包查找转发表,执行IP转发,这是最基础也最耗性能的工作;
- QoS调度:按模板做队列调度、限速、优先级标记;
- 组播复制:IPTV场景里,一个组播流要复制给多个用户,复制效率和时延直接决定频道切换体验;
- ACL过滤:安全策略、访问控制规则,按地址、端口、应用层信息做匹配;
- 流量统计:为计费、运维指标采集提供数据;
- 隧道封装与解封装:VXLAN、L2TP、GRE等隧道类型。
传统BRAS做这些事,用的是专用的转发芯片,处理路径是硬件流水线。vBRAS如果跑在通用服务器上,就必须依赖软件转发加速方案。这也是vBRAS和传统BRAS性能差异最大的地方。
3.2 C/U接口:控制面与用户面的神经链路
C/U接口是整套转控分离架构里最关键的一环,也是最容易出问题的地方。它承载的消息大致分四类。
第一类是会话管理消息。vBRAS感知到新用户上线,上送会话建立请求;vBNC下发会话确认,包含用户IP、VLAN、QoS模板等参数。会话修改、删除也走这条通道。
第二类是策略下发消息。vBNC把带宽模板、ACL规则、优先级参数下发给vBRAS,vBRAS收到后翻译成本地转发规则。
第三类是统计上报消息。vBRAS周期性把流量统计、会话状态上报给vBNC,用于计费生成和状态监控。
第四类是心跳与状态同步消息。双方互相探测存活状态,维护会话表项的一致性。
协议实现上,业界没有完全统一的答案。有的厂商基于OpenFlow做扩展,有的采用类似PFCP(Packet Forwarding Control Protocol)的思路,有的直接用NETCONF/YANG模型。BBF TR-384里定义了相关的YANG数据模型和接口框架,但实际实现仍有大量私有扩展。
接口的性能指标同样要重视。消息处理延迟、可靠传输、乱序处理、主备切换时的链路重建,每一项都要有明确的容错设计。我见过不止一次,POC阶段接口功能一切正常,一上高并发测试,消息队列直接溢出,大量会话建立请求被丢弃,用户上线成功率暴跌。
3.3 性能与弹性:通用服务器能不能替代专用芯片
这是所有刚接触vBRAS的人都会问的问题:通用服务器跑vBRAS,性能到底能不能跟专用设备比?
答案是:看场景,看实现。
纯软件转发,用DPDK收包、大页内存、CPU绑核,单台服务器跑到几十Gbps的转发能力是可以做到的。如果叠加智能网卡卸载、FPGA加速,还能再上一个台阶。但和专用运营商级转发芯片相比,软转发的时延、抖动、每包处理开销仍然偏高,尤其在大量小包场景下,性能差距会非常明显。
所以现网vBRAS的部署,通常不是“服务器替代专用设备”,而是“在需要弹性、需要快速上线新功能的场景用vBRAS,在大容量、高性能要求的场景用专用UP设备”。大多数厂商落地时都会走混合方案,兼顾弹性与性能。
4. 一个真实用户从上线到看视频,背后的流程有多长
4.1 DHCP接入:最常见的家庭宽带上网方式
家庭路由器接入网络,向BRAS发DHCP Discover报文。在转控分离架构下,这个流程比一体化BRAS多了一条控制消息链路。
- 用户DHCP Discover报文到达vBRAS的接入端口;
- vBRAS识别出新用户,提取端口、VLAN、MAC等信息,向vBNC发送新建会话请求;
- vBNC为该用户创建会话状态,决定使用哪个地址池,从DHCP服务器拿到分配地址,或者直接在vBNC内部完成地址分配;
- vBNC向vBRAS下发会话确认消息,携带用户IP、QoS模板、默认网关等参数;
- vBRAS建立本地转发表项后,向用户回DHCP Offer;
- 用户后续的DHCP Request/ACK流程完成后,vBNC触发计费开始记录,用户正式进入上网状态。
这里要纠正一个常见的理解误区:很多人以为vBRAS必须运行DHCP服务,其实不一定。DHCP地址分配的决定权在vBNC,vBRAS只需要在用户侧和vBNC之间做消息的承载与分发。地址池管理、租约管理、冲突检测这些逻辑都可以完全由控制面负责。
4.2 PPPoE接入:老协议在转控分离下的特殊处理
PPPoE比DHCP复杂得多,因为PPPoE协议本身带状态机,报文承载在以太网帧里,不能简单地“先放行再认证”。
转控分离下,PPPoE流程是这样走的:
- 用户发出PADI报文,vBRAS识别出这是PPPoE发现报文,上送vBNC;
- vBNC回PADO,经过vBRAS转发给用户;
- 用户发PADR,vBRAS继续上送,vBNC生成会话ID并回PADS;
- 进入LCP协商阶段,由vBNC负责协商;
- 认证阶段,vBNC和RADIUS服务器交互,完成用户名密码校验;
- 认证通过后,vBNC下发用户转发规则,vBRAS建立PPP对应的数据面表项;
- IPCP协商完成后,用户正式上线。
最关键的细节是:PPP会话的状态机在vBNC,但PPP报文的收发点在vBRAS。这意味着vBRAS必须能识别PPP报文,并且决定“这个报文要上送控制面”还是“直接转发”。判断依据是会话状态和报文类型。通常实现方案是在vBRAS上维护一张初步分类表,把LCP、PAP/CHAP等协议报文拦截上送,把后续的数据报文直接转发。
如果vBRAS的分类逻辑有缺陷,最常见的问题就是PPP LCP回显请求被误转发,导致PPP会话频繁超时掉线,用户感知就是“光猫亮红灯,拨号老失败”。
4.3 组播流程:IPTV场景里的特殊难点
组播是宽带网络里一个特殊而重要的场景。一个IPTV直播频道,从组播源到用户侧,数据流是“一份进来,多份出去”,传统BRAS通过组播复制把视频流分发到多个用户。转控分离之后,组播复制放在vBRAS,但组成员关系管理放在vBNC。
流程大致是:用户终端的IGMP报文进入vBRAS,vBRAS识别后上送到vBNC;vBNC维护组成员信息,计算组播转发表项,下发给vBRAS;vBRAS根据表项做复制和转发。如果一个组播组横跨多个vBRAS,vBNC还要负责跨设备组播表的协调,确保每个vBRAS都拿到完整表项。
这个场景对C/U接口的时延和同步要求极高。用户快速切换频道时,IGMP Leave和Join消息非常密集,vBRAS上送vBNC再下发新表项,整个链路走一遍的时间如果能控制在几十毫秒内,频道切换体验基本看不出来。一旦超过几百毫秒,用户感知就是“切台要等黑屏”。
另外,组播复制本身也吃转发性能。纯软件复制在用户数少时没问题,用户一多,CPU占用率立刻飙升。如果还要叠加加密、封装之类的处理,性能衰减更明显。做容量规划时,必须把组播复制性能单列出来评估。
5. 组网部署怎么选:集中、分布、混合,没有绝对答案
5.1 集中式:一个大控制器管所有U面
最简单的部署模式是:一张网上只部署一对vBNC主备集群,所有vBRAS都归属这一个控制面。所有用户会话管理、策略、计费、日志都从这一对节点出。
优点是控制逻辑统一。策略变更只改一处就全网上生效,新用户、新套餐上线不用逐一登录设备配置,升级只需要动vBNC,用户面完全不用碰。RADIUS对接、日志采集、审计这些系统也只需要和一对节点联通,对接成本低。
缺点是vBNC成为集中风险点。虽然可以做集群,但同一集群的容量终归有上限,而且跨地域部署时,远端vBRAS到vBNC的控制链路时延如果超过几十毫秒,用户上线流程会明显变慢。另外所有RADIUS流量和控制消息都汇聚到一点,控制信道的带宽和并发能力必须提前铺够,否则高峰时段就是瓶颈。
适合集中式部署的场景,一般是网络规模中等、地域覆盖集中、对快速业务上线要求高的情况。
5.2 分布式:控制面跟随用户走
另一种思路是按照地域或接入节点分散部署vBNC,每个vBNC管理一部分vBRAS。适合网络规模大、地域跨度大的情况。
优点很明显:每个控制域覆盖范围小,vBNC到vBRAS的距离近,控制时延低,用户上线快。单个控制域出故障,影响范围也被限制在一定区域内,不会全网炸。而且控制面的规模瓶颈被拆散之后,单域的容量压力小很多,硬件要求也低。
缺点是管理难度上来了。多套vBNC之间需要做策略协调和用户状态同步。用户从A域漫游到B域时,会话状态和策略如何迁移,需要在架构层面预先设计。如果没有一套好的跨域协调机制,会出现用户在A域正常在线,到B域后业务异常的“半在线”状态。
运维侧也要面对更大的复杂度。以前登录一台BRAS就能管理整片区域的用户,现在可能要在多个控制域之间跳来跳去,如果没有统一的运维平台,光找问题就能累死人。
5.3 混合组网与资源池化
现实中的运营商网络,很少是纯粹的集中式或纯粹的分布式,更多是“控制面资源池化收编,用户面按需分布”。
具体做法是:在核心机房部署vBNC集群,按用户规模、地域属性划分多个逻辑控制域,逻辑上隔离,物理上共享资源。vBRAS按接入资源池部署,性能不够就横向扩容,扩完由编排系统自动纳管到对应控制域。
资源池化的价值在于灵活。vBNC和vBRAS都不需要和物理位置强绑定。新业务上线时,编排系统调度计算资源,拉起新的vBRAS实例,vBNC自动发现并纳管。如果OSS/BSS也打通了,新局点开通时间可以压缩到小时级,这在排期排到三个月以后的一体化设备时代根本不敢想。
不过资源池化对底层网络的要求也高。存储、计算、网络要能动态协同,虚拟机的迁移、状态快照、数据的持久化都要跟上,否则vBNC实例一旦漂移,会话数据全丢,反而比一体化设备更脆弱。
5.4 和现网共存:老设备、新设备,先跑起来再说
现网演进不可能一夜之间把所有BRAS换成vBNC/vBRAS。更常见的路径是设备利旧加新增,逐步迁移。
一种做法是保留老BRAS,继续承担现网存量用户的会话管理,同时新增vBNC和vBRAS承载新用户。等老用户慢慢迁移之后,老设备再逐步退网。另一种做法是把老BRAS整体降级为用户面,由新的vBNC统一控制,前提是老设备开放了相应的接口协议和适配层。
实际案例里,初期转控分离的目标通常不是“全替换”,而是“新业务、新用户先上vBRAS,老用户留在老BRAS”。这样可以让风险控制在一个可控范围内,等新架构稳定了,再做老用户的规模迁移。
做迁移方案时要特别注意业务连续性。用户从老BRAS迁到vBRAS,意味着IP地址可能变化、在线会话要重建、认证流程要重走。运营层面必须设计好迁移窗口和应急预案,否则一个操作失误,就是大面积用户投诉。
6. 我的踩坑记录:转控分离落地中的真实问题
6.1 C/U通道断链,用户到底掉不掉线
这是转控分离项目里被问得最多的问题,也是最容易在设计中想当然的地方。
一开始很多人的直觉是:控制面和用户面之间的链路都断了,说明控制器不可达,为了安全,应该把所有用户踢下线。但真实业务绝不能这么干。vBNC和vBRAS之间的链路只是抖动几秒钟,全城用户瞬间掉线,这个运维事故谁也担不起。
正确的做法是:断链后vBRAS保留已有的会话表项,用户流量继续转发,同时在控制面链路恢复后做一次全量状态同步,让vBNC和vBRAS之间的会话状态重新对齐。
这个策略在测试阶段很容易被忽略,因为大家总是先测“断链后是否有告警、是否上报告警”,很少直接模拟“断链后用户还在跑大流量”的混合场景。我强烈建议把这个场景列为必测项,而且要在高会话数下测,验证断链期间新建会话是否被拒、存量流量是否零中断、恢复后同步是否能在可接受时间内完成。
6.2 vBNC重启后,用户表项能不能收敛
vBNC是状态敏感网元,重启之后最怕的事情是:用户明明还在线,vBNC却不认识了。
处理这个问题,业界主要有两种思路。
方案一是“用户面待确认”:vBNC重启后,向所有vBRAS发送状态查询请求,vBRAS上报当前在线用户表项,vBNC根据上报重建会话状态。这个方案实现简单,但会话数大时,查询风暴有可能把刚恢复的vBNC再打挂,必须做限速和分批处理。
方案二是“审计日志回放”:vBNC把每个会话的关键事件写入审计日志,重启后从日志恢复,再和用户面对账。更稳定,但对日志系统的可靠性要求高,日志一丢,状态恢复就缺数据。
实际项目我更推荐两者结合。启动初期先用方案一把控制面快速拉起来,保证业务中断时间最短,再通过日志做精确对账,把漏掉的、错掉的会话状态校正过来。收敛完成后才允许承载新用户上线。
6.3 转发性能优化:从纯软件到硬件卸载
如果在POC测试里被问到“vBRAS性能能不能跑到xx Gbps”,千万别急着拍胸脯。性能取决于报文大小、会话数、ACL复杂度、组播复制数量,一个变量变了,结果天差地别。
我见过一个POC,单流大包测试跑得很漂亮,结果加上100万条ACL规则之后,转发性能直接掉一个数量级,用户侧的体验就是明显的卡顿和丢包。
经验是:先做性能基线的摸底,再针对实际场景单独评估。如果小包多,要考虑网卡多队列和RSS;如果规则多,要评估智能网卡的硬件卸载能力;如果组播复制多,务必单独验证复制性能,纯软件复制往往是最先崩的那条链路。
另外,vBRAS的性能优化不能只看转发面。CPU中断处理、内存带宽、网卡队列深度、vBNC和vBRAS之间的控制消息处理,都可能成为瓶颈。测试的时候要把“转发性能”和“会话管理性能”分开看,两个维度都达标才说明方案可用。
6.4 多厂商互通时的“标准”陷阱
现在市面上的vBNC/vBRAS方案,虽然都声称支持转控分离,但接口协议和消息格式的细节差别很大。
有的厂商在标准协议基础上扩展了私有字段,有的厂商把状态同步频率调得极高,还有的厂商对“会话删除”的语义理解不一样,导致一个vBNC下挂着不同厂商的vBRAS时,行为不一致非常难排。
我的建议是:采购阶段就把互通测试写进合同验收条款,明确C/U接口的开放性和可测试性。别等到上线前才发现两个厂商的vBRAS无法在同一vBNC下共存。跨厂商组网时,控制面的策略模型也要尽量统一,否则同一个用户在不同设备间迁移,策略生效情况可能完全不同。
还有一个容易被忽视的点是多厂商场景下的故障定界。一体化设备出了问题,一根网线一个设备就能定位;转控分离之后,一个用户掉线,可能出在vBRAS、vBNC、中间的承载链路、RADIUS服务器,任何一个环节。没有一套统一的监控和日志关联平台来做跨网元追踪,故障排查会非常痛苦。
转控分离这条技术路线走到今天,已经过了概念验证期,进入了大规模工程落地阶段。我最大的体会是:架构拆分是第一步,状态一致性才是真正的深水区。vBNC和vBRAS的分工无论划得多清楚,最终考验的都是两者之间消息交互的可靠性、状态同步的及时性、以及异常场景下的容错能力。做测试的时候,别总盯着“正常流程能跑通”就宣布成功,把断链、重启、拥塞、并发在线这几类异常场景反复压一压,能把问题提前暴露一半。后续如果大家感兴趣,我再把TR-384的YANG模型和C/U接口的消息字段定义拿出来,逐条对照实际实现讲一遍。
