Amarisoft

Amarisoft gNB + Open5GS on Cloud

 

The purpose of this tutorial is to show you how to setup an opensource 5G Core called Open5GS on a local Virtual Machine and how to use it as a whole or in combination with Amarisoft Core (mme).

The purpose of this tutorial is to show you how to setup a non-Amarisoft Core (Open5GS) on Google Cloud Virtual Machine and configure Callbox (gNB) connected to the 5G Core on Cloud.  The purpose of this tutorial is to show a sample case where a non-Amarisoft Core is installed on a cloud which is located far away from RAN. This kind of the setup would introduce some factors that does not come into play in regular setup where RAN and Core are installed on the same PC. Those factors are as follows : My motivation was to check if all of these factors (challenges) are properly handled and overcome.

NOTE :  The factors listed above may vary with the type of the cloud you use and another non-amarisoft component Open5GS. Even if you are using the same cloud  and Open5GS as this tutorial, you may come across different problems / challenges by the time you are trying this. This tutorial is just to show a proof of concept for application of Cloud and Open5GS and we will not follow up /nor provide any technical support for the non-Amarisoft components.

 

Table of Contents

 

 

Test Setup

 

Test setup for this tutorial is as shown below.  I assume that you would know on how to setup the Virtual Machine and run an instances of operating system (Ubuntu in this tutorial) and I would not explain on the procedure of those installation procedure.

NOTE : In this tutorial, I used Amarisoft UEsim as a Test UE instead of commercial UE. The main reason is becaue Open5GS does not support 3GPP Test USIM algorithm (XOR) and (as far as I have observed) Network Slicing configuration doesn't seem to be very flexible (so I need a test UE in which I can change Network Slicing Configuration as it can be accepted by open5gs).

 

TestSetup Cloud Open5gs 01

 

 

 

Key Configuration Parameters

 

Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.

 

 

 

Configuration

 

In this section, I will show the configurations for various components in the test setup that will be commonly used for every test cases in this tutorial.  The configurations that is specific to each test case will be described in the configuration section under each test case.

 

 

Cloud

 

First thing you need to make it sure is to configure all the necessary firwall setting to allow the signaling traffic to go through between the callbox at home/office and core network on Cloud.

Following is all the firewall setting on the my cloud setup.  For this tutorial, you should add at least three items underlined in red as shown below in addition to the default firewall setting.

Cloud Open5gs Configuration Cloud 01

 

Cloud Open5gs Configuration Cloud 02

 

Some OS related information that I used in this tutorial is as shown below. Just for Amarisoft MME, you may use various other Linux distribution, but I am using the specific Linux distribution as shown below in order to use it not only for Amarisoft MME but also for the opensource core network called open5gs (As of Jun 2022, it seems open5gs works only in Ubuntu Server 20.04. I have tried with Ubuntu Server 22.04 but installation didn't go through. Ubuntu Desktop didn't work either for Open5GS)

Cloud mme Configuration Cloud 03

 

 

Open5GS

 

I assume that you know how to install open5gs and would not explain about the detailed installation procedure. If you are not familiar with open5gs installation procedure, refer to the QuickStart of Open5gs official site or a note in sharetechnote.

Once you successfully installed the open5gs on the virtual machine, you would get the configuration as shown below.

MME Open5GS Configuration Open5GS 01

The NIC and IP configuration after the installation of open5gs on the virtual machine is as shown below.

Cloud Open5GS Configuration 02

Following is the directory (/etc/open5gs) where the configuration files of open5gs are located.

MME Open5GS Configuration Open5GS 03

Following is the directory (/var/log/open5gs) where the log files of open5gs are stored.

MME Open5GS Configuration Open5GS 04

 

 

Open5GS - User DataBase

 

First make it sure that open5gs is running as shown below. (If web-ui is properly installed but not running, you may run it with the command : sudo systemctl restart open5gs-webui.service).

MME Open5GS Configuration Open5GS UserDB 01

Then with the web browser, you can add a subscriber information to open5gs User Database as below. (If you are not familiar with WebUI setup, refer to this note from sharetechnote).

NOTE : Since you cannot launch GUI directly on Cloud, you would need to connect GUI based Remote Desktop to the Virtual Machine on GUI and run the WebUI on the remote desktop or you would need to get access to the open5gs WebUI from a remote PC.  All my attempt to connect GUI based remote desktop to the Virtual Machine on Cloud failed, so I need to get access to open5gs WebUI from remote PC which requires some configuration change as shown in this note from sharetechnote.

