【プライベートLTE】
第3回:プライベートLTE設備の構築
~Open Air Interface(OAISIM)による端末(UE)・基地局(eNB)擬似環境の紹介~

Yohei Motomura
nttlabs
Published in
25 min readJun 21, 2019

■ はじめに…

こんにちは,NTT研究所の本村です.私はプライベートLTE/ローカル5Gに関する研究開発に取り組んでいます.

プライベートLTEとは自営の設備で自社/個人専用のLTEネットワークを構築する仕組みであり,プライベートLTE設備を構築するためには無線基地局設備(eNodeB:eNB)コア網設備(Evolved Packet Core:EPC),端末(User Equipment:UE)の3つの設備を自前で用意する必要があります.

日本国内において,これら3つの中で最も調達ハードルが高いのが基地局(eNB)です.開放空間での利用には無線局と従事者の免許,または技適の取得など法的な制約があります.

現在では技適を取得した基地局製品(Baicells社のpBS1109,Accuver社(QUCELL社)のSC-120J等)もいくつか登場してはいるのですが,Wi-Fi製品のように気軽に量販店等で購入できるようになるにはまだまだ先という状況です.また,Facebook社が主導するTelecom Infra ProjectのOpenCellularやEurecomが主導するOpen Air Interface等でオープンな無線網技術が推進されたこともあり,ソフトウェア無線(Software-Defined Radio:SDR)やFPGAなどの汎用ハードウェアを利用して基地局(eNB)を構成するOSSが多数開発されています.しかしながら,これらOSSは日本国内での開放空間で利用するためには法的な制約を満たす必要があり、制約を満たすことができない場合は電波を遮蔽する環境で検証する必要があります.そのため,基地局(eNB)に関するOSSも気軽に使用するにはまだまだ難しい状況です.

一方で,前回・前々回の記事を見て頂いた方から,「実際にコア網設備(EPC)を動作させてシーケンスを見てみたい」,「PoCとしてプライベートLTE設備の動作を検証してみたい」など実際にLTE設備を構築して検証したいという話を多数伺っています.

そこで第3回の本記事では,Open Air Interfaceの機能の1つであり,汎用PC上で基地局(eNB)と端末(UE)の動作を擬似(エミュレート)できるOAISIM(OpenAirInterface System Emulation)という機能について紹介いたします.OAISIMを使用することで,擬似環境ではありますがLTE設備の端末(UE)・基地局(eNB)を準備することが可能となります.さらに,OAISIMと既存のEPCを組み合わせることにより擬似LTE設備を構築することも可能です.今回の記事では実際にOAISIMと既存のOSSのEPCの1つであるsrsLTEを組み合わせたLTE環境を構築し,紹介したいと思います.

■ そもそもOpen Air Interfaceとは?

Open Air InterfaceとはOpenairinterface Software Alliance(Eurecom)が開発を主導する無線網技術に関するOSSプロジェクトです.Open Air Interfaceは大きく分けると無線アクセスネットワーク(RAN)に関するプロジェクトであるopenairinterface5Gとコア網(EPC)に関するプロジェクトであるopenair-cnの2つで構成されており,それぞれ3GPPに準拠した機能が多数実装されています.また,openairinterface5GではSDRを用いた基地局(eNB)実装だけでなく,OAISIMという基地局や端末を擬似するエミュレータ機能も開発されています.

openair-cn

openairinterface5G

■ OAISIMとは何なのか?

OAISIMとはopenairinterface5Gの中の1機能で,基地局(eNB)や端末(UE)の動作・挙動を擬似する機能になります.この機能は単純に通信プロトコルを擬似するだけでなく,PHY層による信号変換等も含めた擬似が可能となっています.本記事では基地局1台と端末2台をOAISIMで擬似した上でOSSのEPCであるsrsLTEへ接続し,その際のLTE設備の動作を確認してみました.

■ srsLTE + OAISIM検証環境

本記事では端末2台-基地局1台-EPC1台の構成で環境構築します.
※この中の基地局1台と端末2台はPC上で擬似する設備となります.

また,実機としてはPC2台を使用しています.
このときsrsLTEを導入するPCをPC1,OAISIMを導入するPCをPC2とします.

○PC1(srsLTE)について
OS:Ubuntu18.04.02 Server
NIC名:ens3
IP:192.168.0.20

○PC2(OAISIM)について
OS:Ubuntu16.04.06 Server
NIC名:ens3
IP:192.168.0.10

SIMカードの認証情報は以下としました
○SIMカード1
IMSI:001010100001111
Ki:8baf473f2f8fd09487cccbd7097c6862
OPC:e734f8734007d6c5ce7a0508809e7e9c

○SIMカード2
IMSI:001010100001112
Ki:8baf473f2f8fd09487cccbd7097c6862
OPC:e734f8734007d6c5ce7a0508809e7e9c

