ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

LTE附着失败EMM Cause #19:ESM信息未收到根因与排查实战

LTE附着失败EMM Cause #19:ESM信息未收到根因与排查实战 干通信优化和终端协议测试这行最怕碰到的不是网络参数调不通而是终端一上报就是“附着失败”日志里甩出一行EMM Cause #19。这个原因值定义在3GPP TS 24.301里叫“ESM information not received”说白了就是网络在附着过程中等一个ESM层消息等超时了直接把你拒了。很多初级工程师看到#19就懵因为它不像#7EPS服务不允许或#11PLMN不允许那样直观问题往往藏在终端协议栈和网络配置的夹缝里。这篇文章我把cause#19的来龙去脉、各种“表现”形态、排查思路和踩坑记录都梳理一遍适合正在做网络优化、终端入库测试、物联网模块二次开发的同行参考。1. 先搞清楚attach流程里的EMM和ESM到底怎么分工1.1 附着成功为什么必须“两条腿走路”LTE的NAS层从协议栈上就分成两块EMMEPS移动性管理和ESMEPS会话管理。EMM管的是“你是谁、从哪来、能不能在这个网络里待着”对应的是附着、跟踪区更新、鉴权、安全流程这些移动性管理动作。ESM管的是“你要用什么样的数据连接”对应默认承载的建立、PDN连接、APN、QoS参数这些会话管理动作。附着要成功EMM和ESM必须同时走通。怎么理解这个事打个比方EMM相当于你带着身份证去运营商营业厅办理入网营业员先确认你是不是合法用户而ESM相当于你在同一张单子上填写你要办什么套餐、要开通什么业务。营业厅不可能只核验身份却不登记套餐否则后面没法开户。LTE也一样网络必须知道UE要建立什么类型的PDN连接IPv4、IPv6还是IPv4v6、需要访问哪个APN、要不要携带协议配置选项比如DNS地址请求这才能帮你创建默认承载。这个ESM信息不是单独一条消息发过去的。在附着的第一个NAS消息ATTACH REQUEST中除了各种EMM参数还会内嵌一个“ESM message container”信息元里面装的就是PDN CONNECTIVITY REQUEST。网络侧MME收到后从容器里解析出PDN连接请求参数再结合签约数据和APN配置决定是否接纳。如果这个容器没带、带空了、或者内容没法被网络解析MME就没有办法完成默认承载的建立。1.2 Cause #19的生命周期从“没收到”到“拒绝”3GPP在设计附着拒绝原因值时把“找不到用户”“用户不可用”“网络不允许”这类策略性问题和“协议交互失败”这类流程性问题做了区分。Cause #19就属于后者它叫“ESM information not received”直译就是ESM信息未收到。具体在什么情况下触发我按实际网络里的常见场景梳理了一下主要有四种UE发出的ATTACH REQUEST里根本没有ESM消息容器MME解析不出来。ATTACH REQUEST里有容器但里面不是合法的PDN CONNECTIVITY REQUEST比如关键IE缺失或长度有误。网络在收到ATTACH REQUEST后因为某种策略需要更多ESM信息主动下发ESM INFORMATION REQUEST但UE没在定时器超时前回复有效响应。网络等待ESM信息的定时器设置太短或者传输链路偶发丢包导致UE其实回了响应但MME没收到。从MME的角度看这个过程有明确的定时器盯着。规范里定义了网络侧等待ESM信息的定时器T3485常见厂商实现默认设置在几秒量级超时后MME就会回ATTACH REJECT并携带EMM Cause #19。这里要特别注意这个原因是EMM层的原因值不是ESM原因值但根子往往出在ESM层的信息缺失上所以在分析时不能只看EMM层的判断还要追到ESM层去看。2. UE侧的表现盘点看似有信号实则上不了网2.1 从用户能感知到的界面讲起先说说用户端最直观的现象。cause#19的出现几乎不会让UE直接显示“无卡”“无网络”这种明确提示更多时候是信号格数正常但数据上网就是不行。具体看两种角色手机终端的表现状态栏出现“无服务”或“仅限紧急呼叫”拨号打不了电话数据图标消失。也有的场景下信号格正常但状态栏一直显示“正在注册……”长时间进入不了服务态。如果手机开了VoLTE电话业务会跟着一起瘫因为语音走IMSIMS注册依赖LTE附着成功。物联网模块和行业终端的表现模块执行AT指令发起网络注册比如ATCGATT1、ATCOPS?返回ERROR或者一直停在注册中。很多行业终端会在业务侧报“网络未注册”“链接建立失败”排查到最后才发现卡在了附着阶段。这里有一个特别值得注意的现象UE被#19拒绝后并不会永远放弃。终端会按EMM层的定时器最常见的是T3402标准默认12分钟运营商也可以改周期性重新发起附着。所以如果不去看日志用户体验就是“时好时坏”——过一阵子好像能上网了其实就是重试成功了一次过几分钟又断了因为下一次附着又被拒了非常迷惑人。我见过不少投诉案例用户说“信号满格但老是断网”后台查无线指标一切正常最后打开UE日志一看满地都是EMM Cause 19。2.2 信令侧的表现一次完整拒绝录像对做技术的人来说看“表现”不能只看表面要看信令。我按一次真实网络中抓到的流程来说明UE被cause#19拒绝的过程长这样这是前端路测软件或信令分析平台上看到的步骤方向消息说明1UE → 网络RRC Connection Setup Complete内含NAS ATTACH REQUEST发起附着ATTACH REQUEST里应携带ESM message container2网络 → UEIDENTITY REQUEST可选网络需要获取UE唯一标识时触发3UE → 网络IDENTITY RESPONSE可选返回IMEI等标识4网络 → UEAUTHENTICATION REQUEST可选鉴权流程5UE → 网络AUTHENTICATION RESPONSE反馈鉴权结果6网络 → UESECURITY MODE COMMAND启用NAS安全7UE → 网络SECURITY MODE COMPLETE安全流程完成8网络 → UEATTACH REJECTEMM Cause19拒因ESM信息未收到9UE启动T3402定时器回到EMM-DEREGISTERED状态等待下次重试需要补充的是第8步之前网络可能已经发过ESM INFORMATION REQUEST但因为没等到响应最终由定时器超时触发拒绝。在路测软件里事件窗口会直接显示“Attach Reject (EMM Cause #19)”在Modem日志里过滤NAS关键字也能找到同一事件。UE收到ATTACH REJECT后会停止所有ESM相关事务T3402开始跑期间不会主动发起新的attach请求——除非用户手动开关飞行模式触发一次全新注册这也是现场测试时经常用来“手动恢复”的操作。2.3 容易和#19混淆的相邻原因值很多人在问题定位时会被原因值绕晕这里顺便列一张区分表都是我实际工作中被问过多次的原因值名称区别要点#7EPS services not allowed策略性拒绝一般是用户签约或网络策略不允许和ESM信息无关#11PLMN not allowed用户在这个PLMN不被允许接入属漫游/签约问题#14EPS services not allowed in this PLMN签约只在特定PLMN下开放EPS服务#19ESM information not received协议交互层面的拒绝核心是网络没拿到ESM信息#19和#7、#11这类“政策性拒绝”最大的区别是后者就算UE把ESM信息完整送上也一样会被拒因为根因在签约和策略上而#19大概率是UE在某个ESM消息上“没送到位”只要补上信息问题就能解。搞清楚这个整个排查方向就不会跑偏。3. 根因剖析好端端一个attachESM信息怎么就没了3.1 终端侧最容易埋雷的三个位置先说终端侧。我在项目里遇到过大量案例根因都在UE侧而且集中在下面三个位置。第一协议栈对ESM消息容器的封装有问题。ATTACH REQUEST的构造是由EMM层完成的但ESM消息容器里的内容由ESM层提供。如果终端用的是第三方移植的NAS协议栈两个模块之间一旦出现版本不匹配、接口参数传错就很容易生成一个“空壳”ESM消息容器。表面看ATTACH REQUEST消息结构完整但解析到容器内部PDN CONNECTIVITY REQUEST的关键IE就是空的网络自然没法处理。第二PDN type与网络能力不匹配。PDN CONNECTIVITY REQUEST里有一个PDN type字段取值为IPv4、IPv6或IPv4v6。如果终端只支持IPv6但网络侧当前配置的默认承载只支持IPv4MME在解析ESM信息时就会发现PDN type非法或不受支持可能直接拒掉附着。这种情况在双栈改造过程中特别常见很多老终端还在用纯IPv4而核心网侧某些APN已经切到IPv4v6了。第三安全流程之后忘了该发的ESM响应。附着过程中网络如果需要额外的ESM信息会先发SECURITY MODE COMMAND完成NAS安全激活再发ESM INFORMATION REQUEST。但有些终端的消息处理队列有bug安全流程还没跑完就把ESM INFORMATION REQUEST忽略了自然也不会回ESM INFORMATION RESPONSE。这种问题在log里看起来就是终端收到了ESM请求但没有任何后续NAS消息发出直到网络超时拒绝。还有一个值得注意的终端侧问题模块厂商在定制固件时经常为了缩短附着时延或适配行业平台而修改NAS参数比如强制把某个APN写死、在ESM消息里塞自定义协议配置选项。这类改动如果没经过完整回归测试很容易在某些网络条件下触发#19。所以凡是遇到“只有某款终端出问题、换其他终端就正常”的case别急着怀疑网络先找终端固件版本和近期改动。3.2 网络侧也不能完全甩锅终端侧查完没事还是要回来看网络侧。cause#19虽然直接原因在网络但网络侧自身也存在诱发因素。MME上的等待定时器配置就是一个典型问题点。T3485如果被配置得过短在空口环境差、S1接口时延大或者核心网内部处理慢的时候UE其实已经回了ESM响应但响应到达MME的时间已经超过了定时器限制MME照样给拒了。这种问题从UE日志看非常冤枉UE明明发了消息网络却说没收到。遇到这种case最好的证明办法就是抓S1接口信令对比ESM消息在空口和S1上的时间戳。还有一类是核心网的APN策略配置。有些行业专网会要求UE必须携带某个指定APN才能入网否则MME在解析ESM信息后觉得“信息不满足策略”最终用#19拒掉附着。这种配置从协议上看是合理的但对终端使用者来说就很迷惑因为普通用户根本不知道自己的终端该在ESM信息里写哪个APN。还有的MME版本开启了“必须收到PDN CONNECTIVITY REQUEST中的协议配置选项”这类严格校验特性也会导致兼容性下降。最后别忽略核心网侧的偶发故障。比如MME信令板卡CPU过载导致ESM消息延迟处理、S1接口偶发丢包、DNS解析异常导致APN无法解析等都会间接表现为#19。这类问题比例不高但一旦出现往往影响面很大而且不容易复现排查时需要跨核心网、无线、终端多个域协同看时间线。3.3 现场定位的五步排查法遇到#19我习惯按下面这个顺序走基本能把范围缩到很小UE侧抓NAS日志解析ATTACH REQUEST确认ESM消息容器是否存在、PDN CONNECTIVITY REQUEST内容是否合法、APN和PDN type参数是否正常。网络侧抓MME跟踪或S1口信令确认MME是否发过ESM INFORMATION REQUEST是否收到了对应的RESPONSE两边的时间是否对得上超时在哪一刻发生。换标准终端同一张SIM卡、同一个位置做对照测试。标准终端能附着基本就能把责任归到被测终端标准终端也失败问题大概率在网络。换一张不同签约的SIM卡再做一轮排除签约数据、APN白名单、套餐限速策略这些“看不见”的因素。根据以上结果分别走到终端软件升级或网络参数调整改完后再复测。这套流程看起来简单但每一步信息都很关键。尤其第2步很多人只抓UE侧日志看到ATTACH REJECT就下结论说网络不行其实根本没有证据。网络侧的信令跟踪数据才是判断“到底有没有收到”“是什么时候超时”的唯一依据。4. 两个真实案例排查过程按时间线还原4.1 案例一4G智能摄像头激活失败平台显示离线这个案例来自一个智慧园区项目客户用的是某品牌的4G智能摄像头故障现象是插卡后摄像头一直无法上线平台端设备状态始终是离线。现场维护人员一度怀疑是SIM卡没插好或资费断了但更换手机插入同一张SIM卡手机能正常上网说明网络侧覆盖和签约都没有大问题。我介入后先抓了摄像头的模组日志重点看NAS层。日志显示UE发起ATTACH REQUEST后很快就收到了ATTACH REJECTEMM Cause正是#19。继续往上回溯发现这款摄像头所用模组的ATTACH REQUEST中“ESM message container”字段长度异常PDN CONNECTIVITY REQUEST里APN信息缺失。也就是说消息物理上发出去了但解析不到可用的ESM内容。后来联系模组厂商确认问题出在固件版本对某种特殊USIM卡配置的兼容性上。模组在读取SIM卡签约信息后构造PDN连接请求时生成了非法参数导致ESM容器里的内容不完整。最终通过升级模组固件解决整个排查周期大概花了两天时间其中半天都在等模组厂商的log分析。这个案例给我最大的教训是行业终端在定制时只要是改了NAS相关参数或者升级过协议栈入库前一定要做一次多网络的注册遍历测试。4.2 案例二行业专网里整批终端被拒公网却正常另一个案例更有意思。某个做移动办公的客户在专网环境里部署了几百台行业终端结果上线时发现所有终端都无法注册提示都是网络未注册。客户反馈“设备一模一样在公网测试完全正常一到专网就不行”。我先让现场抓了一台终端的log看到ATTACH REQUEST里其实带了ESM消息容器PDN CONNECTIVITY REQUEST结构也完整但APN字段没有携带。继续查MME侧配置发现专网核心网配置了“必须解析到指定APN才能接纳附着”的策略而UE的SIM卡里没有写入这个专网APN终端自身又没有配置APN参数结果PDN连接请求里APN缺失MME无法建立默认承载直接用#19拒绝。这个问题其实是个典型的“两边都差点意思”的case网络侧策略严格合规但终端侧没有内置APN配置。最终解决方案是在终端设备管理平台上统一推送了专网APN参数终端重新附着后大量上线成功。这个案例想说明的是遇到#19不一定就是某一方的“bug”更多时候是终端配置和网络策略没对齐。遇到专网环境一定要先问清楚网络的签约APN是什么终端侧能不能正确写上5. 常见问题速查与实操心得5.1 典型现象与对应处置速查表现象可能根因快速验证手段处置建议多台不同终端在同一区域反复被#19区域核心网配置或传输问题换地点/换网络验证抓S1信令看拒前流程检查MME告警、定时器配置、S1传输丢包只有某一型号终端被#19终端协议栈封装或固件问题换标准终端/其他型号对照测试联系终端厂商升级固件要求提供NAS日志换SIM卡之后消失签约数据/APN白名单问题对比签约APN、在MME查用户上下文核对套餐签约、APN策略配置偶发、不固定出现定时器过短/空口或传输链路丢包多抓几次日志对比时间戳配合核心网调整T3485优化空口质量终端在公网正常、专网失败专网APN策略与终端配置不匹配查专网签约APN要求对比UE携带的APN在终端写入专网APN配置5.2 几条压箱底的经验做故障排查这些年我在cause#19上没少花时间下面这几条心得也算真金白银换出来的。第一遇到#19别急着动网络参数先在UE侧确认ESM消息是不是真的发出去了。很多时候终端自己就没把ESM信息封装对网络只是按规则办事。UE侧的ATTACH REQUEST解析结果是最直接的证据。第二所有原因值都要结合时序看。单看一条ATTACH REJECT没有意义要看拒前发生了什么网络有没有发ESM INFORMATION REQUESTUE有没有回复回复和网络定时器超时之间的时间差是多少只有把时序拉出来才能确认是“没发”还是“发晚了”还是“发了被丢了”。第三模块类终端出问题比例最高先怀疑固件。物联网模块的NAS协议栈大多是商用协议栈二次开发改动多、测试少出问题很常见。遇到批量终端被拒不要先跟客户争论是谁的错先把固件升级路径和近期改动记录拿出来对齐。第四专网环境的高拒绝率多半是APN参数没对上。公网default承载的APN通常不用终端关心但专网往往严格要求指定APN。终端侧没有配置APN、或配置了错误APN网络就很可能用#19来拒。先把签约APN和终端配置两边对齐。最后说句实在的cause#19不是那种“调个参数就解决”的原因值它更像是终端和网络在协议交互上的一次“话没对上”。与其相信所谓万能方案不如老老实实从UE日志出发把ATTACH REQUEST里的ESM容器、网络侧收到的东西、两边的定时器都拉出来对比一遍。只要把“哪一侧没发出信息”“信息在哪一步丢了”定位清楚修复方向自然就出来了。尤其是做物联网模块的朋友强烈建议在研发阶段就把NAS日志抓取能力做成标配别等现场出问题再临时抱佛脚。
返回列表