SIP 协议早于 NAT 普及设计,导致 VoIP 在 NAT 环境下依赖 RTP 源端口回传机制穿透,但新媒体服务器引入“三包锁定+10秒超时”策略后,部分用户出现通话前 10 秒无声,根因是客户端侧 RTP 源端口在前三包后发生漂移。
RTP 穿透 NAT 的基本机制:
RTP 以 UDP 连续流传输音频,SDP 协商的 IP 与端口在 NAT 后往往失效。服务商常用做法是忽略 SDP,改用首个到达的 RTP 包源 IP/端口作为目标。这种“以包代信”虽能穿透 NAT,却引入安全隐患:攻击者若向媒体服务器泛洪 UDP 端口,理论上可劫持或中断音频流。原文未给出具体攻击案例数据。
会话锁定引入的安全与可用性权衡:
为缩小攻击面,厂商组合监控、限速、IPS 与 RTP 会话锁定——收到三个合法 RTP 包后锁定该 IP/端口,直到流停止 10 秒才解锁。新媒体服务器上线该策略(三包+10秒超时)后,监控显示双向 RTP 均正常流动,但极少数客户反馈通话前 10 秒无声。原文未给出受影响客户占比或并发量数据。
端口漂移导致的 10 秒静音排查:
深入抓包发现,客户端发送前三个 RTP 包的源端口与后续包不一致。锁定机制按首三包端口建立会话,后续包因端口变更被丢弃,直到 10 秒超时触发重新锁定。这类 NAT 设备在会话初期改写端口的行为,与“三包即锁定”的假设冲突。原文未给出具体 NAT 设备型号或固件版本。
运维需关注媒体服务器锁定策略与客户端 NAT 行为的匹配度,建议在部署前用抓包验证端口稳定性,必要时放宽锁定阈值或引入 STUN/TURN 辅助穿透,避免安全机制误伤正常业务。
原文: APNIC Blog(2020-09-29)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog