1
1

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.

Open5GS 5GCとUERANSIM UE/RANでSCP Indirect communication Model Cの使用方法

Posted at

本記事は、Open5GSとUERANSIMを使用して、SCP(Service Communication Proxy)のIndirect communication Model Cを使用する場合の簡単な設定について説明します。これにより、複数のNFが直接通信することなく、SCPが中継することにより、NFによるサービス提供の負荷分散やサービス提供者・利用者のトポロジーがシンプルになることを期待しています。
なお、5GCのコア網に登場する各NF(Network Function)の役割やインターフェースについて概ね知っていることを期待して書いており、これらの説明は省略します。


目次


Open5GS 5GCのシミュレーション携帯網の概要

これは、以下の構成例にSCP Model Cを適用した際の追加の設定例です。

SCPについては、3GPP TS 23.501 6.2.19, 6.3.16 and Annex E.1 Generalで説明されており、Model Cは図のオレンジ枠で囲んだ方式になります。

network-overview.png

(Reference source: 3GPP TS 23.501 Annex E.1 General)

Model Cでは、指定した条件に合うNFのDiscovery機能にはNRFを使用し、その後、選択したNFと通信する際にSCPを経由します。

5GCとUE/RANに使用しているOSSは以下の通りです。

NRFとSCPのSBIのIPアドレスは以下の通りです。

NF IP address on SBI
NRF 127.0.0.10
SCP 127.0.1.10

Open5GS 5GC C-Planeの設定ファイルの追加の変更点

この場合、次の構成に対して、SCP Model C用に更なる変更を行います。

ここでは、追加で設定する内容について説明します。SCPを使う時、C-Planeの各NFの以下の設定ファイルを編集します。

  • open5gs/install/etc/open5gs/*.yaml
amf.yaml
ausf.yaml
bsf.yaml
nssf.yaml
pcf.yaml
smf1.yaml smf2.yaml
udm.yaml
udr.yaml

各NFの変更内容は同じです。以下にausf.yamlの変更例を示します。

--- ausf.yaml.orig      2022-08-04 20:22:09.222046717 +0900
+++ ausf.yaml   2022-08-04 20:46:19.747846735 +0900
@@ -141,7 +141,11 @@
     sbi:
       - addr:
           - 127.0.0.10
-          - ::1
+        port: 7777
+
+scp:
+    sbi:
+      - addr: 127.0.1.10
         port: 7777
 
 #

なお、設定ファイルからSBIのIPv6アドレス::1を削除しました。理由は、pcapファイルを5Gプロトコルのシーケンス図に変換するツールの5G Trace Visualizerが、::1を適切に処理できないためです。このため、今回はIPv6アドレスを使用していません。

  • open5gs/install/etc/open5gs/nrf.yaml

nrf.yamlも以下のように変更します。

--- nrf.yaml.orig       2022-08-04 20:22:09.164046273 +0900
+++ nrf.yaml    2022-08-04 20:49:31.213976148 +0900
@@ -91,7 +91,6 @@
     sbi:
       addr:
         - 127.0.0.10
-        - ::1
       port: 7777
 
 #
  • open5gs/install/etc/open5gs/scp.yaml

scp.yamlも以下のように変更します。

--- scp.yaml.orig       2022-08-04 20:22:09.193046495 +0900
+++ scp.yaml    2022-08-04 20:51:18.153636042 +0900
@@ -164,7 +164,6 @@
     sbi:
       - addr:
           - 127.0.0.10
-          - ::1
         port: 7777
 
 #

Open5GS 5GC C-Planeを実行

open5gs-scpdを追加して、Open5GS 5GC C-Planeを実行します。

./install/bin/open5gs-nrfd &
sleep 5
./install/bin/open5gs-scpd &
sleep 5
./install/bin/open5gs-smfd -c install/etc/open5gs/smf1.yaml &
./install/bin/open5gs-smfd -c install/etc/open5gs/smf2.yaml &
./install/bin/open5gs-amfd &
./install/bin/open5gs-ausfd &
./install/bin/open5gs-udmd &
./install/bin/open5gs-udrd &
./install/bin/open5gs-pcfd &
./install/bin/open5gs-nssfd &
./install/bin/open5gs-bsfd &

5G Trace Visualizerでpcapファイルを処理

5G通信の際、C-Plane VM上でtcpdumpを実行してpcapファイルを取得し、5G Trace Visualizerを使用して、5GプロトコルシーケンスをSVG図に変換します。

今回は以下の5G通信シナリオでpcapファイルを取得します。

              C-Plane started
                         |
                         V
             U-Plane1 started
                         |
                         V
             U-Plane2 started
                         |
                         V
               gNodeB started
                         |
                         V
UE(SST:1,SD:0x000001) started
                         |
                         V
                       ping google.com -I uesimtun0 -n
                         |
                         V
UE(SST:1,SD:0x000001) stopped
                         |
                         V
UE(SST:1,SD:0x000002) started
                         |
                         V
                       ping google.com -I uesimtun0 -n
                         |
                         V
UE(SST:1,SD:0x000002) stopped

そして、取得したpcapファイルを以下の通り処理します。

python3 trace_visualizer.py -wireshark "OS" -http2ports "1000-65535" <pcap file>

必要なら、次のオプションを追加することで見易い図を作成することができます。(他のオプションもあります)

-show_timestamp True -simple_diagrams True

なお、サンプルのpcapファイルとSVGファイルをここに置きました。

pcapファイルについては、ダウンロードしてWiresharkで見ることができます。また、SVGファイルについては、各SVGファイルのリンクを辿り、GithubのRawボタンを押すことで、シーケンス図を見ることができます。

これにより、SCPのIndirect communication Model Cを簡単に確認することができました。

最後に

3GPP Rel.16で追加された規格のSCP(Service Communication Proxy)のIndirect communication Model Cを使用することにより、複数のNFが直接通信することなく、SCPが中継することで、NFによるサービス提供の負荷分散やサービス提供者・利用者のトポロジーがシンプルになると思います。また、2022年9月時点ではModel C対応ですが、Discovery機能をNRFの代わりにSCPでも提供するModel Dに対応する計画があるそうです。

最後に、元記事はGithubに書いたものです。Open5GSのチュートリアルからもリンクして頂きました。

主な変更履歴

  • [2022.09.13] 初版。
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?