1
0

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 EPCとZeroMQ対応srsRAN 4G UE/RANでDPDK対応VPP-UPFを試す

Posted at

本記事では、プライベートLTEを想定して、Open5GS EPCとVPP-UPFを連携動作させるための簡単な構成について説明します。 DPDK対応VPP-UPFのインストールと設定については、こちらを参照してください。


Open5GS CU分離EPCのシミュレーション携帯網の概要

今回、Open5GS EPCのC-Plane、VPP-UPF、およびData Network Gatewayの簡単な構成について説明します。この構成はVirtualbox VMを使用して実装されることに注意して下さい。
このシミュレーション環境は以下の条件を満たす最小構成になります。

  • 1つのSGW-U/UPF(PGW-U)とData Network Gateway
  • 1つのUEと1つのAPN

構築したシミュレーション環境は以下の通りです。

network-overview.png

EPC、VPP-UPFとUE/RANに使用しているOSSは以下の通りです。

各VMは以下の通りです。

VM SW & Role IP address OS CPU
(Min)
Memory
(Min)
HDD
(Min)
VM1 Open5GS EPC
C-Plane
192.168.0.111/24 Ubuntu
22.04
1 1GB 20GB
VM2 Open5GS EPC
U-Plane(SGW-U)
192.168.0.112/24 Ubuntu
22.04
1 1GB 20GB
VM-UP OpenAir CN 5G
for UPF
192.168.0.151/24 Ubuntu
22.04
2 8GB 20GB
VM-DN Data Network
Gateway
192.168.0.152/24 Ubuntu
22.04
1 1GB 10GB
VM3 srsRAN 4G
ZMQ RAN (eNodeB)
192.168.0.121/24 Ubuntu
22.04
1 2GB 10GB
VM4 srsRAN 4G
ZMQ UE
192.168.0.122/24 Ubuntu
22.04
1 2GB 10GB

各VMのネットワークインターフェースは以下の通りですが、この内、DPDKの制御下に入るデバイスを有効(UP)しないで下さい。これらのインターフェースについてはVPP-UPFのinit.confファイルにIPアドレスと合わせて設定しており、VPP-UPF起動時にこれらのデバイスは有効になります。

VM Device Network
Adapter
IP address Interface Under
DPDK
VM1 enp0s3 NAT(default) 10.0.2.15/24 (VM default NW) --
enp0s8 Bridged Adapter 192.168.0.111/24 (Mgmt NW) --
enp0s9 NAT Network 192.168.14.111/24 Sxb (N4 for 5GC) --
VM2 enp0s3 NAT(default) 10.0.2.15/24 (VM default NW) --
enp0s8 Bridged Adapter 192.168.0.112/24 (Mgmt NW) --
enp0s9 NAT Network 192.168.13.112/24 S1-U,S5u (N3 for 5GC) --
VM-UP enp0s3 NAT(default) 10.0.2.15/24 (VM default NW) --
enp0s8 Bridged Adapter 192.168.0.151/24 (Mgmt NW) --
enp0s9 NAT Network 192.168.13.151/24 S5u (N3 for 5GC) x
enp0s10 NAT Network 192.168.14.151/24 Sxb (N4 for 5GC) x
enp0s16 NAT Network 192.168.16.151/24 SGi (N6 for 5GC) x
VM-DN enp0s3 NAT(default) 10.0.2.15/24 (VM default NW) --
enp0s8 Bridged Adapter 192.168.0.152/24 (Mgmt NW) --
enp0s9 NAT Network 192.168.16.152/24 SGi (N6 for 5GC) --
VM3 enp0s3 NAT(default) 10.0.2.15/24 (VM default NW) --
enp0s8 Bridged Adapter 192.168.0.121/24 (Mgmt NW) --
enp0s9 NAT Network 192.168.13.121/24 S1-U (N3 for 5GC) --
VM4 enp0s3 NAT(default) 10.0.2.15/24 (VM default NW) --
enp0s8 Bridged Adapter 192.168.0.122/24 (Mgmt NW) --

