教你如何制作一个GSM移动手机网络基站

发布时间:2022-07-20 16:51:02 作者:九纹龙 阅读量:4803

 

今天给大家介绍的内容是:如何使用 Osmocom 软件以及 UmTRX 来创建一个 GMS 移动手机网络。其实这并不是一种全新的技术,而且好多年前就已经有人实现过了。但我认为使用开源软件来创建一个 GSM 网络实在是太酷了。

除此之外,现在也有很多开源硬件支持这种软件无线电解决方案了。在这篇文章中,我们将选用 UmTRX(一种专为 GSM 移动网络设计的双信道收发器)和 Parallella(并行计算平台)。

在开始之前,我需要跟大家声明的是,即使你搭建的是一个小范围的测试网络,但在绝大多数国家你仍然需要向有关部门申请许可证。

搭建GSM基站

硬件配置

 

硬件的配置相对来说还是比较简单的:两块主板用连接到千兆级以太网络;UmTRX接三根天线,前两根分别接GSM TX和RX,第三根接GPS,GPS天线一般都是板载GPS规范所要求的,用来保证GSM的频率精确度和稳定性。

 

如果你没有GSM牌照的话,最简单的解决方案就是将UmTRX TX和RX端口连接到一个双工器,然后将其通过衰减器连接到手机上。

软件架构

对于那些刚刚接触GSM网络的人来说,估计看到这些首字母缩写的专业名词就头晕,而且软件栈的整体架构看起来也可能会太过复杂了。但是,Osmocom GSM技术最好的一点就是它是基于常见代码库和模块实现的,并且具有高度可配置的特性。libosmocore代码库负责提供该技术的核心功能,例如计时器、日志记录以及GMS协议处理等等。GMS网络中基站接收器(BTS)和基站处理器(BSC)元素之间的通信是通过A-bis接口进行的,而这种协议又是通过libosmo-abis代码库实现的。

一般来说,一个BSC所能执行的功能非常有限,并且还需要依赖于其他组件,例如归属位置寄存器(HLR)和认证中心(AuC)等等。但是经过配置,OpenBSC软件是可以在NITB模式下运行,这样就可以一次性整合大量的功能了。

我们可以使用OsmoBTS配合OsmoTRX来创建一个软件定义的无线电BTS,它可以通过A-bis与OpenBSC NITB进行通信,而这些组件一起就能够组成一个单独的网络了。

这个代码库【Fairwaves versionof UHD】提供了接收器软件的驱动程序,并且实现了air接口、OsmoTRX、UmTRX和无线电硬件。我们回顾一下整个过程:UmTRX (无线电硬件) → UHD (驱动器) → OsmoTRX (SDR BTS 接收器) → OsmoBTS (BTS 层1-3) → OpenBSC (BSC/MSC/HLR 等等,“network-in-the-box”)。

实际上,我们还需要另外一个组件,即Lin Call Router(LCR),它整合了OpenBSC NITB,并且可以简化我们的测试过程。

注:在真实场景中,你需要让OsmoTRX、OsmoBTS和OpenBSC分别运行在不同的主机上,但现在它们全部都运行在Parallella之上。

软件安装

我们使用的是官方Parallella Lin发行版-Linaro Ubuntu Nano 14.01,主要的操作指令可以参考UmTRX官方网站以及Osmocom的维基百科。

关于UmTRX和Osmocom的构建信息我在这里就不赘述了,具体可以参考相关的网站,我这里只给大家提供一些额外的帮助信息。

缺失的构建工具和依赖组件可以使用下列命令一次性完成安装:

 

$ sudo apt-get install build-cmake libtoolautotools-dev autoconf pkg-config python-cheetah libboost-all-devlibopencore-amrnb-dev libsofia-sip-ua-dev libortp-dev sqlite3 libdbi-devlibdbd-sqlite3 libncurses5-dev libusb-1.0-0-dev

关于构建UHD-Fairwaves以及Osmocom软件的相关信息,可以参考umtrx.org给出的内容。

我们可以使用“./configure –with-neon”来对OsmoTRX进行配置(针对ParallellaARM主机)。

构建时间大致如下(不包括“./configure”和“make install”):

Fairwaves-UHD: 1 小时40 分钟

libosmocore: 5分钟

libosmo-abis: 分钟

OpenBSC: 4分钟

OsmoBTS: 1.5分钟

OsmoTRX: 9分钟

LCR: 3分钟

网络配置

 

上面提供的配置样本适用于OsmoBTS、OpenBSC和LCR,其中open-bsc.cfg中最重要的参数是ARFCN(TX/RX频率)、电力等级以及“auth policy”设置。

启动网络

