本記事では、プライベート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
構築したシミュレーション環境は以下の通りです。
EPC、VPP-UPFとUE/RANに使用しているOSSは以下の通りです。
- EPC - Open5GS v2.6.4 (2023.07.22) - https://github.com/open5gs/open5gs
- VPP-UPF - OpenAir CN 5G for UPF v1.5.1 (2023.06.14) - https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-upf-vpp
- UE / RAN - srsRAN 4G (2023.07.22) - https://github.com/srsran/srsRAN_4G
各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 v2.6.4 (2023.07.22) - https://open5gs.org/open5gs/docs/guide/02-building-open5gs-from-sources/
- OpenAir CN 5G for UPF v1.5.1 (2023.09.05) - https://qiita.com/s5uishida/items/fc5f4e1c394c9f5dd181
- srsRAN 4G (2023.07.22) - https://docs.srsran.com/projects/4g/en/latest/
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 v2.6.4 (2023.07.22) - https://open5gs.org/open5gs/docs/guide/02-building-open5gs-from-sources/
- OpenAir CN 5G for UPF v1.5.1 (2023.09.05) - https://qiita.com/s5uishida/items/fc5f4e1c394c9f5dd181
- srsRAN 4G (2023.07.22) - https://docs.srsran.com/projects/4g/en/latest/
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] 初版。