多运营商环境下校园无线wifi计费系统代拨实现的真实挑战
很多学校的网络出口不只一个运营商。电信拉一条、联通拉一条、移动再拉一条,这种情况在高校里非常普遍。对学生来说,用的什么手机号就买的什么运营商的套餐,但学校的校园无线wifi计费系统面对三个出口,怎么让学生用自己对应的运营商线路上网,这就是代拨要解决的问题。
代拨的基本逻辑不复杂。学生用学号在Portal页面登录,认证通过后,代拨网关根据学生的运营商属性自动选择对应的出口线路,把学生的上网请求转发过去。对运营商那边来说,看到的还是一个正常的PPPoE拨号请求。对学生来说,整个过程是无感的,不需要知道自己走的是哪条线。
但落地的时候,这个"不复杂"会变成一堆要填的坑。首先是账号转换的问题。校园无线wifi计费系统用的学生账号体系,运营商那边用的是一个完全不同的账号体系。学生登录用的是学号,运营商那边可能是一个宽带账号。代拨网关要在中间做一层映射——把学号映射到运营商的宽带账号,认证的时候用运营商账号发起PPPoE拨号。这层映射关系怎么维护、谁来维护、代理商变更时怎么批量更新,这些都不是技术上一个字段对应能解决的。
第二个问题是运营商的账号资源管理。运营商给学校的宽带账号是有数量限制的,不可能给每个学生都配一个独享账号。通常是按并发数分配的——比如学校买了500个并发账号,同一时间最多500个学生通过代拨上网。校园无线wifi计费系统需要精确控制:当前有多少个账号在用、哪个学生占着哪个账号、学生下线后账号有没有及时释放。如果释放不及时,账号池很快就会被占满,后面的学生明明认证通过了就是上不了网。这一类问题在实际项目里出现的频率比想象中高得多。
第三个问题涉及出口选路策略。假设一个学生用的是电信手机号、买了电信的校园宽带套餐,但他连上的AP走的是联通的汇聚交换机。校园无线wifi计费系统检测到他是电信用户后,代拨网关需要把流量引导到电信的出口。这时候网络的路径是:学生→AP→交换机→代拨网关→电信出口→公网。如果交换机到代拨网关再到电信出口这段路径上有瓶颈,学生的实际体验就是"明明连上了但网速很慢"。这类问题不是计费系统的问题,但用户投诉的时候第一个想到的就是计费系统有问题。
还有一个容易踩的坑是DNS配置。多运营商出口的情况下,电信的DNS、联通的DNS、移动的DNS解析结果可能不一样。如果学生走的是电信出口但被分配了联通的DNS,某些网站可能会出现解析慢、解析不到、或者被引导到CDN错误节点的情况。校园无线wifi计费系统在做代拨的时候,需要同时把DNS策略做好——运营商是什么、DNS就配什么,确保端到端的体验一致。
代拨还有一个容易被忽略的价值是流量统计和结算。运营商给学校的带宽计费方式通常是按峰值带宽或者95计费。代拨网关可以精确统计每个运营商出口的实际流量使用情况,给学校管理层提供一个数据依据——到底哪条线的带宽不够用了、哪条线买多了。有些学校给三条线各买了1G带宽,实际使用下来电信用了800M、联通用了200M、移动用了100M,这就是浪费。
代拨网关本身也需要考虑高可用。如果代拨网关挂了,所有通过代拨上网的学生都会掉线。这种故障的严重程度比Portal认证页面打不开还要高。在方案设计的时候,至少要考虑双机热备——主网关出问题,备用网关在几十秒内接管。这个切换过程对认证中的学生影响最小,但已经在线正在传输数据的学生可能会有几秒到十几秒的中断。项目前期就要跟学校沟通清楚这个预期。
另外,代拨需要配合运营商的BRAS或者MSE设备。不同运营商、不同地市的BRAS配置习惯不同,有的需要特殊参数、有的对认证报文格式有要求。前期对接的时候一定要做实际的联调测试,不能只看文档。一个很典型的案例是:某个地市的电信BRAS对代拨网关发起的PPPoE请求要求携带特定的service-name字段,不携带就直接拒绝。这种细节如果没有在实际环境中跑过一遍,方案写得再漂亮也没用。
总结一下,多运营商代拨不是简单地"接三条线然后自动选路"。校园无线wifi计费系统在代拨环节需要解决的四个核心问题:账号映射和资源池管理、出口选路策略与DNS、流量统计和带宽优化、设备高可用。每个问题在方案阶段就聊透,比项目上线后再救火划算得多。