Cloud Open5GS Configuration Open5GS UserDB 02

Cloud Open5GS Configuration Open5GS UserDB 03

Cloud Open5GS Configuration Open5GS UserDB 04

Cloud Open5GS Configuration Open5GS UserDB 05

Cloud Open5GS Configuration Open5GS UserDB 06

If you want to change the information for an existing UE, you can modify it with [Edit] menu as shown below.

Cloud Open5GS Configuration Open5GS UserDB 07

Cloud Open5GS Configuration Open5GS UserDB 08

 

 

 

Callbox

 

The detailed callbox configuration would very for each test case, so the detailed configuration will be described under each test case, but following network configuration would stay same for all the test case in my setup.

(NOTE : The IP address of the NIC of the callbox would be different in your test setup. You should change the IP addresses in each of the configurations for each test according to the IP of your own test setup)

Cloud mme Configuration Callbox 01

 

 

UEsim

 

I will be using the same UE sim configuration for all the test cases in this tutorial.

MME Open5GS Configuration UEsim 01

Following is the UE information configured in ue-nr-sa-open5gs.cfg which is copied and modified from ue-nr.cfg.  I  configured USIM information of open5gs UE DB to match with this configuration and I added apn, network slicing information to match with the default configuration of open5gs default network slice information.

MME Open5GS Configuration UEsim 02

 

 

 

Test 1 : Amari gNB + Open5GS

 

In this test, I will show you a case where Amarisoft callbox is used as 5G/NR RAN only and Open5GS as a whole core network (i.e, AMF + AUSF + UDM + SMF + UPF and everything else).

 

 

Configuration

 

Open5gs

 

In this test, only three configuration files of open5gs has been modified from the default as shown below. All other configuration remain as default.

Cloud Open5GS Test 1 Configuration Open5gs 01

Cloud Open5GS Test 1 Configuration Open5gs 06

Cloud Open5GS Test 1 Configuration Open5gs 03

Cloud Open5GS Test 1 Configuration Open5gs 04

Cloud Open5GS Test 1 Configuration Open5gs 05

 

Once you change anything for a network component, you have to restart the components which is associated with the configuration file as below.

$ sudo systemctl restart open5gs-amfd

$ sudo systemctl restart open5gs-ausfd

$ sudo systemctl restart open5gs-upfd

$ sudo systemctl restart open5gs-udmd

 

 

Callbox

 

In this test, gnb-sa-open5gs-cloud.cfg is used as gNB configuration and it is copied and modified from gnb-sa.cfg.

Cloud Open5GS Test 1 Configuration Callbox 01

For mme, no special configurations are used. Everything is used as default configuration. ( NOTE : Actually it doesn't really matter which mme cfg file you specifies in this tutorial because Amari MME is not used at all in this tutorial.).

MME Open5GS Test 1 Configuration Callbox 02

The configuration in gnb-sa-open5gs-cloud.cfg are set as follows (NOTE : In this case, Network Address Translation happens between aaa.bbb.ccc.ddd and 192.168.100.17.  This tranlation is done by Linux, not by Amari MME)

Cloud Open5GS Test 1 Configuration Callbox 03

 

 

Perform the Test

 

First restart lte service on callbox and check basic configuration of gNB as shown below. Actually cell configuration is not so important for this test. Configure the cell in any way you like.

MME Open5GS Test 1 Run 01

Check on the core network to which the gNB is connected. You should see the core network on the virtual machine connected as shown below.

Cloud Open5GS Test 1 Run 02

Now restart lte service on UE sim and power on the UE.

MME Open5GS Test 1 Run 03

If the connection is successfully completed, you should see UE is registered and assigned with IP as shown below.

MME Open5GS Test 1 Run 04

You can confirm on the UE connection with 't' command  and 'ue' command in callbox as shown below

MME Open5GS Test 1 Run 05

MME Open5GS Test 1 Run 06

Try ping from Cloud(open5gs) to UE as shown below.

Cloud Open5GS Test 1 Run 07

 

 

Log Analysis

 

Sample Log

As soon as you start the lte service on the callbox and if the gNB is successfully connected to the mme on Cloud, you should see the NGAP connection as shown below (You should see the NGAP is connected to the external IP of the virtual machine on the Cloud).

Cloud open5gs Test 1 Log 01

Cloud open5gs Test 1 Log 02

Cloud open5gs Test 1 Log 03

Cloud open5gs Test 1 Log 04