A. Run the Core Network

Option 1. Run network function services individually. For example, to run the AMF:

cd ~/free5gc

Note: The N3IWF needs specific configuration, which is detailed in section B.

Option 2. Run whole core network

cd ~/free5gc

B. Run the N3IWF (Individually)

To run an instance of the N3IWF, make sure your system is equipped with three network interfaces: the first connects to the AMF, the second connects to the UPF, and the third is for IKE daemon.

Configure each interface with a suitable IP address.

Create an interface for IPSec traffic:

# replace <...> to suitable value
sudo ip link add ipsec0 type vti local <IKEBindAddress> remote key <IPSecInterfaceMark>

Assign an address to this interface, then bring it up:

# replace <...> to suitable value
sudo ip address add <IPSecInterfaceAddress/CIDRPrefix> dev ipsec0
sudo ip link set dev ipsec0 up

Run the N3IWF (root privilege is required):

cd ~/free5gc/
sudo ./bin/n3iwf

C. Run all-in-one with external RAN

Refer to this sample config if you wish to connect an external RAN with a complete free5GC core network.

D. Deploy within containers

free5gc-compose provides a sample for the deployment of elements within containers.