canonical / magma-access-gateway-operator

Magma's 4G and 5G core, charmed!
Apache License 2.0
3 stars 2 forks source link

access gateway badge


Magma Access Gateway Operator

Get it from Charmhub

Don't have Juju installed?

Description

Magma is an open-source software platform that gives network operators a mobile core network solution. Magma has three major components:

  1. Access Gateway
  2. Orchestrator
  3. Federation Gateway

The Access Gateway (AGW) provides network services and policy enforcement. In an LTE network, the AGW implements an evolved packet core (EPC), and a combination of an AAA and a PGW. It works with existing, unmodified commercial radio hardware.
This charm uses version 1.8.0 of Magma Access Gateway.
For more information on Magma please visit the official website.

:warning: Installing this charm will affect the target computer's networking configuration. Make sure it is installed on designated hardware (personal computers are strongly discouraged).

System requirements

Hardware (baremetal strongly recommended)

NOTE: For small networks (i.e. 10 eNBs, 10 active subscribers), Magma can produce around 1 GB of logs per week. Most of these logs will go to /var/log/journal. To avoid problems with insufficient disk space, it is recommended to configure log rotation for systemd-journald. For more information please visit Ubuntu manuals.

Networking

At least two ethernet interfaces (SGi and S1)

Operating System

:warning: Some clouds like AWS use newer kernel versions by default. If you want to downgrade your kernel, please refer to the following guide.

Usage

Deploying the Magma Access Gateway requires a machine with two network interfaces, for the SGi interface (this interface will be used to route traffic to the Internet) and the S1 interface (this interface will be used to connect to the eNodeB).

Production deployment are highly recommended to be deployed on physical hardware.

1. Install

Using DHCP network configuration

For testing the deployment, a VM with two DHCP networks attached will do. Use this command to deploy it:

:warning: The interface names will need to be adjusted based on your specific machine.

juju deploy magma-access-gateway-operator --config sgi=enp0s1 --config s1=enp0s2 --channel edge

Using static network configuration

For static network configuration, the easiest method is to use a YAML configuration file:

---
magma-access-gateway-operator:
  sgi: enp0s1
  sgi-ipv4-address: 192.168.0.2/24
  sgi-ipv4-gateway: 192.168.0.1
  sgi-ipv6-address: fd7d:3797:378b:a502::2/64
  sgi-ipv6-gateway: fd7d:3797:378b:a502::1
  s1: enp0s2
  s1-ipv4-address: 192.168.1.2/24
  s1-ipv6-address: fd7d:3797:378b:a503::2/64
  dns: '["8.8.8.8", "208.67.222.222"]'

Deploy the Access Gateway with this command:

juju deploy magma-access-gateway-operator --config agw_config.yaml --channel edge

2. Register AGW with an Orchestrator

Start by using juju to relate the AGW to the orchestrator. The first step is to offer the orchestrator relation outside of the orchestrator model:

juju offer orc8r-nginx:orchestrator

Then you can configure the AGW to connect to the orchestrator:

juju relate magma-access-gateway-operator [[<controller>:]<user>/]<model-name>.orc8r-nginx

Fetch AGW's Hardware ID and Challenge Key:

juju run-action magma-access-gateway-operator/<unit number> get-access-gateway-secrets --wait

Navigate to "Equipment" on the NMS via the left navigation bar, hit "Add Gateway" on the upper right, and fill out the multi-step modal form. Use the secrets from above for the "Hardware UUID" and "Challenge Key" fields.

3. Verify the deployment

Run the following command:

juju run-action magma-access-gateway-operator/<unit number> post-install-checks --wait

Successful AGW deployment will be indicated by the Magma AGW post-installation checks finished successfully. message.

:warning: Success will only occur when attached with an Orchestrator.

Relations

lte-core: Connect AGW to an enodeB

It is possible to connect the AGW to an enodeB using the lte-core interface.

To relate AGW to SRS-ENB-UE-Operator

juju relate magma-access-gateway-operator <enodeb juju application name>