Magma is an open-source software platform that gives network operators a mobile core network solution. Magma has three major components:
- Access Gateway
- Orchestrator
- 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.
⚠️ Installing this charm will affect the target computer's networking configuration. Make sure it is installed on designated hardware (personal computers are strongly discouraged).
- Processor: x86-64 dual-core processor (around 2GHz clock speed or faster)
- Memory: 4GB RAM
- Storage: 32GB or greater SSD
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)
- SGi for internet connectivity
- S1 for enodeB connectivity
- Ubuntu 20.04 LTS (Ubuntu installation guide)
- Linux Kernel version
5.4
⚠️ 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:
⚠️ 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 edgeFor 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 edgeStart 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:orchestratorThen you can configure the AGW to connect to the orchestrator:
juju relate magma-access-gateway-operator [[<controller>:]<user>/]<model-name>.orc8r-nginxFetch AGW's Hardware ID and Challenge Key:
juju run-action magma-access-gateway-operator/<unit number> get-access-gateway-secrets --waitNavigate 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 --waitSuccessful AGW deployment will be indicated by the Magma AGW post-installation checks finished successfully. message.
⚠️ 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>