The Controller (Evolved Packet Core/EPC)
What is Open5GS and why it is needed?
From GitHub:
Open5GS is a C-language Open Source implementation for 5G Core and EPC, i.e. the core network of LTE/NR network
Components
From Page 18 of lte-background presentation (see High-Level Resources)
Mesh Implementation
The Open5GS setup used by NYC Mesh is bootstrapped using software from the University of Washington Information and Communication Technology for Development (ICTD) Lab, called CoLTE, which is used and recommended by the Seattle Community Network (SCN).
What is CoLTE?
From GitHub:
CoLTE is the Community LTE Project. It is designed to be an all-in-one turnkey solution that sets up a small-scale locally-run cellular network.
Deployment
- Open5GS lives on a virtual machine running on Jon at SN3
- Access: lte.mesh (10.70.90.170)
- colte-cn-4g was installed and configured according to the documentation
- Note: colte-prepaid was not installed as it is not required for LTE operation
- Information regarding SIM cards and credentials provided directly from SCN
- Unlike SCN, our deployment runs the EPC "off-prem"
- Instead of connecting the eNB (the LTE radio, e.g. BaiCells) directly to a computer/router with two ethernet ports, we connect the eNB directly to a hub with an existing router
- The stipulation of this is we do not care about the 192.168.150.0/24 or 192.168.151.0/24 IP addresses mentioned in the documentation, as the eNB will be configured to get DHCP from the local hub
- For routing purposes, we will use OSPF through the tunnel for clients that are able to use it (e.g. a MikroTik LTE device). The iptables rule can remain for other devices (e.g. a cellphone)
Integration
- Running the script produces an LTE tunnel that all of the LTE clients will use on a common subnet, the "ogstun" interface:
3: ogstun: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc fq_codel state UP group default qlen 500 link/none inet 10.45.0.1/16 brd 10.45.255.255 scope global ogstun valid_lft forever preferred_lft forever inet6 fe80::ae33:20bf:d586:8ed6/64 scope link stable-privacy valid_lft forever preferred_lft forever
- We will use BIRD to run OSPF on this tunnel:
protocol ospf { ... area 0 { networks { 10.70.90.0/24; 10.45.0.0/16; }; interface "enp6s18" { cost 10; type broadcast; }; interface "ogstun" { cost 100; type ptmp; }; }; };