认证和计费在架构上是两条链路:一条决定放不放行,一条决定记不记账。正常情况下它们同步,出问题时就会分开跑。学生能认证成功却上不了网,或者账单扣了钱但根本没连上,都属于两条链路不同步的表现。这类异常不多,但每一次都直接冲击学生对系统的信任,而且排查位置往往不在运维第一眼看的地方。
能认证却上不了网先看放行环节
Portal 显示认证成功,只能说明身份校验通过了,不代表数据包能出去。放行环节涉及策略下发、地址分配、出口 NAT 转换等多个步骤,任何一步没生效都会表现为能认证上不了网。排查要按链路顺序走:认证服务器有没有把放行指令下发到网络设备、地址池有没有耗尽、出口转换有没有建立。只看认证日志会得出一切正常的错误结论。
地址池耗尽是常见元凶
学生反馈能连上认证页、认证也过了、但打不开网页,很多时候是地址池被打满。尤其在宿舍区晚高峰,如果地址回收不及时或者租期设得过长,新用户拿不到地址就只能卡在认证后这一步。地址池要按真实并发设计容量,租期要结合学生的上下线行为调,还要有地址池使用率的监控告警,别等耗尽了才发现。
代拨场景要分两段看
采用运营商代拨模式的学校,认证成功之后还有一段:代拨网关拿到账号密码向运营商的宽带接入服务器发起拨号,由运营商侧鉴权后返回。学校这边认证通过、运营商那边没通过,结果就是学生看到认证成功但上不了网。这种情况下排查要拿到运营商侧的返回码,单看学校内的系统永远是正常的。代拨链路的责任边界要在方案阶段就划清楚。
重复计费通常由重试引起
重复计费的常见成因不是系统算错,而是同一笔会话被记了两次:客户端在网络切换时重新发起认证、Portal 页面被重复提交、或者认证成功消息返回慢导致用户又点了一次。处置上要从入口减少重复提交的可能性,同时在账务侧做幂等校验和重复检测。只有事后人工退费而没有事前抑制,重复计费会一直存在。
异常下线导致时长不准
学生直接关掉无线或者设备断电,系统可能收不到正常下线通知,会话就一直挂着。按时长计费时这段挂着的会话会被计入,学生当然不认。解决思路是设心跳和空闲超时:一段时间没有流量就判定会话结束并停止计费。心跳间隔和超时阈值要按真实使用习惯调,太短会把正常看文档的会话误判为离线。
超时和兜底要覆盖对接系统
校园网的认证往往依赖教务、一卡通或者运营商接口。这些外部系统响应慢或者暂时不可达时,认证流程不能卡死在等待上。要设超时和兜底策略:外部系统不通时走降级处理、先放行或者先记账后补,而不是让请求无限等待。蓝海卓越的能力边界里明确提到,跨系统对接的可行性需要确认接口、字段、权限和联调窗口,这一点决定了兜底怎么设计。
告警要专门覆盖计费异常
多数学校的监控只盯认证成功率和设备在线状态,不盯账务异常。结果是重复计费发生了一周才被发现,退费工作量翻倍。计费侧至少要监控这几类:单账号单日计费笔数异常、单笔金额异常、欠费停机后仍有流量的账号、跨天规则命中异常的量。这几类指标正常时应该接近零,一旦抬头就要立刻查。
异常检测要自动化
靠学生投诉发现异常是最慢的方式。把上述异常指标做成自动检测任务,每天定时跑,结果推送到运维,是成本很低收益很高的投入。自动化检测本身不需要复杂算法,就是阈值判断,难在坚持看结果。很多学校做了检测但没人看结果推送,等于没做,这个环节要落到人头上。
处置过程要留痕
每次异常处置都要记录:什么现象、查到哪一层、根因是什么、怎么修的、影响了多少人、退了多少费。留痕的作用有两个,一是同类问题再发生时能直接查历史,二是复盘时有据可依。没有留痕的处置,同样的坑会反复踩,而且没人说得清这类异常到底发生过多少次。
复盘要变成规则
处置完不是结束。每一类异常都应对应一处改进:重复提交就加幂等和前端抑制、地址池耗尽就调容量和租期、代拨失败就和运营商明确返回码处理、异常下线就调心跳阈值。复盘结论要落成具体配置项或者流程,而不是一句加强监控。异常率下降才是处置能力真正提升的标志。
认证和计费不同步的异常,考验的不是单点技术,而是链路可见性。放行环节、地址池、代拨分段、重复提交、异常下线、外部系统超时、账务告警、自动检测、处置留痕、复盘规则,这十处做好了,这类问题就从救火变成可控的例行处理。