EPCのNF間のインターフェースの内、S1-U、S5u、Sxb、SGiについては、VirtualboxのNATネットワークで以下の通りに設定しました。

Network Name Network CIDR Note
N3 192.168.13.0/24 S1-U,S5u for EPC
N4 192.168.14.0/24 Sxb for EPC
N6 192.168.16.0/24 SGi for EPC

network instanceをinternetに設定しています。

Network Instance
internet

加入者情報は以下の通りです。(その他の項目はデフォルト値)
srsRAN 4GのUEの設定に合わせて、OPあるいはOPcを選択してください。

UE IMSI APN OP/OPc
UE 001010000000100 internet OPc

これらの情報の登録には、Open5GSが提供するWebUIを使用しました。なお、3GPP認証とキー生成機能(MILENAGE)の試験データとして、3GPP TS 35.208 "4.3 Test Sets"が公開されています。

PDNは以下の通りです。

PDN APN TUNnel interface of UE
10.45.0.0/16 internet tun_srsue

eNodeBの主な情報は以下の通りです。

MCC MNC TAC eNodeB ID Cell ID E-UTRAN Cell ID
001 01 1 0x19b 0x01 0x19b01

Open5GS EPC、VPP-UPFとZMQ対応srsRAN 4G UE/RANの設定ファイルの変更点

Open5GS、VPP-UPFとZMQ対応srsRAN 4G UE/RANのビルド方法は以下を参照して下さい。

Open5GS EPC C-Planeの設定ファイルの変更点

Open5GSでは、PFCPの接続先としてSGW-Uを選択するロジックに使用可能なパラメータは以下の通りです。PFCP(Packet Forwarding Control Protocol)とは、5GCでCU分離のために導入されたプロトコルです。

  • APN
  • TAC (Tracking Area Code)
  • e_CellID

なお、TACとe_CellIDはRANの設定項目です。話を簡単にするために、今回はAPNのみ使用しています。Open5GSでSGW-Uを選択するロジックについては、こちらを参照して下さい。

  • open5gs/install/etc/open5gs/mme.yaml
--- mme.yaml.orig       2023-07-23 08:08:55.799628539 +0900
+++ mme.yaml    2023-07-23 08:17:08.117304509 +0900
@@ -321,7 +321,7 @@
 mme:
     freeDiameter: /root/open5gs/install/etc/freeDiameter/mme.conf
     s1ap:
-      - addr: 127.0.0.2
+      - addr: 192.168.0.111
     gtpc:
       - addr: 127.0.0.2
     metrics:
@@ -329,14 +329,14 @@
         port: 9090
     gummei:
       plmn_id:
-        mcc: 999
-        mnc: 70
+        mcc: 001
+        mnc: 01
       mme_gid: 2
       mme_code: 1
     tai:
       plmn_id:
-        mcc: 999
-        mnc: 70
+        mcc: 001
+        mnc: 01
       tac: 1
     security:
         integrity_order : [ EIA2, EIA1, EIA0 ]
  • open5gs/install/etc/open5gs/sgwc.yaml
--- sgwc.yaml.orig      2023-07-23 08:08:55.825629002 +0900
+++ sgwc.yaml   2023-07-23 13:09:32.935227621 +0900
@@ -81,7 +81,7 @@
     gtpc:
       - addr: 127.0.0.3
     pfcp:
-      - addr: 127.0.0.3
+      - addr: 192.168.0.111
 
 #
 #  <PFCP Client>>
@@ -130,7 +130,8 @@
 #
 sgwu:
     pfcp:
-      - addr: 127.0.0.6
+      - addr: 192.168.0.112
+        apn: internet
 
 #
 #  o Disable use of IPv4 addresses (only IPv6)
  • open5gs/install/etc/open5gs/smf.yaml
--- smf.yaml.orig       2023-07-23 08:08:55.880629982 +0900
+++ smf.yaml    2023-07-23 11:53:11.670325752 +0900
@@ -598,29 +598,21 @@
 #      maximum_integrity_protected_data_rate_downlink: bitrate64kbs|maximum-UE-rate
 #
 smf:
