Magma is an open-source software platform that gives network operators a mobile core network solution. Magma has three major components:
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).
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.
At least two ethernet interfaces (SGi and S1)
5.4
:warning: Some clouds like AWS use newer kernel versions by default. If you want to downgrade your kernel, please refer to the following guide.
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.
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
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
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.
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.
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>