3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

5Gのモバイルコアをお家に建てる Open5GS on Ubuntu 20.04

Posted at

何度もOSをいれなおしましたが、今度こそミニPC上に Open5GSによるEPC構築を目指します。

参考文献

Open 5GSのドキュメント
https://open5gs.org/open5gs/docs/

完成形イメージ

image.png

紆余曲折

 

User’s Guide

Quickstart

5GCoreを建てようと思うと、ピンクの部分がごちゃっとしてて難しそうなので、
まずは緑の部分EPCを建てようと思いました。
image.png

1. Introduction 4G/ 5G NSA Core

SGWとPGWが、C(制御側)とU(データの転送)で分かれている(いわゆるC/U分離 CUPS)なのが若干気になりますが、
ほぼ私の知っているEPCなので、なんとかなりそう。

The Open5GS 4G/ 5G NSA Core contains the following components:
MME - Mobility Management Entity
HSS - Home Subscriber Server
PCRF - Policy and Charging Rules Function
SGWC - Serving Gateway Control Plane
SGWU - Serving Gateway User Plane
PGWC/SMF - Packet Gateway Control Plane / (component contained in Open5GS SMF)
PGWU/UPF - Packet Gateway User Plane / (component contained in Open5GS UPF)

MME - HSS で認証したり、端末が移動したときのハンドオーバー制御して、
HSS - PCRF で認証されたユーザーの情報を渡して、
PCRFがSGW/PGWに流れるデータの転送を制御する
ようなイメージ。

2.Install Open5GS with a Package Manager

Ubuntuのパッケージがあるので、簡単にインストールできる。

ミニPCへのUbuntuインストールは下記記事参照
https://qiita.com/kanegae/items/610294ce18e9ae802582

メインPCからミニPCにSSHアクセスして、UbuntuにOpen5GSをインストール

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:open5gs/latest
$ sudo apt update
$ sudo apt install open5gs

・apt update
https://packages.ubuntu.com/focal/
色々まとめて最新化してくれるらしい。
コンパイラ、ライブラリ、エディタ等

・apt install software-properties-common
https://packages.ubuntu.com/ja/bionic-updates/software-properties-common
open sslとかPythonがインストールされるらしい

・add-apt-repository ppa:open5gs/latest
 open 5gsのPPA(Personal Package Archive opne5gs)のリポジトリを追加。
 →open 5gsの各種パッケージがダウンロードできるようになる。

3. Install the WebUI of Open5GS

WebUIで加入者データ(電話番号、SIMのキーとか設定できるっぽい)
Node.jsが必要。
・Node.js:非同期型のイベント駆動の JavaScript 環境?(Javaがサーバ上で動く?)

 $ sudo apt update
 $ sudo apt install curl
 $ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
 $ sudo apt install nodejs

Node.js 14.がインストールされたっぽい
・curl command line tool for transferring data with URL syntax
 https://packages.ubuntu.com/ja/focal/curl
 //HTTPのgetとかputがコマンドラインで送れるっぽい。
//curl -fsSL がよくわからず。

WebUIがインストールできた様子。

Download the Open5GS Source Code (v2.4.7)
/home/kaneb1a/open5gs-2.4.7/webui/.babelrc"
pen5gs@2.4.7 build /home/kaneb1a/open5gs-2.4.7/webui
Default Administrator Account [Username:xxxx, Password:xxxx]

4. Configure Open5GS

・HSSに加入者データ(電話番号など)
・PGWにIPルーチングテーブル
・Quick startでは1台のPCですべてのコンポーネントがある前提。loopback addressを使う。

//とりあえず、EPC(4G)コアだけ絵にしてみました。

image.png

4.1. Setup a 4G/ 5G NSA Core

MMEのmcc/mncを変更。
PLMN: Public Land Mobile Network : 携帯事業者の識別番号 001/01
 →せっかくなので、日本の番号にしてみる 国コード:440 事業者コード:19
  ※日本のPLMN割り当てについては 4.1.1. で詳細後述