-    sbi:
-      - addr: 127.0.0.4
-        port: 7777
     pfcp:
-      - addr: 127.0.0.4
-      - addr: ::1
+      - addr: 192.168.14.111
     gtpc:
       - addr: 127.0.0.4
-      - addr: ::1
     gtpu:
-      - addr: 127.0.0.4
-      - addr: ::1
+      - addr: 192.168.14.111
     metrics:
       - addr: 127.0.0.4
         port: 9090
     subnet:
       - addr: 10.45.0.1/16
-      - addr: 2001:db8:cafe::1/48
+        dnn: internet
     dns:
       - 8.8.8.8
       - 8.8.4.4
-      - 2001:4860:4860::8888
-      - 2001:4860:4860::8844
     mtu: 1400
     ctf:
       enabled: auto
@@ -690,10 +682,6 @@
 #          l_linger: 10
 #
 #
-scp:
-    sbi:
-      - addr: 127.0.1.10
-        port: 7777
 
 #
 #  <SBI Client>>
@@ -808,7 +796,8 @@
 #
 upf:
     pfcp:
-      - addr: 127.0.0.7
+      - addr: 192.168.14.151
+        dnn: internet
 
 #
 #  o Disable use of IPv4 addresses (only IPv6)

Open5GS EPC U-Planeの設定ファイルの変更点

  • open5gs/install/etc/open5gs/sgwu.yaml
--- sgwu.yaml.orig      2023-07-23 08:08:55.000000000 +0900
+++ sgwu.yaml   2023-07-23 13:12:16.964863233 +0900
@@ -114,9 +114,9 @@
 #
 sgwu:
     pfcp:
-      - addr: 127.0.0.6
+      - addr: 192.168.0.112
     gtpu:
-      - addr: 127.0.0.6
+      - addr: 192.168.13.112
 
 #
 #  <PFCP Client>>

VPP-UPFの設定ファイルの変更点

元の設定ファイルは、こちらを参照して下さい。

  • openair-upf/startup.conf
    元ファイルからの変更はありません。

  • openair-upf/init.conf
    元ファイルからの変更はありません。

ZMQ対応srsRAN 4G UE/RANの設定ファイルの変更点

RAN(eNodeB)の設定ファイルの変更点

  • srsRAN_4G/build/srsenb/enb.conf
--- enb.conf.example    2023-05-02 10:51:20.000000000 +0900
+++ enb.conf    2023-07-23 13:05:33.739544644 +0900
@@ -22,9 +22,9 @@
 enb_id = 0x19B
 mcc = 001
 mnc = 01
-mme_addr = 127.0.1.100
-gtp_bind_addr = 127.0.1.1
-s1c_bind_addr = 127.0.1.1
+mme_addr = 192.168.0.111
+gtp_bind_addr = 192.168.13.121
+s1c_bind_addr = 192.168.0.121
 s1c_bind_port = 0
 n_prb = 50
 #tm = 4
@@ -80,8 +80,8 @@
 #time_adv_nsamples = auto
 
 # Example for ZMQ-based operation with TCP transport for I/Q samples
-#device_name = zmq
-#device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6
+device_name = zmq
+device_args = fail_on_disconnect=true,tx_port=tcp://192.168.0.121:2000,rx_port=tcp://192.168.0.122:2001,id=enb,base_srate=23.04e6
 
 #####################################################################
 # Packet capture configuration
  • srsRAN_4G/build/srsenb/rr.conf
