OAI 5G核心网商用终端接入实战从数据库配置到抓包分析的完整指南商用终端与OAI 5G核心网的对接一直是开发者面临的技术难点。本文将带你深入理解核心网与终端交互的完整流程从数据库参数修改到Wireshark抓包分析手把手解决终端无法注册、无法上网等典型问题。1. 商用终端接入的核心参数解析要让商用终端成功接入OAI 5G核心网首先需要理解几个关键参数的作用和来源。这些参数构成了终端与核心网之间的身份认证语言。IMSI国际移动用户识别码这是终端在核心网中的唯一身份证格式通常为MCC移动国家码MNC移动网络码MSIN移动用户识别码。例如00101 000000001 └─┬─┘ └──┬───┘ MNC MSIN鉴权五元组是安全通信的基础Ki鉴权密钥存储在SIM卡和核心网中的共享密钥OPc运营商密钥由Ki和运营商代码派生而来SQN序列号防止重放攻击RAND随机数每次鉴权时生成AUTN认证令牌用于网络认证终端在OAI数据库中这些参数通常以十六进制格式存储。例如INSERT INTO users VALUES ( 001010000000001, -- IMSI 380561234567, -- MSISDN手机号 862723064164746, -- IMEI设备标识 NULL, -- 其他字段 PURGED, -- 状态 50, -- 接入限制 40000000, -- 上行速率 100000000, -- 下行速率 47, -- 其他参数 0000000000, -- 保留字段 1, -- 订阅类型 0x0C0A34601D4F07677303652C0462535B, -- Key (Ki) 0, -- 其他标志 0, -- 保留字段 0x40, -- 算法类型 ebd07771ace8677a, -- 其他密钥 0x63bfa50ee6523365ff14c1f45f88737d -- OPC );2. 数据库配置实战从SQL文件到Docker操作OAI核心网默认使用MySQL数据库存储用户信息。有两种主要方式修改这些数据2.1 直接修改SQL文件推荐定位到核心网项目中的数据库初始化文件oai-cn5g-fed/docker-compose/database/oai_db1.sql在这个文件中你可以找到users表的定义和初始数据。添加新用户时需要确保IMSI格式正确通常15位Ki和OPc与SIM卡写入的值完全一致速率限制等参数符合测试需求修改后重启核心网容器使更改生效docker-compose -f docker-compose-mini-nonrf.yaml down docker-compose -f docker-compose-mini-nonrf.yaml up -d2.2 通过Docker命令行实时修改如果核心网已经在运行可以通过以下步骤直接修改数据库进入MySQL容器docker exec -it mysql /bin/bash登录MySQLmysql -uroot -plinux -D oai_db查看当前用户SELECT * FROM users;添加新用户参数需根据实际情况调整INSERT INTO users VALUES ( 001010000000002, 380561234568, 862723064164747, NULL, PURGED, 50, 40000000, 100000000, 47, 0000000000, 1, 0x0C0A34601D4F07677303652C0462535B, 0, 0, 0x40, ebd07771ace8677a, 0x63bfa50ee6523365ff14c1f45f88737d );注意通过命令行修改的数据在容器重启后会丢失除非也更新了SQL文件。3. DNN与APN配置打通数据通道DNN数据网络名称和APN接入点名称是终端能够上网的关键配置。OAI核心网默认提供几个预定义的DNN但商用终端可能需要特定配置才能成功建立PDU会话。3.1 修改DNN列表编辑核心网配置文件oai-cn5g-fed/docker-compose/docker-compose-mini-nonrf.yaml找到SMF服务配置部分修改DNN列表。例如smf: environment: - DNN_LISTims,oai,internet - DEFAULT_DNNims每个DNN对应一个数据网络需要在核心网中配置相应的路由和策略。常见问题包括DNN名称不匹配终端请求的APN不在核心网DNN列表中默认DNN不可达对应的UPF配置不正确3.2 终端APN配置在商用终端上需要手动配置APN以匹配核心网的DNN设置。以Android手机为例进入设置 移动网络 接入点名称(APN)创建新APN填写以下关键字段名称任意描述性名称如OAI 5GAPN必须与核心网DNN列表中的某个名称完全一致如ims其他字段通常可以留空或使用默认值保存并选择新创建的APN提示某些商用终端可能隐藏了APN设置选项可以通过拨号盘输入*#*#4636#*#*进入测试界面进行设置。4. 抓包分析与故障排查当终端无法注册或上网时Wireshark抓包是定位问题的有力工具。以下是几个常见问题场景及分析方法4.1 注册被拒Registration Reject在Wireshark中过滤5G NAS消息nas-5gs (nas_5gs.mm.registration_reject || nas_5gs.mm.registration_accept)常见拒绝原因及解决方案拒绝原因可能原因解决方案0x03 (Illegal UE)IMSI未在核心网中配置检查数据库users表0x06 (Illegal ME)IMEI检查失败关闭IMEI检查或添加正确IMEI0x0B (PLMN not allowed)PLMN不匹配检查终端和核心网的PLMN配置0x0F (No suitable cells)频段配置问题检查gNB的频段配置4.2 PDU会话建立失败过滤PDU会话相关消息nas-5gs nas_5gs.sm.pdu_session_establishment_request常见问题DNN/APN不匹配终端请求的APN不在核心网DNN列表中QoS配置冲突核心网无法满足终端请求的QoS参数UPF不可达检查SMF到UPF的连接4.3 鉴权失败5G鉴权流程比4G更复杂涉及AUSF、UDM等多个网元。在Wireshark中可以看到完整的鉴权流程终端发送Registration Request核心网返回Authentication Request终端回复Authentication Response核心网验证后发送Security Mode Command如果流程在Authentication Response后中断通常是Ki或OPc不匹配导致的鉴权失败。5. 商用终端适配的特殊考量不同厂商的商用终端在实现5G协议时可能存在差异这给OAI核心网的兼容性带来了挑战。以下是几个实际经验总结终端兼容性列表基于实际测试终端型号芯片组兼容性备注红米K40S高通✓需设置NR only模式OPPO Find X3高通✗注册成功但无法建立PDU会话vivo X60三星✗无法完成注册流程荣耀50高通△需要特定APN配置提升兼容性的技巧尝试不同的APN/DNN组合调整核心网的QoS参数关闭某些安全检查仅限测试环境更新OAI到最新版本协议实现不断完善射频参数优化建议# 在gNB配置文件中调整以下参数 tx_gain 90 # 发射增益根据实际环境调整 rx_gain 125 # 接收增益 dl_freq 3680 # 下行频点需符合当地法规 ul_freq 2140 # 上行频点 bandwidth 106 # 带宽(PRB)商用终端成功接入后你将在手机上看到5G标识并可以进行数据业务测试。此时可以通过核心网的控制面接口监控会话状态或使用用户面进行实际数据传输测试。
OAI 5G核心网配置避坑指南:手把手教你修改数据库、DNN和APN,让商用终端成功接入
发布时间:2026/6/1 8:37:47
OAI 5G核心网商用终端接入实战从数据库配置到抓包分析的完整指南商用终端与OAI 5G核心网的对接一直是开发者面临的技术难点。本文将带你深入理解核心网与终端交互的完整流程从数据库参数修改到Wireshark抓包分析手把手解决终端无法注册、无法上网等典型问题。1. 商用终端接入的核心参数解析要让商用终端成功接入OAI 5G核心网首先需要理解几个关键参数的作用和来源。这些参数构成了终端与核心网之间的身份认证语言。IMSI国际移动用户识别码这是终端在核心网中的唯一身份证格式通常为MCC移动国家码MNC移动网络码MSIN移动用户识别码。例如00101 000000001 └─┬─┘ └──┬───┘ MNC MSIN鉴权五元组是安全通信的基础Ki鉴权密钥存储在SIM卡和核心网中的共享密钥OPc运营商密钥由Ki和运营商代码派生而来SQN序列号防止重放攻击RAND随机数每次鉴权时生成AUTN认证令牌用于网络认证终端在OAI数据库中这些参数通常以十六进制格式存储。例如INSERT INTO users VALUES ( 001010000000001, -- IMSI 380561234567, -- MSISDN手机号 862723064164746, -- IMEI设备标识 NULL, -- 其他字段 PURGED, -- 状态 50, -- 接入限制 40000000, -- 上行速率 100000000, -- 下行速率 47, -- 其他参数 0000000000, -- 保留字段 1, -- 订阅类型 0x0C0A34601D4F07677303652C0462535B, -- Key (Ki) 0, -- 其他标志 0, -- 保留字段 0x40, -- 算法类型 ebd07771ace8677a, -- 其他密钥 0x63bfa50ee6523365ff14c1f45f88737d -- OPC );2. 数据库配置实战从SQL文件到Docker操作OAI核心网默认使用MySQL数据库存储用户信息。有两种主要方式修改这些数据2.1 直接修改SQL文件推荐定位到核心网项目中的数据库初始化文件oai-cn5g-fed/docker-compose/database/oai_db1.sql在这个文件中你可以找到users表的定义和初始数据。添加新用户时需要确保IMSI格式正确通常15位Ki和OPc与SIM卡写入的值完全一致速率限制等参数符合测试需求修改后重启核心网容器使更改生效docker-compose -f docker-compose-mini-nonrf.yaml down docker-compose -f docker-compose-mini-nonrf.yaml up -d2.2 通过Docker命令行实时修改如果核心网已经在运行可以通过以下步骤直接修改数据库进入MySQL容器docker exec -it mysql /bin/bash登录MySQLmysql -uroot -plinux -D oai_db查看当前用户SELECT * FROM users;添加新用户参数需根据实际情况调整INSERT INTO users VALUES ( 001010000000002, 380561234568, 862723064164747, NULL, PURGED, 50, 40000000, 100000000, 47, 0000000000, 1, 0x0C0A34601D4F07677303652C0462535B, 0, 0, 0x40, ebd07771ace8677a, 0x63bfa50ee6523365ff14c1f45f88737d );注意通过命令行修改的数据在容器重启后会丢失除非也更新了SQL文件。3. DNN与APN配置打通数据通道DNN数据网络名称和APN接入点名称是终端能够上网的关键配置。OAI核心网默认提供几个预定义的DNN但商用终端可能需要特定配置才能成功建立PDU会话。3.1 修改DNN列表编辑核心网配置文件oai-cn5g-fed/docker-compose/docker-compose-mini-nonrf.yaml找到SMF服务配置部分修改DNN列表。例如smf: environment: - DNN_LISTims,oai,internet - DEFAULT_DNNims每个DNN对应一个数据网络需要在核心网中配置相应的路由和策略。常见问题包括DNN名称不匹配终端请求的APN不在核心网DNN列表中默认DNN不可达对应的UPF配置不正确3.2 终端APN配置在商用终端上需要手动配置APN以匹配核心网的DNN设置。以Android手机为例进入设置 移动网络 接入点名称(APN)创建新APN填写以下关键字段名称任意描述性名称如OAI 5GAPN必须与核心网DNN列表中的某个名称完全一致如ims其他字段通常可以留空或使用默认值保存并选择新创建的APN提示某些商用终端可能隐藏了APN设置选项可以通过拨号盘输入*#*#4636#*#*进入测试界面进行设置。4. 抓包分析与故障排查当终端无法注册或上网时Wireshark抓包是定位问题的有力工具。以下是几个常见问题场景及分析方法4.1 注册被拒Registration Reject在Wireshark中过滤5G NAS消息nas-5gs (nas_5gs.mm.registration_reject || nas_5gs.mm.registration_accept)常见拒绝原因及解决方案拒绝原因可能原因解决方案0x03 (Illegal UE)IMSI未在核心网中配置检查数据库users表0x06 (Illegal ME)IMEI检查失败关闭IMEI检查或添加正确IMEI0x0B (PLMN not allowed)PLMN不匹配检查终端和核心网的PLMN配置0x0F (No suitable cells)频段配置问题检查gNB的频段配置4.2 PDU会话建立失败过滤PDU会话相关消息nas-5gs nas_5gs.sm.pdu_session_establishment_request常见问题DNN/APN不匹配终端请求的APN不在核心网DNN列表中QoS配置冲突核心网无法满足终端请求的QoS参数UPF不可达检查SMF到UPF的连接4.3 鉴权失败5G鉴权流程比4G更复杂涉及AUSF、UDM等多个网元。在Wireshark中可以看到完整的鉴权流程终端发送Registration Request核心网返回Authentication Request终端回复Authentication Response核心网验证后发送Security Mode Command如果流程在Authentication Response后中断通常是Ki或OPc不匹配导致的鉴权失败。5. 商用终端适配的特殊考量不同厂商的商用终端在实现5G协议时可能存在差异这给OAI核心网的兼容性带来了挑战。以下是几个实际经验总结终端兼容性列表基于实际测试终端型号芯片组兼容性备注红米K40S高通✓需设置NR only模式OPPO Find X3高通✗注册成功但无法建立PDU会话vivo X60三星✗无法完成注册流程荣耀50高通△需要特定APN配置提升兼容性的技巧尝试不同的APN/DNN组合调整核心网的QoS参数关闭某些安全检查仅限测试环境更新OAI到最新版本协议实现不断完善射频参数优化建议# 在gNB配置文件中调整以下参数 tx_gain 90 # 发射增益根据实际环境调整 rx_gain 125 # 接收增益 dl_freq 3680 # 下行频点需符合当地法规 ul_freq 2140 # 上行频点 bandwidth 106 # 带宽(PRB)商用终端成功接入后你将在手机上看到5G标识并可以进行数据业务测试。此时可以通过核心网的控制面接口监控会话状态或使用用户面进行实际数据传输测试。