【ローカル5G】 free5GCとリアルgNBでiPhone接続を試す。⑤

* * *
※本記事は2024年9月9日時点の内容です。
この記事は私がfree5GCとリアルgNB(ローカル5G用小型基地局= Small Cell）を使ってiPhone接続を試す機会があり、その過程をまとめたものです。
free5GCのインストールについては基本的には全てfree5GCプロジェクトのWEBサイトを参考に進めました。

https://free5gc.org/

インストールしたバージョンは以下の通りです。
OS　: 　Ubuntu 20.04.6 LTS
Linux Kernerl　:　5.4.0-193-generic
free5GC　:　v3.4.2
<br>
過去記事はこちら
[① Ubuntuインストール編](https://qiita.com/Takashi_Eifuku/items/133b26da9013f35cdf68 "【ローカル5G】 free5GCとリアルgNBでiPhone接続を試す。①")
[② free5GCインストール編](https://qiita.com/Takashi_Eifuku/items/c13b8ecb499f1a3b3c38 "【ローカル5G】 free5GCとリアルgNBでiPhone接続を試す。②")
[③ free5GC設定変更編](https://qiita.com/Takashi_Eifuku/items/f89b6ddffc9969de3f5a "【ローカル5G】 free5GCとリアルgNBでiPhone接続を試す。③")
[④ SUCI SIM編](https://qiita.com/Takashi_Eifuku/items/b92d5e1cb87e985dcf73 "【ローカル5G】 free5GCとリアルgNBでiPhone接続を試す。④")

<br>

# gNB接続
### 1. gNBの設定
free5GCの準備が完了したのでgNBを接続します。

接続用に準備したgNBはQucell Networks社製のローカル5G SmallCellです。

- モデル：　QC-333J
- 工事設計認証番号：　003-230279
- 周波数：　4.84998 GHz
- 空中線電力：　0.251 W

※総務省 電波利用ホームページ 技術基準適合証明等を受けた機器の検索　より
<br><br>
DU+CU+RUが含まれたいわゆるオールインワン型の装置ですのでLANケーブルでCoreにつなげば使えます。

今回はEMSがありませんので機器にPCをつないで初期設定を実施。
Mgmt, NgC, NgU, AMF のIPアドレスを設定、そしてPCI, gNBID, S-NSSAI, 周波数, 送信出力,TDD準同期設定も実施。
設定完了後にネットワークへ接続。まだ電源は投入しない。
<br>
接続後の状態
![network3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3883115/99734838-b6ad-a6a2-28bd-bdc182a1e2fb.png)
<br>

### 2. free5GCへSIM登録
後ほどiPhone接続に必要となるので、ここでSIMを登録しておきます。
念のため一度PCを再起動してから以下コマンドでサービスを起動。

###### a) Linuxホストのネットワーク設定
PC再起動のたびに設定するようにと書いてあった気がしたのでコマンド入力。
```
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o <dn_interface> -j MASQUERADE
sudo iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400
sudo systemctl stop ufw
sudo systemctl disable ufw # prevents the firewall to wake up after a OS reboot
```
例によって\<dn_interface>にはインターフェース名を入れる。
後ほど、rc.localに登録するなどしてOS起動時に自動実行するように設定予定。
<br>
###### b) MongoDB Server起動
```
#サービススタート
sudo service mongod start

#サービスステータス確認
sudo service mongod status
```
<br>

###### c) free5GC WEB console起動
```
cd ~/free5gc/webconsole
./bin/webconsole
```
上記コマンドでWEB Serverが起動しているはずですので、その状態のままWEBブラウザで以下URLへアクセス。
http://172.16.60.2:5000

※IPアドレス部分は環境に合わせて置き換え。

接続するとWEB UIが開くのでIDとPWでサインイン。
ID: admin
PW: free5gc
![Free5GC_WEB_login画面2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3883115/f71f04a9-55eb-5679-7d8a-12867cfc5ad7.png)

![ログイン後.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3883115/36292116-2418-9672-6fa2-205fdc3312fe.png)
ログイン後画面
<br>

###### d) SIM登録
画面左メニューの「SUBSCRIBERS」をクリック。「CREATE」をクリックして新規登録画面を開く。

以下の各項目に情報を登録して画面最下部の「Create」ボタンをクリック。
- SUPI
- PLMN ID
- Operator Code Value
- K
- S-NSSAI Configuration (SST & SD)
- Data Network Name

これでSIM登録完了です。
登録が完了したらWEB consoleサービスを終了しても問題ありません。
※先程の c) でサービスを起動したターミナル画面でCtrl + Cで終了できます。

![WEB stop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3883115/7d3564b1-3cef-c5dd-7eaf-eb7dc4d23da4.png)
[WEB UI停止]
<br>

### 3. free5GC起動
以下のコマンドでfree5GCを起動。
```
cd ~/free5gc
./run.sh
```
ターミナルが閉じるとサービスも停止してしまうのでそのまま維持します。
<br>

### 4. gNB接続
gNBの電源を投入。free5GC側のログを見ながら待っていると。。
```
[INFO][AMF][Ngap] [AMF] SCTP Accept from: 172.16.60.3:38412
[INFO][AMF][Ngap] Create a new NG connection for: 172.16.60.3:38412
[INFO][AMF][Ngap][ran_addr:172.16.60.3:38412] Handle NGSetupRequest
[INFO][AMF][Ngap][ran_addr:172.16.60.3:38412] Send NG-Setup response
```
gNB(172.16.60.3)とNG connectionを作成し、NG-Setup responseを返してgNBがOn Airになりました。

:::note alert
電波輻射には無線局免許が必要ですのでご注意下さい。
:::
<br>

これでgNBの接続まで完了です。

次回記事でiPhone attachの過程をまとめております。

https://qiita.com/Takashi_Eifuku/items/1b710477dee680f76909