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.
- Large delay between RAN and Core. When I was testing this setup, RAN (Amarisoft gNB/eNB) was at my home and Core was installed on Cloud which is about 500 km away from my home. It will introduce much larger delay (both C-plane and U-plane) comparing to regular setup (i.e, RAN + Core in the same box)
- Network Address Translation. In this setup, the RAN PC was connected to internet over WiFi at my home which need to go through IP translation between the local IP at my home and global IP assigned to WiFi router. Also the IP on the cloud was configured to be translated between internal IP and External IP.
- Firewall Requirement on Cloud. The network setup on the cloud is not confired for this kind of application by default. So it need to be reconfigured to pass through all the protocols (e.g, SCTP) which are required for communication between RAN and Core.
Table of Contents
- Amarisoft gNB + Open5GS on Cloud
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.
Key Configuration Parameters
Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.
- gNB Configuration
- gtp_addr
- gtp_ext_addr (enb)
- UEsim Configuration
- sim_algo
- imsi
- opc
- amf
- sqn
- K
- apn
- attach_pdn_type
- default_pdu_session_snssai
- sst
- sd
- default_nssai
- sst
- sd
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.
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)
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.
The NIC and IP configuration after the installation of open5gs on the virtual machine is as shown below.
Following is the directory (/etc/open5gs) where the configuration files of open5gs are located.
Following is the directory (/var/log/open5gs) where the log files of open5gs are stored.
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).
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).
If you want to change the information for an existing UE, you can modify it with [Edit] menu as shown below.
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.
(
UEsim
I will be using the same UE sim configuration for all the test cases in this tutorial.
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.
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.
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.
For mme, no special configurations are used. Everything is used as default configuration. (
The configuration in gnb-sa-open5gs-cloud.cfg are set as follows (
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.
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.
Now restart lte service on UE sim and power on the UE.
If the connection is successfully completed, you should see UE is registered and assigned with IP as shown below.
You can confirm on the UE connection with 't' command and 'ue' command in callbox as shown below
Try ping from Cloud(open5gs) to UE as shown below.
Log Analysis
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).