■ srsLTEの導入

まず,OSSのEPCであるsrsLTEをPC1に導入します.
こちらはhttps://github.com/srsLTE/srsLTEに記載の手順をそのまま実行しました.

□ 手順1. srsLTEに必要なパッケージのインストール

$ sudo apt-get install cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev

□ 手順2. srsLTEのダウンロードおよびビルド

$ git clone https://github.com/srsLTE/srsLTE.git
$ cd srsLTE
$ mkdir build
$ cd build
$ cmake ../
$ make
$ make test

□ 手順3. srsLTEのインストール

$ sudo make install
$ sudo srslte_install_configs.sh

□ 手順4. srsLTEのコンフィグ設定(以下は変更行のみ記載)
・EPCのIPアドレス設定の変更,認証アルゴリズムの変更

$ vim /etc/srslte/epc.conf
================================
mme_bind_addr = 192.168.0.20 # 導入PCのIPアドレスに変更
auth_algo = milenage # 認証アルゴリズムの変更
gtpu_bind_addr = 192.168.0.20 # 導入PCのIPアドレスに変更
================================

・2台分のSIM情報をHSSに登録

$ vim /etc/srslte/user_db.csv
================================
ue1,001010100001111,8baf473f2f8fd09487cccbd7097c6862,opc,e734f8734007d6c5ce7a0508809e7e9c,8000,0000000035e5,7
ue2,001010100001112,8baf473f2f8fd09487cccbd7097c6862,opc,e734f8734007d6c5ce7a0508809e7e9c,8000,000000003436,7
================================

□ 手順5. srsLTEの実行

$ sudo srsepc
================================
Built in Release mode using commit 429ee90 on branch master.
— — Software Radio Systems EPC — -Reading configuration file /etc/srslte/epc.conf…
HSS Initialized.
MME GTP-C Initialized
MME Initialized. MCC: 0xf001, MNC: 0xff01
SP-GW Initialized.

■ OAISIMの導入

次にOAISIMをPC2に導入します.
OSはUbuntu16.04.06で以下の手順を実行しました.

□ 手順1. OAISIMのダウンロード
・本記事では
v0.6.1を導入します

$ git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
$ cd openairinterface5g
$ git checkout -b v0.6.1 refs/tags/v0.6.1

□ 手順2. OAISIMのビルド

$ source oaienv
$ cd ~/openairinterface5g/cmake_targets
$ export LANG=C
# 日本語部分が文字化けするため
$ ./build_oai -I
# 外部パッケージ等をインストールするオプション(-I).初回導入時のみ必須.
$ ./build_oai -c -x --oaisim --UE
# -x:GUIを動作する場合に必要なオプション
# -c:clean

□ 手順3. OAISIMの擬似eNBの設定(以下は変更行のみ記載)
・MCC/MNCの変更,擬似基地局のIPアドレス設定の変更