--- rr.conf.example     2023-05-02 10:51:20.000000000 +0900
+++ rr.conf     2023-05-02 11:52:54.000000000 +0900
@@ -55,7 +55,7 @@
   {
     // rf_port = 0;
     cell_id = 0x01;
-    tac = 0x0007;
+    tac = 0x0001;
     pci = 1;
     // root_seq_idx = 204;
     dl_earfcn = 3350;

UE(IMSI-001010000000100)の設定ファイルの変更点

  • srsRAN_4G/build/srsue/ue.conf
--- ue.conf.example     2023-05-02 10:51:20.000000000 +0900
+++ ue.conf     2023-05-02 12:01:28.000000000 +0900
@@ -42,8 +42,8 @@
 #continuous_tx     = auto
 
 # Example for ZMQ-based operation with TCP transport for I/Q samples
-#device_name = zmq
-#device_args = tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6
+device_name = zmq
+device_args = tx_port=tcp://192.168.0.122:2001,rx_port=tcp://192.168.0.121:2000,id=ue,base_srate=23.04e6
 
 #####################################################################
 # EUTRA RAT configuration
@@ -139,9 +139,9 @@
 [usim]
 mode = soft
 algo = milenage
-opc  = 63BFA50EE6523365FF14C1F45F88737D
-k    = 00112233445566778899aabbccddeeff
-imsi = 001010123456780
+opc  = E8ED289DEBA952E4283B54E88E6183CA
+k    = 465B5CE8B199B49FAA5F0A2EE238A6BC
+imsi = 001010000000100
 imei = 353490069873319
 #reader =
 #pin  = 1234
@@ -180,8 +180,8 @@
 #                      Supported: 0 - NULL, 1 - Snow3G, 2 - AES, 3 - ZUC
 #####################################################################
 [nas]
-#apn = internetinternet
-#apn_protocol = ipv4
+apn = internet
+apn_protocol = ipv4
 #user = srsuser
 #pass = srspass
 #force_imsi_attach = false

Open5GS EPC、VPP-UPFとZMQ対応srsRAN 4G UE/RANのネットワーク設定

VPP-UPFとData Network Gatewayのネットワーク設定

こちらこちらを参照して下さい。

Open5GS、VPP-UPFとZMQ対応srsRAN 4G UE/RANのビルド

Open5GS、VPP-UPFとZMQ対応srsRAN 4G UE/RANのビルド方法は以下を参照して下さい。

Open5GS EPC C-PlaneマシンにMongoDBをインストールして下さい。Open5GS EPC U-PlaneマシンにはMongoDBをインストールする必要はありません。なお、MongoDBのデータベースを簡単に確認するには、MongoDB Compassが便利です。ZMQ対応srsRAN 4Gのビルドについては、こちらも参考にして下さい。

Open5GS EPC、VPP-UPFとZMQ対応srsRAN 4G UE/RANを実行

最初にVPP-UPFを起動し、次にOpen5GS EPC U-Plane(SGW-U)とC-Plane、ZMQ対応srsRAN 4G RANとUEを起動します。

VPP-UPFを実行

こちらを参考にして下さい。

Open5GS EPC U-Planeを実行

次に、Open5GS EPC U-Planeを起動します。

./install/bin/open5gs-sgwud &

Open5GS EPC C-Planeを実行

次に、Open5GS EPC C-Planeを起動します。

./install/bin/open5gs-mmed &
./install/bin/open5gs-sgwcd &
./install/bin/open5gs-smfd &
./install/bin/open5gs-hssd &
./install/bin/open5gs-pcrfd &

VPP-UPFとOpen5GS SMF(PGW-C)のPFCP associationのステータスは次のように表示されます。

vpp# show upf association 
Node: 192.168.14.111
  Recovery Time Stamp: 2023/07/23 19:16:30:000
  Sessions: 0
vpp#

ZMQ対応srsRAN 4G RAN(eNodeB)を起動

ZMQ対応srsRAN 4G RAN(eNodeB)を起動し、Open5GS EPCに接続します。

# cd srsRAN_4G/build/srsenb
# ./src/srsenb enb.conf
---  Software Radio Systems LTE eNodeB  ---

Reading configuration file enb.conf...

Built in Release mode using commit fa56836b1 on branch master.

Opening 1 channels in RF device=zmq with args=fail_on_disconnect=true,tx_port=tcp://192.168.0.121:2000,rx_port=tcp://192.168.0.122:2001,id=enb,base_srate=23.04e6
Supported RF device list: zmq file
CHx base_srate=23.04e6
CHx id=enb
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
CH0 rx_port=tcp://192.168.0.122:2001
CH0 tx_port=tcp://192.168.0.121:2000
CH0 fail_on_disconnect=true
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Setting frequency: DL=2680.0 Mhz, UL=2560.0 MHz for cc_idx=0 nof_prb=50

==== eNodeB started ===
Type <t> to view trace

Open5GS C-Planeのログは以下の通りです。

07/23 19:16:35.106: [mme] INFO: eNB-S1 accepted[192.168.0.121]:60925 in s1_path module (../src/mme/s1ap-sctp.c:114)
07/23 19:16:35.106: [mme] INFO: eNB-S1 accepted[192.168.0.121] in master_sm module (../src/mme/mme-sm.c:108)
07/23 19:16:35.106: [mme] INFO: [Added] Number of eNBs is now 1 (../src/mme/mme-context.c:2549)
07/23 19:16:35.106: [mme] INFO: eNB-S1[192.168.0.121] max_num_of_ostreams : 30 (../src/mme/mme-sm.c:150)

ZMQ対応srsRAN 4G UEを起動

ZMQ対応srsRAN 4G UEを起動し、eNodeB、Open5GS EPCに接続します。

# cd srsRAN_4G/build/srsue
# ./src/srsue ue.conf
Reading configuration file ue.conf...

Built in Release mode using commit fa56836b1 on branch master.

Opening 1 channels in RF device=zmq with args=tx_port=tcp://192.168.0.122:2001,rx_port=tcp://192.168.0.121:2000,id=ue,base_srate=23.04e6
Supported RF device list: zmq file
CHx base_srate=23.04e6
CHx id=ue
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
CH0 rx_port=tcp://192.168.0.121:2000
CH0 tx_port=tcp://192.168.0.122:2001
Waiting PHY to initialize ... done!
Attaching UE...
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
.
Found Cell:  Mode=FDD, PCI=1, PRB=50, Ports=1, CP=Normal, CFO=-0.2 KHz
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Found PLMN:  Id=00101, TAC=1
Random Access Transmission: seq=3, tti=181, ra-rnti=0x2
RRC Connected
Random Access Complete.     c-rnti=0x46, ta=0
Network attach successful. IP: 10.45.0.2
 nTp) 23/7/2023 10:20:23 TZ:99