OsmoTRX需要使用特定的内核参数,但是我们可以使用sysctl在软件的运行过程中进行参数修改。除此之外,OsmoTRX还需要以root权限运行,这样才可以设置线程的优先级。我们建议分别在不同的shell中运行OpenBSC NITB、OsmoBTS、OsmoTRX和LCR,这样可以简化我们解析调试输出的难度。

启动了上述所有软件组件之后,我们需要使用频谱分析仪来检测基站载波是否稳定。幸运的是,结果一切正常:下行链路ARFCN 540 = 1810.8MHz。

 

测试

首先,我使用了手机SIM卡来与没有经过配置的网络进行连接,按理来说连接请求应该会被拒绝。但连接尝试会在HLR数据库中创建一个条目,然后我们就可以通过OpenBSC VTY(命令行)来完成新用户的认证授权了。接下来,我们要尝试注册网络(位置更新请求),结果已成功。

 

关于这个过程的详细内容,大家可以参考umtrx.org给出的资料。

获取到了网络服务之后,我们就可以尝试拨打号码995(LCR播放铃声),结果如下图所示:

 

在上图的终端窗口中,顺时针方向分别为OpenBSC、OsmoBTS、OsmoTRX、LCR和OpenBSC VTY。

下图显示的是LCR窗口中的详细数据,当有来电时,通话会被路由到音乐文件:

 

大家可以从下图中看到,SDR接收器和OsmoTRX做的完全是计算密集型任务:

 

总结

如果只是用ARM内核的话,我还不清楚Parallella能够同时支持多少通话,而且UmTRX还提供有第二条无线信道来增加网络容量。其实我还有一个奇思妙想,那就是我们的远程无线电基站是不是可以依赖于太阳能等清洁能源呢?大家可以自行脑补一下…

本文所介绍的内容可以帮助大家搭建一个简易的GSM基站,但是请大家不要将其用于恶意目的。

* 参考来源:n0where,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

网友评论


评论时间:2023-10-17 12:25:03

12.少吃油腻食服务器托架 物服务器配置拓扑图 食物


评论时间:2023-08-24 15:25:01

5.运云主机终端 行游戏云桌面和云主机区别


评论时间:2023-03-06 00:25:01

1云主机实时管理系统 1.重新阿里虚拟主机 新启动游戏


评论时间:2022-11-16 09:25:01

小型服务器租用市场规模约为100云主机免费申请流程 亿元刀片服务器多少钱一组 服务器租用市场规模约为100亿元,增速超过20%


评论时间:2022-11-14 00:25:01

8.当服务器机柜简称 您发现有故障时应该立刻停止维护,并通知相虚拟主机入门工具 通知相关技术人员


评论时间:2022-10-28 00:25:02

2.用途:主要应用于需要处理大量信息且数据量虚拟主机注册教程 很大的场合达仁云主机 息且数据量很大的场合

最新文章

 2023-12-25 22:44:35   admin

活动发布区版规

 2023-05-27 22:03:52   御风而行

容器、无服务器、虚拟机:安全性差...

 2023-05-27 19:08:41   小绵羊0123

科技巨头布局云端 服务器 网络硬...

 2023-05-27 18:17:46   姐姐的跟屁虫

钉钉因系统访问流量激增,宕机1小...

热门阅读

 2022-07-23 00:34:02   freeatom

常见ftp命令 FTP命令使用详...

 2022-07-21 02:17:02   ares

双硬盘组建Raid0磁盘阵列图文...

 2022-07-20 06:17:02   mankeung123

用友软件客户端连接不上服务器的解...

 2022-07-23 00:51:02   antonfxb

WebService实例

 2022-07-13 05:38:02   苯小孩

开发、运维不可不看的Linux调...

 2022-07-20 18:51:02   nightstone

如何使用Charles抓取Web...

随机文章

 2022-02-03 05:38:02   gyman

电子邮件服务器的配置

 2022-04-04 05:38:03   gw20002000

iis配置web服务器

 2022-07-09 05:38:02   无奈的人

一款适用于WordPress、D...

 2022-07-19 08:51:02   ugv456

服务器教程之权限设置

 2022-07-19 20:34:02   lll_asd

yum在线管理:yum命令详解

 2022-07-19 21:17:02   magician

源码包安装过程

热评文章

 2022-07-19 20:17:02   dengyu0429

linux vi使用及详细介绍

 2022-07-20 01:00:05   激动的舌头

Linux视频教程:用户管理命令...

 2022-07-21 20:51:02   jessica-an

创建本地FTP站点

 2022-02-07 05:38:03   jasonkidd

WEB服务器配置详解

 2022-07-20 04:51:02   wolfssss

ACL权限-默认与递归(4)

 2022-07-22 15:00:05   淡水珊瑚

Linux下 Samba Ser...
全球云服务器
Catfish(鲶鱼) Blog V 4.7.3