D~DIDI~DIDIDI!!!!

0%

OpenLTE

概述

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. 下载源码
1
wget http://ufpr.dl.sourceforge.net/project/openlte/openlte_v00-19-04.tgz

提示: 在 Ubuntu 16.04 上,最新的 v00-20 版本存在编译问题,推荐使用 v00-19-04 版本。

  1. 编译安装
1
2
3
4
5
6
cd openlte_v00-19-04/
mkdir build
cd build
sudo cmake ../
sudo make
sudo make install

编译完成后,工具链会安装到系统路径中,包括 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
2
3
4
5
6
7
8
9
10
11
12
# 添加用户
add_user imsi=<imsi> imei=<imei> k=<k>
# imsi 和 imei 为 15 位十进制数字,k 为 32 位十六进制数字

# 删除用户
del_user imsi=<imsi>

# 查看所有用户
print_users

# 查看已注册用户
print_registered_users

配置持久化

如需将配置保存到文件,执行以下命令:

1
2
write use_cnfg_file 1
write use_user_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
2
3
4
add_user imsi=001010123456789 imei=865441031661804 k=6874736969202073796D4B2079650A76
add_user imsi=001010123456789 imei=865441031661812 k=6874736969202073796D4B2079650A76
add_user imsi=460010123456789 imei=865441031661804 k=6874736969202073796D4B2079650A76
add_user imsi=460010123456789 imei=865441031661812 k=6874736969202073796D4B2079650A76

其中 IMSI 前缀 460 表示中国大陆的 MCC(移动国家代码),01 为中国联通的 MNC(移动网络代码)。

相关文章

  • LTE 基础知识 — LTE 协议栈与网络架构详解
  • srsLTE — 另一个功能更完善的开源 LTE 实现
  • srsRAN — srsLTE 的后续项目,支持 5G NR
  • 移动网络 — 蜂窝移动通信网络体系总览