TAC(TrackingAreaCode) エリアの識別:各事業者で割り当てるものっぽい
 →デフォルトの1にする。

エディタは nanoを使っておく。

/etc/open5gs$ sudo nano mme.yaml

mme:
    freeDiameter: /etc/freeDiameter/mme.conf
    s1ap:
      - addr: 127.0.0.2
    gtpc:
      - addr: 127.0.0.2
    gummei:
      plmn_id:
        mcc: 440
        mnc: 19
      mme_gid: 2
      mme_code: 1
    tai:
      plmn_id:
        mcc: 440
        mnc: 19
      tac: 1
    security:
        integrity_order : [ EIA2, EIA1, EIA0 ]
        ciphering_order : [ EEA0, EEA1, EEA2 ]
    network_name:
        full: Open5GS
    mme_name: open5gs-mme0

mmeとsgwのデーモン再起動

kaneb1a@beelinkk01a:/etc/open5gs$ sudo systemctl restart open5gs-mmed
kaneb1a@beelinkk01a:/etc/open5gs$ sudo systemctl restart open5gs-sgwud

4.1.1. PLMN補足

参考文献:IoT時代の電気通信番号を巡る現状等について 総務省
 https://www.soumu.go.jp/main_content/000592370.pdf
PLMN-ID = MCC(Mobile Countory Code) + MNC (Mobile Network cord)
image.png

image.png

4.1.2. TAC補足

参考文献
・IMSIの利用に関する課題について
https://www.soumu.go.jp/main_content/000458410.pdf
・3GPP TS23.003
www.arib.or.jp/english/html/overview/doc/STD-T63v11_00/5_Appendix/Rel12/23/23003-c60.p

TAC(TrackingAreaCode) エリアの識別:各事業者で割り当てるものっぽい
 image.png

4.2. Setup a 5G Core

AMFのmcc/mncを変更。
→せっかくなので、日本の番号にしてみる 国コード:440 事業者コード:19

amf:
    sbi:
      - addr: 127.0.0.5
        port: 7777
    ngap:
      - addr: 127.0.0.5
    guami:
      - plmn_id:
          mcc: 440
          mnc: 19
        amf_id:
          region: 2
          set: 1
    tai:
      - plmn_id:
          mcc: 440
          mnc: 19
        tac: 1
    plmn_support:
      - plmn_id:
          mcc: 440
          mnc: 19
        s_nssai:
          - sst: 1
    security:
        integrity_order : [ NIA2, NIA1, NIA0 ]
        ciphering_order : [ NEA0, NEA1, NEA2 ]
    network_name:
        full: Open5GS
    amf_name: open5gs-amf0

AMFデーモンを再起動

$ sudo systemctl restart open5gs-amfd

4.3. Register Subscriber Information

http://localhost:3000
// Xwindowsを入れてミニPCでlocal hostを叩けWebUIにアクセスできるのですが
// グラフィックのドライバのインストールに失敗し解像度が800 x 600で固定されて見にくい
// メインPCから:3000に接続できない。
image.png

が、local hostのWeb UIを使います。IMSI,K,OPcを設定
・International Mobile Subscriber Identity(IMSI)
 440191234567801
 MCC:440
 MNC:19
MSIN(Mobile Subscription Identification Number)ユーザID?10桁:1234567801
 補足:MCC:日本 MNC:適当 MNC:適当、
・Subscriber Key(K):
 
・Operator Key(OPc)

・Authentication Managemnt Field(AMF): 8000 (デフォルト)

IMSとSubscriber Keyと OPcについては下記参照
https://qiita.com/m0ch1m0ch1/items/4c04d4ebb954ca29de97

4.3.1. IMSI, K, OPc

3GPP TS 23.003 Rel 17 3G Security; Security architecture

3.2. Symbols
K Long-term secret key shared between the USIM and the AuC

6.3 Authentication and key agreement
image.png
Figure 5: Authentication and key agreement

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?