Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Running a 5G System on Your Laptop

Avatar for stwn stwn
October 04, 2026

Running a 5G System on Your Laptop

Presented at openSUSE.Asia Summit 2026

Avatar for stwn

stwn

October 04, 2026

More Decks by stwn

Other Decks in Technology

Transcript

  1. Running a 5G System on Your Laptop Iwan stwn EE

    Unsoed Yogyakarta | October 4, 2026
  2. an✔Open Running a 5G System on Your Laptop Iwan stwn

    EE Unsoed Yogyakarta | October 4, 2026
  3. Iwan stwn • Full-time (Debian) GNU/Linux user • Lecturer and

    researcher at EE Unsoed • Helper at BlankOn Foundation Keywords: software freedom, softwarized networks, sustainable networks Email: stwn at unsoed.ac.id Social: @stwn on X and discuss.systems
  4. * VM: Virtual Machine; VN: Virtual Network VN RAN VM

    Core VM Virtualization using QEMU/KVM, managed with Vagrant and libvirt Your Laptop
  5. * VM: Virtual Machine; VN: Virtual Network VN RAN VM

    Core VM Virtualization using QEMU/KVM, managed with Vagrant and libvirt My Your Laptop
  6. (Some) Abbreviations • 5GC 5G Core — Core • 5GR*

    5G Radio Access Network — RAN • 5GU* 5G User Equipment — UE • 5G CP 5G Control Plane • 5G UP 5G User Plane • 5G SBA 5G Service-Based Architecture
  7. 5G Communications • The fifth-generation mobile/cellular communications (5G) • Three

    main use cases ☐ eMBB: enhanced mobile broadband ☐ uRLLC: ultra reliable and low latency communications ☐ mMTC: massive machine-type communications
  8. 5G System: Components • 5G Core (5GC) — Core •

    5G Radio Access Network (5GR*) — RAN • 5G User Equipment (5GU*) — UE
  9. 5G System: Deployment Options • Non-stand alone (NSA) — “hybrid”,

    e.g., 5G RAN w/ 4G Core • Stand alone (SA) — “full deployment”
  10. 5G System: CUPS • • Control-User Plane Separation (CUPS) is

    an extension of SDN concept in cellular networks, used 1st in 4G/LTE EPC* CUPS in 5GC (Core) is within 5G Service-Based Arch. (SBA) * SDN: Software-Defined Networking EPC: Evolved Packet Core
  11. 5G System: SBA • 5G SBA consists of network functions

    (NFs) in the forms of virtual/containerized network functions (5G VNFs/CNFs) • These VNFs/CNFs are placed in the 5GC planes • ☐ 5G Control Plane NFs (CPFs), e.g., AMF, SMF ☐ 5G User Plane NFs (UPFs), mainly UPF (single/multiple) Each NF provides service to other NFs* (microservices) * Using HTTP/2 protocol with RESTful APIs
  12. 5GC: Open5GS (Core) • GNU/Linux distro: openSUSE Leap 15.6, using

    Vagrant box • 5GC software: Open5GS, built from source ☐ Alternatives: free5GC, OpenAirInterface (OAI), SD-Core
  13. 5GR: UERANSIM (RAN+UE) • GNU/Linux distro: openSUSE Leap 15.6, using

    Vagrant box • (Simulated) RAN+UE: UERANSIM, built from source ☐ Alternatives: PacketRusher, free-ran-ue, srsRAN/OCUDU
  14. Experiment Story • At first: full installation of openSUSE Leap

    on VirtualBox • Later: change to Vagrant environment with openSUSE Leap box • Many hours spent, mostly on openSUSE and Vagrant experiments ☐ Operations in openSUSE (sysadmin): zypper, etc. ☐ Vagrant setup and configuration ☐ Preparing and building sources on openSUSE
  15. Environment Setup • Prerequisites: QEMU/KVM, Vagrant (upstream) +libvirt • Vagrant

    environment initialization $ vagrant init • Configuration: edit Vagrantfile ☐ Virtual machine (VM) for 5GC – “core” ☐ Virtual machine (VM) for 5GR -- “ran”
  16. Vagrantfile for 5GC VM (core) config.vm.define "core" do |core| core.vm.box

    = "opensuse/Leap-15.6.x86_64" core.vm.network "private_network", ip: "192.168.1.3" core.vm.hostname = "core" core.vm.provider "libvirt" do |virt| virt.cpus = "1" virt.memory = "2048" end
  17. Vagrantfile for 5GR VM (ran) config.vm.define "ran" do |ran| ran.vm.box

    = "opensuse/Leap-15.6.x86_64" ran.vm.network "private_network", ip: "192.168.1.5" ran.vm.hostname = "ran" ran.vm.provider "libvirt" do |virt| virt.cpus = "1" virt.memory = "1024" end
  18. Provisioning core ➀ • Install: basic packages with zypper •

    Install: MongoDB • Run: MongoDB • Add: mnhauke:open5gs OBS repo. for libmongoc • Install: “build essential” packages (-t pattern devel_basis) * Put these steps into a core provisioning script
  19. Provisioning core ② • Install: required tools and devel libraries

    using zypper • Get: Open5GS git repository • Build: Open5GS • Add: TUN interface, ogstun, with an IP address • Install: Open5GS * Put these steps into a core provisioning script
  20. Provisioning ran • Install: basic packages with zypper • Install:

    “build essential” packages (-t pattern devel_basis) • Install: required tools and devel libraries using zypper • Get: UERANSIM git repository • Build: UERANSIM
  21. VMs Boot Up and Access • • • Boot up

    core and ran VMs $ vagrant up Remote access the core VM $ vagrant ssh core Remote access the ran VM $ vagrant ssh ran
  22. Core Configuration • Use the “all-in-one” sample configuration $ vim

    open5gs/build/configs/sample.yaml • Configure AMF, SMF, and UPF
  23. NAT Configuration $ sudo sysctl -w net.ipv4.ip_forward=1 $ sudo sysctl

    net.ipv4.ip_forward $ sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! \ -o ogstun -j MASQUERADE
  24. gNB Configuration mcc: '001' mnc: '01' linkIp: 192.168.1.5 # radio

    link simulation ngapIp: 192.168.1.5 # N2 interface gtpIp: 192.168.1.5 # N3 interface amfConfigs: - address: 192.168.1.3 port: 38412
  25. Running gNB (ran) • Run nr-gnb binary with gNB configuration

    on ran VM $ cd UERANSIM $ build/nr-gnb -c config/open5gs-gnb.yaml
  26. Running UE (ran) • Run nr-ue binary with UE configuration

    on ran VM $ cd UERANSIM $ sudo build/nr-ue -c config/open5gs-ue.yaml
  27. Testing: Connectivity and Routing • • Connectivity from ran VM

    $ ping -I uesimtun0 opensuse.id Route tracing from ran VM $ traceroute -i uesimtun0 opensuse.id $ mtr -a 10.45.0.2 opensuse.id $ sudo trip -I uesimtun0 opensuse.id
  28. Closing Remarks • A 5G system consists of ➀ 5GC

    (Core) and ➁ 5GR (RAN) +UE. We can run these components on our laptop with free/open (real) 5GC and (simulated) 5GR: ➀ Open5GS and ➁ UERANSIM • Free/open source software gives us opportunities to learn and experiment with new technologies, such as 5G/6G/NextG  5G architecture, protocols, and mechanisms  5G edge-to-cloud management and orchestration
  29. Thank You Running an Open 5G System on Your Laptop

    Iwan stwn, EE Unsoed Email: stwn at unsoed.ac.id Social: @stwn on X and discuss.systems