概述
OpenLTE 是一个开源的 LTE(长期演进)基站实现项目,基于软件定义无线电(SDR)技术。它允许研究人员和安全分析师使用通用硬件(如 USRP 等 SDR 设备)搭建实验性的 LTE eNodeB(基站),用于蜂窝网络协议研究、安全测试以及教学实验。
OpenLTE 项目提供了 LTE FDD(频分双工)模式下的下行链路扫描工具和简易 eNodeB 实现,是学习 LTE 协议栈和进行蜂窝网络安全研究的重要入门工具。
注意: OpenLTE 仅适用于合法的研究与教学用途,未经授权搭建基站在大多数国家和地区属于违法行为。
编译与安装
环境要求
- 操作系统:Ubuntu 16.04(推荐)
- SDR 硬件:USRP B200/B210 或兼容设备
- 依赖库:UHD、GNU Radio 等 SDR 基础组件
安装步骤
- 下载源码
1 | wget http://ufpr.dl.sourceforge.net/project/openlte/openlte_v00-19-04.tgz |
提示: 在 Ubuntu 16.04 上,最新的 v00-20 版本存在编译问题,推荐使用 v00-19-04 版本。
- 编译安装
1 | cd openlte_v00-19-04/ |
编译完成后,工具链会安装到系统路径中,包括 LTE_fdd_dl_scan(下行扫描工具)和 LTE_fdd_enodeb(eNodeB 模拟器)。
功能模块
LTE_fdd_dl_scan — 下行链路扫描
LTE_fdd_dl_scan 用于扫描周围的 LTE FDD 下行信号,识别可用的 LTE 小区并解析系统信息块(SIB)。
使用方法:
1 | /path/to/openlte_v00-19-04/build/LTE_fdd_dl_scan |
扫描结果中会显示检测到的小区信息,包括 EARFCN(频点号)、PCI(物理小区标识)、带宽等参数。
LTE_fdd_enodeb — eNodeB 模拟器
LTE_fdd_enodeb 是 OpenLTE 的核心组件,可以模拟一个简易的 LTE eNodeB,支持 UE(用户设备)的接入和基本通信。
系统命令
| 命令 | 说明 |
|---|---|
start |
构建系统信息并启动 eNB |
stop |
停止 eNB |
shutdown |
停止 eNB 并退出程序 |
construct_si |
重新构建系统信息 |
help |
显示帮助信息 |
参数配置
- 使用
read <param>读取当前参数值 - 使用
write <param> <value>设置参数值
用户(HSS)管理
1 | # 添加用户 |
配置持久化
如需将配置保存到文件,执行以下命令:
1 | write use_cnfg_file 1 |
配置文件保存在 /tmp 目录下:
LTE_fdd_enodeb.cnfg_db— eNodeB 配置LTE_fdd_enodeb.user_db— 用户数据库
测试用例
以下是一些常用的测试用户配置示例:
UE 数据库格式:
1 | (ue_name),(algo),(imsi),(K),(OP/OPc_type),(OP/OPc_value),(AMF),(SQN),(QCI),(IP_alloc) |
示例条目:
1 | ue3,mil,221010123456789,6874736969202073796D4B2079650A76,opc,504F20634F6320504F50206363500A4F,8000,000000001234,7,dynamic |
添加用户命令示例:
1 | add_user imsi=001010123456789 imei=865441031661804 k=6874736969202073796D4B2079650A76 |
其中 IMSI 前缀 460 表示中国大陆的 MCC(移动国家代码),01 为中国联通的 MNC(移动网络代码)。