Amarisoft

Amarisoft MME on Google Cloud

 

The purpose of this tutorial is to show you how to setup mme on Google Cloud Virtual Machine and configure Callbox (gNB) connected to the mme (5G Core) on Cloud.  The purpose of this tutorial is to show a sample case where 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. Even if you are using the same cloud 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 we will not follow up /nor provide any technical support for cloud side issues.

 

Table of Contents

 

NOTE :  Amarisoft Product installed on Cloud and any virtual machine does not work with fixed license.  It works only with the license server.

 

Test Setup

Test setup for this tutorial is as shown below.  I assume that you would know on how to setup an account and virtual machine on Google Cloud and how to install mme on a Linux PC.

TestSetup Cloud mme 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

The difficult part of the configuration is that the core (MME) and gNB are located out side of the each other's network. On top of it, the virtual machine on cloud and gNB(callbox) is connected to their own local network (i.e, not the global IP). So you need to figure out various things to get those local IPs to talk to each other.

 

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.

NOTE : This tutorial was first written on 2023-02-07. The detailed procedure may have changed by the time when you go through this tutorial if Google changed their user interface. You can just the general concept of how it works from this example and figure out the details on your own if the procedure shown here does not work.

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

Cloud mme Configuration Cloud 01

 

Cloud mme 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

Install mme only as shown below. (NOTE : monitor and mbms are not required)

Cloud mme Configuration Cloud 07

If you installed Amarisoft MME successfully on the cloud and the license is setup properly, you would see the network configurations as shown below

Cloud mme Configuration Cloud 04

Cloud mme Configuration Cloud 05

Routing table after the installation of Amarisoft MME would be as follows.

Cloud mme Configuration Cloud 06

I used mme-ims-cloud.cfg which is copied and modified from mme-ims.cfg

Cloud mme Configuration Cloud 08

Following is the configurations in mme-ims-cloud.cfg . I changed gtp_addr only and keep everything as default.

Cloud mme Configuration Cloud 09

 

Callbox

The network configuration of the callbox should be as follows

Cloud mme Configuration Callbox 01

I used the gnb-sa-mme-cloud.cfg which is copied and modified from gnb-sa.cfg

Cloud mme Configuration Callbox 02

The configuration in  gnb-sa-mme-cloud.cfg is as follows.

Cloud mme Configuration Callbox 03

Cloud mme Configuration Callbox 04

 

Run

Since gNB and mme is located in different places, you cannot run both of them using a single lte service. You need to launch mme and gNB/eNB separtely on each system(i.e, Cloud PC and Callbox PC). I would suggest you to run the mme first and then run the service on callbox since MME should be ready before gNB/eNB launches.

 

mme on Cloud

Make it sure that mme is running as shown below. If you don't see it running, run it using the command 'service lte restart'.

Cloud mme Run Cloud 01

Run the screen and confirm that MME is running without any error.

Cloud mme Run Cloud 02

 

Callbox

Run lte service on callbox and go to [ENB] screen as follows

Cloud mme Run Callbox 01

Check the cell configuration and see if it is configured as you want.  For this tutorial, the cell configuration is not so important as long as it works with your UE since the main purpose of this tutorial is for testing core network connectivity.

Cloud mme Run Callbox 02

Turn on UE and check if it is get connected as shown below.

Cloud mme Run Callbox 03

 

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 mme Log 01

Once the initial registration of the UE is complete, you should see that all the NGAP signaling is done with the external IP of the virtual machine on Cloud.

Cloud mme Log 02

Cloud mme Log 03

 

Tips

The test setup described above would work with all the signaling messages without any problem, but user traffic would not go through due to Network Address Translation on both the network on Cloud and the network where Callbox is located.  Luckily Amarisoft gNB and Core network provides the configuration to work around this issue as shown below.

 

Setting up for User Traffic

The key point for this configuration is to use gtp_ext_addr parameter to specify (external IP, Public IP). The external (public) IP address for Google Cloud is displayed in virtual machine information. The public IP of your own network (aaa.bbb.ccc.ddd) can be obtained by searching 'my ip address' in Google Search.

Cloud mme Tips UserTraffic 01

 

Sample Log

Following is the sample log where Amari UE sim is used as DUT and ping from UEsim to Core network on cloud.

You see the gtp_ext_addr value of the configuration file(mme.cfg on Cloud) is set as transportLayerAddress of PDU session resource setup request NGAP message. If the gtp_ext_addr is not set in the configuration file, gtp_addr is used as transportLayerAddress. The gtp_ext_addr should be the external IP (public IP) to which your cloud PC is associated.

Cloud mme Tips UserTraffic 02

In the same way, the gtp_ext_addr in enb.cfg is set as transportLayerAddress of PDU session resource setup response NGAP message. If you don't specify gtp_ext_addr in the configuration file, gtp_addr will be set as transportLayerAddress.  gtp_ext_addr should be the public IP address that your callbox is connected to. (NOTE : you can find this public address for your private internet network(e.g, WiFi network) by visting a site like https://whatismyipaddress.com/ )

Cloud mme Tips UserTraffic 03

Try a some IP traffic (e.g, ping) between mme and gNB/eNB, make it sure that the traffic goes through in both directions via GTPU.

Cloud mme Tips UserTraffic 04

 

 

Sample Log

Following is the sample log where a Commercial UE is used as DUT and user traffic is internet traffic (e.g, Browsing, YouTube.)

Cloud mme Tips UserTraffic 05

Cloud mme Tips UserTraffic 06