LTE 通信を利用する IoT 製品が増えてきていることもあり、以前から LTE に興味がありました。そこで LimeSDR と srsLTE を組み合わせて LTE ネットワークのシミュレーションを試してみました。
※注意
今回、記事の中で紹介している LimeSDR のような技適を取得していない製品をそのまま使用することは違法です。必ずシールドルームやシールドボックスなどの電波を遮断できる環境で使用してください。
今回購入したハードウェア
LimeSDR
- LimeSDR USB Type-A ($299)
- Acrylic Case ($99)
- Four Antenna + Cable Pairs ($85)
SDR とは、ソフトウェアでシステム機能を変更することにより、単一のハードウェアで複数のシステム機能に対応可能な無線システムを実現する技術です。LimeSDR のような製品を使用することで LTE やその他 LPWA などの複数の無線システムをシミュレーションすることが可能です。
ちなみにアクリルケースはなくてもよいのですが、LimeSDR は RF コネクタが U.FL で強度に不安があったため念のため購入しました。
テスト用 SIM カード
- sysmoUSIM-SJS1 4FF/nano SIM + USIM Card (10-pack) with ADM Keys (80.92€)
SIM カードの認証に必要な Ki などの情報が分かる、テスト用の SIM カードを用意する必要があります。
srsLTE とは
LTE ネットワークをシミュレーションするためには、専用のソフトウェアが必要です。LTE 用のソフトウェアはオープンソースのものがいくつか存在しますが、今回は srsLTE を使用しました。
srsLTE は SRS によって開発されたフリーでオープンソースな LTE ソフトウェアスイートで、srsUE、srsENB、srsEPC の 3 つのコンポーネントからなっています。srsUE はクライアント端末側をシミュレーションするもので、今回クライアント側には実機の Android 端末を使用したため srsUE は使用しませんでした。
ちなみに LTE 用のオープンソースソフトウェアは srsLTE の他にも、openLTE や OAI (OpenAirInterface) などがあります。中でも OAI は srsLTE と比較して実システムに近いアーキテクチャになっているらしく、こちらもいつか試してみたいです。
環境構築
インストールした環境
srsLTE をインストールした PC のスペックおよび環境は以下のとおりです。
$ uname -a Linux lte 4.18.0-20-generic #21~18.04.1-Ubuntu SMP Wed May 8 08:43:37 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/os-release | head -n 2 NAME="Ubuntu" VERSION="18.04.2 LTS (Bionic Beaver)"
必要なソフトウェアのインストール
インストールは以下のサイトを参考に行いました。
- https://github.com/srsLTE/srsLTE
- https://cyberloginit.com/2018/05/03/build-a-lte-network-with-srslte-and-program-your-own-usim-card.html
- https://wiki.myriadrf.org/Lime_Suite
設定の変更
各種ソフトウェアのインストールが終了したら、srsLTE の設定ファイルを編集します。
$ vim ~/.config/srslte/enb.conf [rf] dl_earfcn = 3050 tx_gain = 56 rx_gain = 38 device_name = soapy device_args = rxant=LNAH,txant=BAND2 time_adv_nsamples = 70 burst_preamble_us = 0
次に、user_db.csv
ファイルに用意した SIM カードのデータを登録します。
後は Android 端末に SIM カードを挿入し、APN を設定すれば LTE による接続ができるようになります。このとき APN、eNB、EPC において、MCC、MNC の値をすべて一致させる必要があります。一致していない場合、クライアント端末からインターネットに接続することができませんでした (ここでかなりつまづいた……)。
これらの設定を行うことで、無事にクライアント端末からシミュレーションしている LTE ネットワークに接続できました。
おわりに
今年の 4 月に SDR を購入し、ゴールデンウィーク中に LTE のシミュレーションをしようと思っていたのですが、SDR の知識も LTE の知識も全くない状態から始めたのでかなり苦労しました。
とりあえずシミュレーションまではうまくいったので、次は実際に LTE 通信のパケット解析を行ってみたいと思っています。また、せっかく高価な SDR を購入したので、これを使って LPWA などの LTE 以外の通信も試してみようと思います。