手把手调试:用Wireshark抓包分析EPS Fallback流程(从VoNR INVITE到4G承载建立)

张开发
2026/6/23 20:44:12 15 分钟阅读
手把手调试:用Wireshark抓包分析EPS Fallback流程(从VoNR INVITE到4G承载建立)
实战指南用Wireshark深度解析EPS Fallback全流程记得第一次在现网遇到EPS Fallback问题时我花了整整三天时间才定位到是N26接口配置遗漏导致的。那次经历让我深刻意识到掌握Wireshark抓包技巧对于核心网工程师来说就像外科医生需要精通X光片一样重要。本文将带你从零开始通过实际案例演示如何用Wireshark这把手术刀解剖EPS Fallback的完整流程。1. 实验环境搭建与基础配置在开始抓包前我们需要准备一个接近现网环境的测试平台。我的实验室配置如下终端设备支持SA模式的5G测试手机建议使用高通骁龙X55/X60基带的设备无线环境商用5G基站gNB与4G基站eNB共站部署频段为n78和B3核心网5GCAMF/SMF/UPF采用Open5GS 2.4.11版本EPCMME/SGW/PGW采用nextepc 1.0.0版本接口配置# N26接口配置示例AMF侧 amf: n26: enable: true mme_list: - mme_region_id: 1 mme_code: 1 ipv4: 192.168.10.20 port: 36412注意实验室环境中务必确认PCF与PCRF的策略同步配置这是QoS映射的关键。我曾遇到因策略不同步导致专用承载建立失败的案例。Wireshark需要监控的关键接口包括N1/N2接口UE-gNB-AMFN26接口AMF-MMESGi接口UPF-PGW-URx接口PCF-P-CSCF2. Wireshark抓包策略设计不同于普通的抓包EPS Fallback分析需要特定的过滤策略。这是我的抓包配置模板# 保存为eps_fb_filter.txt (ngap || nas-5gs || diameter || sip || gtpv2) !(ip.addr 192.168.100.100) # 排除网管IP关键过滤技巧使用ngap过滤N2接口消息nas-5gs捕获NAS层信令diameter.Rx专注Rx接口交互sip.Method INVITE定位初始呼叫建议采用分布式抓包方案graph TD A[UE] --|N1/N2| B(gNB) B --|N2| C[AMF] C --|N26| D[MME] D --|S1| E[eNB] C --|N11| F[SMF] F --|N4| G[UPF]提示在复杂网络环境中建议使用时间同步服务器确保各节点抓包时间戳一致。我曾经因为0.5秒的时间偏差导致分析PS Handover时错判了信令顺序。3. 主叫流程关键消息解析让我们按照时间线解剖主叫流程中的关键消息3.1 VoNR发起阶段初始INVITE消息的特征INVITE sip:8613800138000ims.mnc000.mcc460.3gppnetwork.org SIP/2.0 Via: SIP/2.0/UDP [2001:db8::1]:5060 From: sip:8613800138001ims.mnc000.mcc460.3gppnetwork.org;tag12345 To: sip:8613800138000ims.mnc000.mcc460.3gppnetwork.org Call-ID: abcde12345[2001:db8::1] CSeq: 1 INVITE此时Wireshark应同时捕获到PCF发往SMF的策略更新Npcf_SMPolicyControl_UpdateNotify └─ 5QI1 ├─ ARP Priority Level: 1 ├─ Packet Delay Budget: 20ms └─ Packet Error Rate: 10^-63.2 Fallback触发阶段当gNB决定触发Fallback时关键的N2消息NGAP PDU Session Resource Modify Response │ ├─ Cause: RadioNetwork │ └─ ims-voice-eps-fallback-or-rat-fallback-triggered (1) └─ Criticality Diagnostics (optional)此时需要立即检查N26接口是否有对应信令。如果没有基本可以确定是N26配置问题——这是我遇到最多的故障场景。3.3 承载建立阶段4G侧专用承载建立的Wireshark过滤条件gtpv2 gtpv2.message_type 95 # Create Bearer Request典型的承载参数对比如下5G QoS参数对应4G QoS参数转换规则5QI1QCI1直接映射ARP PL1ARP PL1相同值PDB20msPDB100ms宽松转换PER10^-6PER10^-6相同值注意某些厂商设备对PDB的转换规则可能不同需要查看设备文档确认。4. 常见故障排查手册根据我处理过的23个现网案例整理出以下故障树4.1 Fallback未触发现象持续尝试VoNR无Fallback动作排查步骤检查ngap过滤器中是否有ims-voice-eps-fallback原因值确认gNB配置# 示例gNB配置片段 nr: ims: voice-support: fallback fallback-type: eps验证终端能力UE Capability Information └─ ims-voice-over-ps: supported └─ eps-fallback: supported4.2 承载建立失败现象Fallback后呼叫中断诊断方法检查Create Bearer Request中的QoS参数gtpv2.create_bearer_request.qos.arp.preemption_capability 1对比5G和4G策略是否一致# 简单的策略验证脚本 def check_qos_mapping(pcf_policy, pcrf_policy): return pcf_policy[5QI] pcrf_policy[QCI] and \ pcf_policy[ARP] pcrf_policy[ARP]检查MME日志中的错误代码MME Error Codes: - 0x5001: QoS不可用 - 0x5003: 资源不足 - 0x5005: 参数冲突4.3 位置更新异常现象呼叫接通后位置信息错误解决方案确认RAR消息中的位置信息格式RAR (Re-Auth-Request) └─ 3gpp-User-Location-Info ├─ e-CGI: 460-00-100100-1 └─ TA: 255检查P-CSCF的PANI头处理逻辑P-Access-Network-Info: 3GPP-E-UTRAN-FDD; utran-cell-id-3gpp460001001001005. 高级分析技巧对于复杂问题我们需要更深入的分析方法5.1 时间序列分析使用Wireshark的IO Graph功能绘制关键事件时间线时间轴标记点 1. INVITE发送 (t0) 2. AAR发起 (t0120ms) 3. N2拒绝 (t0450ms) 4. Create Bearer完成 (t0800ms)正常流程各阶段耗时参考值阶段合理耗时范围INVITE到AAR100-200msFallback决策300-500ms4G承载建立300-600ms端到端呼叫建立800-1500ms5.2 消息流关联使用Wireshark的Conversation功能跟踪端到端流程右键任意SIP消息 → Follow → SIP Stream过滤出该呼叫的所有相关消息特别注意跨接口的关联IDgtpv2.teid xxdiameter.Session-Id xxx5.3 性能优化建议根据抓包数据分析得出的优化方向N26接口优化启用SCTP多流调整重传参数sctp.association.max_retrans 5 # 默认10 sctp.rto.initial 1000 # 默认3000ms承载建立加速预配置QoS策略启用承载预建立功能终端侧优化调整测量报告周期优化异系统切换参数在最近一次现网优化中通过上述方法将EPS Fallback成功率从92%提升到了99.3%平均呼叫建立时间减少了280ms。具体效果取决于网络实际情况建议先在小范围试点验证。

更多文章