Open5GS C-Planeのログは以下の通りです。

07/23 19:20:22.614: [mme] INFO: InitialUEMessage (../src/mme/s1ap-handler.c:232)
07/23 19:20:22.614: [mme] INFO: [Added] Number of eNB-UEs is now 1 (../src/mme/mme-context.c:4390)
07/23 19:20:22.614: [mme] INFO: Unknown UE by S_TMSI[G:2,C:1,M_TMSI:0xc000013a] (../src/mme/s1ap-handler.c:301)
07/23 19:20:22.614: [mme] INFO:     ENB_UE_S1AP_ID[1] MME_UE_S1AP_ID[1] TAC[1] CellID[0x19b01] (../src/mme/s1ap-handler.c:387)
07/23 19:20:22.614: [mme] INFO: Unknown UE by GUTI[G:2,C:1,M_TMSI:0xc000013a] (../src/mme/mme-context.c:3272)
07/23 19:20:22.614: [mme] INFO: [Added] Number of MME-UEs is now 1 (../src/mme/mme-context.c:3081)
07/23 19:20:22.614: [emm] INFO: [] Attach request (../src/mme/emm-sm.c:364)
07/23 19:20:22.614: [emm] INFO:     GUTI[G:2,C:1,M_TMSI:0xc000013a] IMSI[Unknown IMSI] (../src/mme/emm-handler.c:238)
07/23 19:20:22.660: [emm] INFO: Identity response (../src/mme/emm-sm.c:334)
07/23 19:20:22.660: [emm] INFO:     IMSI[001010000000100] (../src/mme/emm-handler.c:401)
07/23 19:20:22.796: [mme] INFO: [Added] Number of MME-Sessions is now 1 (../src/mme/mme-context.c:4404)
07/23 19:20:22.841: [sgwc] INFO: [Added] Number of SGWC-UEs is now 1 (../src/sgwc/context.c:237)
07/23 19:20:22.841: [sgwc] INFO: [Added] Number of SGWC-Sessions is now 1 (../src/sgwc/context.c:879)
07/23 19:20:22.842: [sgwc] INFO: UE IMSI[001010000000100] APN[internet] (../src/sgwc/s11-handler.c:237)
07/23 19:20:22.842: [gtp] INFO: gtp_connect() [127.0.0.4]:2123 (../lib/gtp/path.c:60)
07/23 19:20:22.843: [smf] INFO: [Added] Number of SMF-UEs is now 1 (../src/smf/context.c:1010)
07/23 19:20:22.843: [smf] INFO: [Added] Number of SMF-Sessions is now 1 (../src/smf/context.c:3050)
07/23 19:20:22.843: [smf] INFO: UE IMSI[001010000000100] APN[internet] IPv4[10.45.0.2] IPv6[] (../src/smf/s5c-handler.c:255)
07/23 19:20:22.857: [gtp] INFO: gtp_connect() [192.168.13.151]:2152 (../lib/gtp/path.c:60)
07/23 19:20:22.858: [gtp] INFO: gtp_connect() [127.0.0.4]:2123 (../lib/gtp/path.c:60)
07/23 19:20:23.177: [emm] INFO: [001010000000100] Attach complete (../src/mme/emm-sm.c:1249)
07/23 19:20:23.177: [emm] INFO:     IMSI[001010000000100] (../src/mme/emm-handler.c:276)
07/23 19:20:23.177: [emm] INFO:     UTC [2023-07-23T10:20:23] Timezone[0]/DST[0] (../src/mme/emm-handler.c:282)
07/23 19:20:23.177: [emm] INFO:     LOCAL [2023-07-23T19:20:23] Timezone[32400]/DST[0] (../src/mme/emm-handler.c:286)