$ vim ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf
================================
#mobile_country_code = “208”;
mobile_country_code = “001”; #IMSIに合わせてMCCを変更
#mobile_country_code = “93”;
mobile_network_code = “01”; #IMSIに合わせてMNCを変更
#mme_ip_address = ( { ipv4 = “10.0.1.2”;
mme_ip_address = ( { ipv4 = “192.168.0.20”; # EPC導入PCのIPに変更
#ENB_INTERFACE_NAME_FOR_S1_MME = “eth0”;
ENB_INTERFACE_NAME_FOR_S1_MME = “ens3”; # OAISIM導入PCのNIC名に変更
#ENB_IPV4_ADDRESS_FOR_S1_MME = “10.0.1.1/24”;
ENB_IPV4_ADDRESS_FOR_S1_MME= “192.168.0.10/24”;#OAISIM導入PCのIPに変更
#ENB_INTERFACE_NAME_FOR_S1U = “eth0”;
ENB_INTERFACE_NAME_FOR_S1U = “ens3”; # OAISIM導入PCのNIC名に変更
#ENB_IPV4_ADDRESS_FOR_S1U = “10.0.1.1/24”;
ENB_IPV4_ADDRESS_FOR_S1U = “192.168.0.10/24”; #OAISIM導入PCのIPに変更
================================

□ 手順4. OAISIMのUEの設定変更
・SIM情報および端末情報を追加(変更箇所は★を記載)
・今回はUE2台をeNBに接続するため,UE0,UE1と2つの設定を記載

$ vim ~/openairinterface5g/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
================================
# List of known PLMNS
PLMN: {
PLMN0: {
FULLNAME="Test network";
SHORTNAME="OAI4G";
MNC="01";
MCC="001";

};
PLMN1: {
FULLNAME="SFR France";
SHORTNAME="SFR";
MNC="10";
MCC="208";

};
PLMN2: {
FULLNAME="SFR France";
SHORTNAME="SFR";
MNC="11";
MCC="208";
};
PLMN3: {
FULLNAME="SFR France";
SHORTNAME="SFR";
MNC="13";
MCC="208";
};
PLMN4: {
FULLNAME="OAI LTEBOX";
SHORTNAME="OAIALU";
MNC="93";
MCC="208";
};
PLMN5: {
FULLNAME="T-Mobile USA";
SHORTNAME="T-Mobile";
MNC="280";
MCC="310";
};
PLMN6: {
FULLNAME="FICTITIOUS USA";
SHORTNAME="FICTITIO";
MNC="028";
MCC="310";
};
PLMN7: {
FULLNAME="Vodafone Italia";
SHORTNAME="VODAFONE";
MNC="10";
MCC="222";
};
PLMN8: {
FULLNAME="Vodafone Spain";
SHORTNAME="VODAFONE";
MNC="01";
MCC="214";
};
PLMN9: {
FULLNAME="Vodafone Spain";
SHORTNAME="VODAFONE";
MNC="06";
MCC="214";
};
PLMN10: {
FULLNAME="Vodafone Germ";
SHORTNAME="VODAFONE";
MNC="02";
MCC="262";
};
PLMN11: {
FULLNAME="Vodafone Germ";
SHORTNAME="VODAFONE";
MNC="04";
MCC="262";
};
};

UE0:
{
USER: {
IMEI="356113022094149";
MANUFACTURER="EURECOM";
MODEL="LTE Android PC";
PIN="0000";
};

SIM: {
MSIN="0100001111";
USIM_API_K="8baf473f2f8fd09487cccbd7097c6862";
OPC="e734f8734007d6c5ce7a0508809e7e9c";
MSISDN="33611123456";
};

# Home PLMN Selector with Access Technology
HPLMN= "00101"; #★変更箇所

# User controlled PLMN Selector with Access Technology
UCPLMN_LIST = ();

# Operator PLMN List
OPLMN_LIST = ("00101", "20810", "20811", "20813", "20893", "310280", "310028");

# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST = ("22210", "21401", "21406", "26202", "26204");

# Forbidden plmns
FPLMN_LIST = ();

# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST= ();
};
#★以下は全て新規に追加
UE1:
{
USER: {
IMEI="356113022094150";
MANUFACTURER="EURECOM";
MODEL="LTE Android PC";
PIN="0000";
};

SIM: {
MSIN="0100001112";
USIM_API_K="8baf473f2f8fd09487cccbd7097c6862";
OPC="e734f8734007d6c5ce7a0508809e7e9c";
MSISDN="33611123457";
};

# Home PLMN Selector with Access Technology
HPLMN= "00101";

# User controlled PLMN Selector with Access Technology
UCPLMN_LIST = ();

# Operator PLMN List
OPLMN_LIST = ("00101", "20810", "20811", "20813", "20893", "310280", "310028");

# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST = ("22210", "21401", "21406", "26202", "26204");

# Forbidden plmns
FPLMN_LIST = ();

# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST= ();
};

□ 手順5. OAISIMの再ビルド(UE設定の反映)
・UEのconfig(ue_eurecom_test_sfr.conf)を変更した場合は以下のコマンドで再ビルドが必要
※手順4.でUE設定を変更しない場合はSkip

$ cd ~/openairinterface5g/targets/bin/
$ ./conf2uedata -c ~/openairinterface5g/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf -o ./

□ 手順6. OAISIMのUE起動台数の変更(以下は変更行のみ記載)
・今回はUE2台を起動するため,OAISIM起動時のオプションを-u1から-u2に変更
※手順4.でUE起動台数を変更しない場合はSkip

$ vim ~/openairinterface5g/cmake_targets/tools/run_enb_ue_virt_s1
================================
#exe_arguments=”$exe_arguments -s15 -AAWGN -y1 -b1 -u1 -Q0"
exe_arguments=”$exe_arguments -s15 -AAWGN -y1 -b1 -u2 -Q0"

□ 手順7. OAISIMの実行

$ cd ~/openairinterface5g/cmake_targets/tools/
$ sudo -E ./run_enb_ue_virt_s1 -x
#-xはGUI起動の場合のみ必要

■ srsLTE + OAISIM検証環境における動作確認

□ srsLTEの動作ログ
・IMSI:001010100001111の端末が基地局経由でEPCに接続が確立され,172.16.0.1のIPがUEに割り振られる挙動を確認
・IMSI:001010100001112の端末についても同様に,172.16.0.2のIPがUEに割り振られる挙動を確認

# 以下はIMSI:001010100001111関連のログのみ抜粋
========================================================
Received S1 Setup Request.
S1 Setup Request — eNB Name: eNB_Eurecom_LTEBox, eNB id: 0xe00
S1 Setup Request — MCC:001, MNC:01, PLMN: 61712
S1 Setup Request — TAC 1, B-PLMN 0
S1 Setup Request — Paging DRX 2
Sending S1 Setup Response
Initial UE message: LIBLTE_MME_MSG_TYPE_ATTACH_REQUEST
Received Initial UE message — Attach Request
Attach request — IMSI Style Attach request
Attach request — IMSI: 001010100001111
Attach request — eNB-UE S1AP Id: 5195299
Attach request — Attach type: 1
Attach Request — UE Network Capabilities EEA: 10000000
Attach Request — UE Network Capabilities EIA: 00100000
Attach Request — MS Network Capabilities Present: false
PDN Connectivity Request — EPS Bearer Identity requested: 0
PDN Connectivity Request — Procedure Transaction Id: 1
PDN Connectivity Request — ESM Information Transfer requested: false
Downlink NAS: Sending Authentication Request
UL NAS: Received Authentication Response
Authentication Response — IMSI 001010100001111
UE Authentication Accepted.
Generating KeNB with UL NAS COUNT: 0
Downlink NAS: Sending NAS Security Mode Command.
UL NAS: Received Security Mode Complete
Security Mode Command Complete — IMSI: 001010100001111
Getting subscription information — QCI 7
Sending Create Session Request.
Creating Session Response — IMSI: 1010100001111
Creating Session Response — MME control TEID: 1
SPGW: Allocated Ctrl TEID 1
SPGW: Allocated User TEID 1
SPGW: Allocate UE IP 172.16.0.1
Received Create Session Response
Create Session Response — SPGW control TEID 1
Create Session Response — SPGW S1-U Address: 192.168.0.20
SPGW Allocated IP 172.16.0.2 to ISMI 001010100001111
Adding attach accept to Initial Context Setup Request
Initial Context Setup Request — eNB UE S1AP Id 5195299, MME UE S1AP Id 1
Initial Context Setup Request — E-RAB id 5
Initial Context Setup Request — S1-U TEID 0x1. IP 192.168.0.20
Initial Context Setup Request — S1-U TEID 0x1. IP 192.168.0.20
Initial Context Setup Request — QCI 7
Unhandled S1APintiating message: UECapabilityInfoIndication
Received Initial Context Setup Response
E-RAB Context Setup. E-RAB id 5
E-RAB Context — eNB TEID 0x834ef0dc; eNB GTP-U Address 192.168.0.10
UL NAS: Received Attach Complete
Unpacked Attached Complete Message. IMSI 1010100001111
Unpacked Activate Default EPS Bearer message. EPS Bearer id 5
Sending EMM Information

□ UEへの割り当てIPの確認
・OAISIMを動作しているPC上では各UEに相当するNIC:oipが追加される
・本記事ではUEを2台接続したため,oip1とoip2にそれぞれUEのIPが割り当てられることを確認

725: oip1: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/generic 00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00
inet 172.16.0.1/24 brd 192.168.128.255 scope global oip1
valid_lft forever preferred_lft forever
726: oip2: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/generic 00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00
inet 172.16.0.2/24 brd 192.168.128.255 scope global oip1
valid_lft forever preferred_lft forever

□ UE(172.16.0.1)からEPC(192.168.0.20)への疎通確認

$ ping 192.168.0.20 -I oip1
PING 192.168.0.20 (192.168.0.20) from 172.16.0.1 oip1: 56(84) bytes of data.
64 bytes from 192.168.0.20: icmp_seq=1 ttl=64 time=52.7 ms
64 bytes from 192.168.0.20: icmp_seq=2 ttl=64 time=65.3 ms

□ OAISIMのGUI動作状況

■ まとめ

本記事ではOSSであるOAISIMとsrsLTEを組み合わせてLTE環境を構築し,正常に動作することを確認しました.この検証環境は擬似設備による環境ではありますが,EPCのシーケンスを確認してみたい,LTE環境を触ってみたい,擬似的に5G基地局を試したい等,様々な用途で活用可能です.プライベートLTE/ローカル5Gに興味があり,疑似環境でも良いので動かしてみたいという方がいらっしゃれば是非こちらの環境を試してみてはいかがでしょうか.

>>プライベートLTE関連記事のリンク:
第1回:プライベートLTEって何?~概要&デモ環境の紹介~
第2回:プライベートLTEのユースケース~音声通話デモのご紹介~
第3回:プライベートLTE設備の構築~Open Air Interface(OAISIM)による端末(UE)・基地局(eNB)擬似環境の紹介~

■ おわりに…

私たちNTTは,プライベートLTEやローカル5Gに関するオープンソースコミュニティで共に活動する仲間を募集しています.ぜひ弊社 ソフトウェアイノベーションセンタ紹介ページ及び,採用情報ページをご覧ください.

--

--