Open5GS U-Planeのログは以下の通りです。

07/23 19:20:22.786: [sgwu] INFO: UE F-SEID[UP:0x7dc CP:0x924] (../src/sgwu/context.c:169)
07/23 19:20:22.786: [sgwu] INFO: [Added] Number of SGWU-Sessions is now 1 (../src/sgwu/context.c:174)
07/23 19:20:22.802: [gtp] INFO: gtp_connect() [192.168.13.151]:2152 (../lib/gtp/path.c:60)
07/23 19:20:23.121: [gtp] INFO: gtp_connect() [192.168.13.121]:2152 (../lib/gtp/path.c:60)

VPP-UPFとOpen5GS SMF(PGW-C)のPFCP associationのステータスは次のように表示されます。

vpp# show upf session 
CP F-SEID: 0x00000000000007a9 (1961) @ 192.168.14.111
UP F-SEID: 0x00000000000007a9 (1961) @ 192.168.14.151
  PFCP Association: 0
  TEID assignment per choose ID
PDR: 1 @ 0x7f9cffb194e0
  Precedence: 255
  PDI:
    Fields: 0000000c
    Source Interface: Core
    Network Instance: internet
    UE IP address (destination):
      IPv4 address: 10.45.0.2
    SDF Filter [1]:
      permit out ip from any to assigned 
  Outer Header Removal: no
  FAR Id: 1
  URR Ids: [] @ 0x0
  QER Ids: [1] @ 0x7f9d36e511d0
PDR: 2 @ 0x7f9cffb19560
  Precedence: 255
  PDI:
    Fields: 0000000d
    Source Interface: Access
    Network Instance: internet
    Local F-TEID: 807256725 (0x301dc295)
            IPv4: 192.168.13.151
    UE IP address (source):
      IPv4 address: 10.45.0.2
    SDF Filter [1]:
      permit out ip from any to assigned 
  Outer Header Removal: GTP-U/UDP/IPv4
  FAR Id: 2
  URR Ids: [] @ 0x0
  QER Ids: [1] @ 0x7f9d36e512e0
PDR: 3 @ 0x7f9cffb195e0
  Precedence: 1000
  PDI:
    Fields: 00000001
    Source Interface: CP-function
    Network Instance: internet
    Local F-TEID: 168178416 (0x0a0632f0)
            IPv4: 192.168.13.151
  Outer Header Removal: GTP-U/UDP/IPv4
  FAR Id: 1
  URR Ids: [] @ 0x0
  QER Ids: [] @ 0x0
PDR: 4 @ 0x7f9cffb19660
  Precedence: 1
  PDI:
    Fields: 00000009
    Source Interface: Access
    Network Instance: internet
    Local F-TEID: 807256725 (0x301dc295)
            IPv4: 192.168.13.151
    SDF Filter [1]:
      permit out 58 from ff02::2 to assigned 
  Outer Header Removal: GTP-U/UDP/IPv4
  FAR Id: 3
  URR Ids: [] @ 0x0
  QER Ids: [] @ 0x0
FAR: 1
  Apply Action: 00000002 == [FORWARD]
  Forward:
    Network Instance: internet
    Destination Interface: 0
    Outer Header Creation: [GTP-U/UDP/IPv4],TEID:0000304b,IP:192.168.13.112
FAR: 2
  Apply Action: 00000002 == [FORWARD]
  Forward:
    Network Instance: internet
    Destination Interface: 1
FAR: 3
  Apply Action: 00000002 == [FORWARD]
  Forward:
    Network Instance: internet
    Destination Interface: 3
    Outer Header Creation: [GTP-U/UDP/IPv4],TEID:00000001,IP:192.168.14.111
vpp# 

VM4(UE)でのip addr showは以下の通りです。TUNnelインターフェースtun_srsueは次のように作成され、IPアドレス10.45.0.2がUEに割り当てられたことが分かります。

5: tun_srsue: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet 10.45.0.2/24 scope global tun_srsue
       valid_lft forever preferred_lft forever

google.comにpingする

UEのTUNインターフェースを指定して、pingしてみます。

DN=10.45.0.0/16を経由する場合

VM-DNでtcpdumpを実行し、パケットがSGiインターフェースenp0s9を通過することを確認します。

  • VM4(UE)でping google.com
# ping google.com -I tun_srsue -n
PING google.com (142.250.196.110) from 10.45.0.2 tun_srsue: 56(84) bytes of data.
64 bytes from 142.250.196.110: icmp_seq=2 ttl=59 time=88.2 ms
64 bytes from 142.250.196.110: icmp_seq=3 ttl=59 time=85.3 ms
64 bytes from 142.250.196.110: icmp_seq=4 ttl=59 time=85.1 ms
  • VM-DNでtcpdumpを実行
# tcpdump -i enp0s9 -n
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp0s9, link-type EN10MB (Ethernet), snapshot length 262144 bytes
19:28:14.812982 IP 10.45.0.2 > 142.250.196.110: ICMP echo request, id 3, seq 2, length 64
19:28:14.831609 IP 142.250.196.110 > 10.45.0.2: ICMP echo reply, id 3, seq 2, length 64
19:28:15.814891 IP 10.45.0.2 > 142.250.196.110: ICMP echo request, id 3, seq 3, length 64
19:28:15.831626 IP 142.250.196.110 > 10.45.0.2: ICMP echo reply, id 3, seq 3, length 64
19:28:16.813576 IP 10.45.0.2 > 142.250.196.110: ICMP echo request, id 3, seq 4, length 64
19:28:16.830764 IP 142.250.196.110 > 10.45.0.2: ICMP echo reply, id 3, seq 4, length 64

以上で、DPDK対応VPP-UPFのPDNに接続し、PDNに任意のパケットを流せるようになり、プライベートLTEを想定したEPCのシミュレーション携帯網として、MECを試す環境を構築できました。

最後に

DPDK対応VPP-UPFは、U-Planeのデータネットワークを高速化する技術と期待しています。本記事では、Virtualbox VM上の設定例を書いてみましたが、高性能な物理NICを搭載したサーバを設定する際のご参考になれれば幸いです。

最後に、元記事はGithubに書いたものです。

主な変更履歴

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?