← Back to list

Membangun Jaringan 4G LTE Sendiri: Eksperimen Hands-on dengan Open5GS, srsRAN, dan USRP B210

Belajar telekomunikasi di ruang kelas terasa cukup abstrak. Komponen Network Element LTE, prosedur handover, terkadang hanya menjadi…

Daffa Raihan Sugiharto · 2026-03-19 18:08 · 1 claps · 9.6 min read
#telecommunication #lte-4g-technology #4g
Open on Medium ↗
Wiki topics: ✍️ · Writing & Creative

Membangun Jaringan 4G LTE Sendiri: Eksperimen Hands-on dengan Open5GS, srsRAN, dan USRP B210

Thumbnail generated by Gemini AI

Thumbnail generated by Gemini AI

Belajar telekomunikasi di ruang kelas terasa cukup abstrak. Komponen Network Element LTE, prosedur handover, terkadang hanya menjadi tumpukan teori yang sulit dibayangkan wujud aslinya, terutama bagi saya pribadi. Alhamdulillah, November 2024 lalu ketika duduk di Semester 5, saya diberi kesempatan oleh Dosen saya untuk eksplorasi perangkat USRP B210 yang mana hal tersebut membuka jalan saya untuk memahami lebih dalam tumpukan teori tersebut.

Tulisan ini adalah dokumentasi dari eksperimen saya dalam membangun jaringan 4G LTE sendiri menggunakan perangkat USRP B210 + Laptop dengan OS Ubuntu yang terinstall open-source software Open5GS sebagai Core Network dan srsRAN sebagai Radio Access Network. Pada tulisan ini, PC Core Network (Open5GS) dan PC Radio Access Network (srsRAN) akan saya install di PC yang berbeda. Teman-teman bisa juga menginstall kedua software tersebut didalam satu PC yang sama.

Persiapan Perangkat (Prerequisites)

  1. Dua buah PC/Laptop dengan minimum spesifikasi dual-core i5
  2. OS Ubuntu 22.04 LTS (Jammy)
  3. USRP B210
  4. USB 3.0 type B Cable
  5. Antenna Monopole 2 Unit
  6. SIM Card Reader
  7. SIM Card Programable
  8. Software core network Open5gs
  9. Software radio srsRAN
  10. Software GRSIMWrite (di install di windows)
  11. User Equipment (UE) aka Smartphone

Instalasi Software Core Network Open5GS (PC Core Network)

Sebelum proses instalasi pastikan jaringan internet dalam kondisi baik untuk menghindari error pada package yang di unduh.

1.Install mongoDB : Digunakan sebagai database untuk PCRF/HSS

Import public key

sudo apt update
sudo apt install -y gnupg curl
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg

Buat file /etc/apt/sources.list.d/mongodb-org-6.0.list | Command di bawah ini hanya untuk Ubuntu 22.04

echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

Install MongoDB

sudo apt update
sudo apt install -y mongodb-org

Restart, Enable dan cek status mongoDB di Ubuntu 22.04

sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod

2.Install Open5GS

Install aplikasi pendukung

sudo apt update
sudo apt upgrade
sudo apt install -y software-properties-common

Tambahkan repository Open5gs dan install

sudo add-apt-repository ppa:open5gs/latest
sudo apt install -y open5gs

Restart dan Enable Open5GS

sudo systemctl restart open5gs-mmed
sudo systemctl restart open5gs-sgwcd
sudo systemctl restart open5gs-smfd
sudo systemctl restart open5gs-amfd
sudo systemctl restart open5gs-sgwud
sudo systemctl restart open5gs-upfd
sudo systemctl restart open5gs-hssd
sudo systemctl restart open5gs-pcrfd
sudo systemctl restart open5gs-nrfd
sudo systemctl restart open5gs-scpd
sudo systemctl restart open5gs-seppd
sudo systemctl restart open5gs-ausfd
sudo systemctl restart open5gs-udmd
sudo systemctl restart open5gs-pcfd
sudo systemctl restart open5gs-nssfd
sudo systemctl restart open5gs-bsfd
sudo systemctl restart open5gs-udrd
sudo systemctl enable open5gs-amfd
sudo systemctl enable open5gs-ausfd
sudo systemctl enable open5gs-bsfd
sudo systemctl enable open5gs-hssd
sudo systemctl enable open5gs-mmed
sudo systemctl enable open5gs-nrfd
sudo systemctl enable open5gs-nssfd
sudo systemctl enable open5gs-pcfd
sudo systemctl enable open5gs-pcrfd
sudo systemctl enable open5gs-scpd
sudo systemctl enable open5gs-sgwcd
sudo systemctl enable open5gs-sgwud
sudo systemctl enable open5gs-smfd
sudo systemctl enable open5gs-udmd
sudo systemctl enable open5gs-udrd
sudo systemctl enable open5gs-upfd

3.Menginstall WebUI Open5GS : Digunakan untuk mengedit data pelanggan dengan mudah

Install Node.js

sudo apt update
sudo apt install curl
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y gcc g++ make
sudo apt install -y nodejs

Install yarn

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt install -y yarn

Install WebUI Open5GS

curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash - 

Agar bisa di akses dari Remote PC. Edit open5gs-webui.service

sudo nano /etc/systemd/system/multi-user.target.wants/open5gs-webui.service

Pastikan open5gs-webui.service konfigurasinya seperti dibawah ini

[Unit]
Description=Open5GS WebUI
Wants=mongodb.service mongod.service

[Service]
Type=simple

WorkingDirectory=/usr/lib/node_modules/open5gs
Environment=NODE_ENV=production
Environment=HOSTNAME=0.0.0.0 
Environment=PORT=8080         
ExecStart=/usr/bin/node server/index.js
Restart=always
RestartSec=2

[Install]
WantedBy=multi-user.target

Restart Open5GS Web UI

systemctl daemon-reload
systemctl restart open5gs-webui
systemctl enable open5gs-webui
systemctl status open5gs-webui 

Webui Open5gs bisa diakses di http://0.0.0.0:8080 untuk local atau di http://ip-address:8080 untuk remote akses contoh : http://192.168.1.41:8080

Berikut adalah Username dan Password untuk WebUI Open5gs

Username : admin
Password : 1423

Tampilan Web UI Open5GS

Tampilan Web UI Open5GS

Instalasi Software Radio srsRAN (PC RAN)

1.Instalasi USRP Hardware Driver (UHD)

sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt update
sudo apt install libuhd-dev uhd-host
sudo /usr/lib/uhd/utils/uhd_images_downloader.py

2. Install software base station srsRAN dari sumber

Install library yang dibutuhkan

sudo apt-get install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev

Download dan build srsRAN

Pastikan pada PC sudah terinstall git, jika belum maka install terlebih dahulu

sudo apt install git

Pergi ke direktori /usr/local/src

git clone https://github.com/srsRAN/srsRAN.git
cd srsRAN
mkdir build 
cd build
cmake ../
make -j4
make test -j4

Install srsRAN

sudo make install
sudo ldconfig
srsran_install_configs.sh user

Konfigurasi SIM Card

  1. Unduh dan install software GRSIM Write di OS Windows. Software GRSIM Write bisa di unduh di laman : https://www.gialer.com/
  2. Hubungkan SIM Card Reader yang telah diisi oleh programmable SIM Card ke PC dengan OS Windows
  3. Buka software GRSIM Write dan pilih tombol Read Card
  4. Masukan parameter IMSI 15, KI, OPC dan beberapa parameter lainnya sesuai ketentuan yang berlaku. Pada contoh kali ini parameter yang di isi adalah sebagai berikut :
LTE/WCDMA Parameter
IMSI15 : 510331234567890
Subscriber Key (KI) : 465B5CE8B199B49FAA5F0A2EE238A6BA
Operator Key (OPC) : E8ED289DEBA952E4283B54E88E6183CB
PLMNwAct : 51033:4000;51033:8000;51033:0080
OPLMNwAct : 51033:4000;51033:8000
HPLMNwAct : 51033:4000;51033:8000;51033:0080
EHPLMN : 51033
FPLMN : 51089;51021;51001;51010
MSISDN : 6282222600041
SPN : STr Telkom B 22

Tampilan GRSIM Write

Tampilan GRSIM Write

  1. Jika semua parameter sudah dimasukkan tekan tombol Write Card untuk menulis parameter yang telah diisi ke dalam programmable SIM Card.

  2. SIM card siap digunakan.

Konfigurasi Core Network

  1. Buka terminal lalu edit isi mme.yaml di direktori “/etc/open5gs”
nano /etc/open5gs/mme.yaml

Atur konfigurasi kurang lebih seperti dibawah ini

mme:
  freeDiameter: /etc/freeDiameter/mme.conf
  s1ap:
 server:
   - address: 10.252.128.135
  gtpc:
 server:
   - address: 127.0.0.2
 client:
   sgwc:
     - address: 127.0.0.3
   smf:
     - address: 127.0.0.4
  metrics:
 server:
   - address: 127.0.0.2
     port: 9090
  gummei:
 - plmn_id:
     mcc: 510
     mnc: 33
   mme_gid: 2
   mme_code: 1
  tai:
 - plmn_id:
     mcc: 510
     mnc: 33
   tac: 1
  security:
 integrity_order : [ EIA2, EIA1, EIA0 ]
 ciphering_order : [ EEA0, EEA1, EEA2 ]
  network_name:
 full: STr-TelkomB-22
            short: Next
  mme_name: telkomb22-mme0
  • s1ap server address diisikan alamat IP dari PC Core Network, pada contoh kali ini IP PC merupakan 10.252.128.135.
  • Pada contoh kali ini PLMN id di isikan MCC 510 karena merupakan MCC untuk negara Indonesia dan MNC 33 dengan tac (tracking area code) adalah 1.

Catatan : Dalam realitanya nomor MNC ini harus dikoordinasikan ke lembaga pemerintah yang berwenang.

  • network_name merupakan nama untuk jaringannya seperti TELKOMSEL 4G, INDOSAT 4G, XL 4G. Pada contoh kali ini nama jaringan nya adalah STr-TelkomB-22 dengan nama mme nya adalah telkomb22-mme0.
  1. Setelah mengatur konfigurasi mme selanjutnya simpan konfigurasi lalu mengatur konfigurasi untuk sgwu pada direktori yang sama
nano /etc/open5gs/sgwu.yaml

Atur konfigurasi kurang lebih seperti dibawah ini :

logger:
  file:
 path: /var/log/open5gs/sgwu.log
#  level: info   # fatal|error|warn|info(default)|debug|trace

global:
  max:
 ue: 1024  # The number of UE can be increased depending on memory size.
# peer: 64

sgwu:
  pfcp:
 server:
   - address: 127.0.0.6
 client:
#   sgwc: # SGW-U PFCP Client try to associate SGW-C PFCP Server
#     - address: 127.0.0.3
  gtpu:
 server:
   - address: 10.252.128.135

Atur gtpu server address sama dengan s1ap server address.

  1. Simpan konfigurasi sgwu

  2. Restart mme dan sgwu dengan mengetikkan command pada terminal.

sudo systemctl restart open5gs-mmed
sudo systemctl restart open5gs-sgwud
  1. Untuk membaca log mme dapat mengetikkan command berikut :
tail -f /var/log/open5gs/mme.log

Jika berhasil tampilan log mme akan seperti ini :

root@tsxhsntsx:/etc/open5gs# tail -f /var/log/open5gs/mme.log
12/17 23:59:47.625: [gtp] INFO: gtp_connect() [127.0.0.3]:2123 (../lib/gtp/path.c:60)
12/17 23:59:47.625: [mme] INFO: s1ap_server() [10.252.128.135]:36412 (../src/mme/s1ap-sctp.c:62)
12/17 23:59:47.625: [sctp] INFO: MME initialize...done (../src/mme/app-init.c:33)
12/17 23:59:47.627: [diam] INFO: CONNECTED TO 'hss.localdomain' (SCTP,soc#17): (../lib/diameter/common/logger.c:108)
  1. Lakukan NAT Forwarding di PC Core Network agar UE bisa mengakses internet
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo systemctl stop ufw
sudo iptables -I FORWARD 1 -j ACCEPT

eth0 disesuaikan dengan interface yang digunakan PC untuk terhubung ke internet. Jika cara diatas tidak berhasil, coba tambahkan manual tun interface dan lakukan NAT Forwarding ulang

sudo ip tuntap add name ogstun mode tun
sudo ip addr add 10.45.0.0/16 dev ogstun
sudo ip addr add 2001:230:cafe::1/48 dev ogstun
sudo ip link set ogstun up

Langkah Data Entry SIM Card di Core Network

  1. Login ke Web UI Open5gs, alamat web bisa di akses menggunakan local atau melalui IP, pada contoh kali ini menggunakan localhost:8080. masukan username dan password Web UI Open5gs username : admin
username : admin
password : 1423
  1. Untuk menambahkan pelanggan klik tanda + berwarna merah muda di pojok kanan bawah, maka akan muncul tampilan seperti dibawah ini :

Menambahkan pelanggan

Menambahkan pelanggan

  1. Masukkan data-data penting yang diperlukan seperti IMSI, Subscriber Key, Operator Key, USIM Type pilih OPc. Parameter yang dimasukkan harus sesuai dengan konfigurasi pada SIM Card. Jika dirasa sudah sesuai maka langkah selanjutnya klik save.

Contoh parameter yang di masukkan :

IMSI : 510331234567890
Subscriber Key : 465B5CE8B199B49FAA5F0A2EE238A6BA
Operator Key : E8ED289DEBA952E4283B54E88E6183CB

Konfigurasi PC Radio Access Network

  1. Pergi ke direktori /usr/local/src/srsRAN/srsenb
cd  /usr/local/src/srsRAN/srsenb
  1. Saat pertama kali konfigurasi biasanya file yang diperlukan seperti enb.conf, rr.conf, sib.conf dan rb.conf belum ada, maka dari itu salin file yang dibutuhkan dari file enb.conf.example, rr.conf.example, sib.conf.example, rb.conf.example dengan cara :
cp enb.conf.example enb.conf && \
cp rr.conf.example rr.conf && \
cp sib.conf.example sib.conf && \
cp rb.conf.example rb.conf
  1. Setelah file disalin kemudian atur file enb.conf seperti dibawah ini menggunakan perintah :
nano enb.conf

Konfigurasi enb.conf :

[enb]
enb_id = 0x19B
mcc = 510
mnc = 33
mme_addr = 10.252.128.135
gtp_bind_addr = 10.250.118.129
s1c_bind_addr = 10.250.118.129
s1c_bind_port = 0
n_prb = 50

[rf]
tx_gain = 80
rx_gain = 40

device_name = auto
device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6

enb_id diisi 0x19B dengan mcc dan mnc yang sesuai dengan settingan di core network yaitu MCC 510 MNC 33. mme_address diisi dengan alamat IP PC core network sedangkan gtp_bind_addr dan s1c_bind_addr diisi dengan alamat IP PC RAN. Bandwidth yang digunakan sebesar 10 MHz sehingga n_prb (nilai physical resource blocks) diaatur 50. Setelah di atur seperti pengaturan diatas, kemudian simpan.

  1. Atur juga file rr.conf seperti dibawah ini :
nano rr.conf

Konfigurasi rr.conf :

cell_list =
(
  {
 // rf_port = 0;
 cell_id = 0x01;
 tac = 0x0001;
 pci = 1;
 // root_seq_idx = 204;
 dl_earfcn = 3350;
   }
)

Parameter yang diatur pada file rr.conf adalah cell_id, tac, pci dan dl_earfcn. Untuk nilai tac disesuaikan dengan yang ada di core network. Untuk nilai dl_earfcn yang digunakan adalah 3350 yang running pada band 7 pada frekuensi downlink 2680 MHz. Setelah mengatur semua parameter yang diperlukan kemudian simpan.

  1. Langkah selanjutnya running eNodeB dengan menggunakan perintah :
../build/srsenb/src/srsenb enb.conf

Terminal PC Radio Access Network

Terminal PC Radio Access Network

Konfigurasi User Equipment (UE)

Setelah mengkonfigurasi SIM card, langkah selanjutnya masukkan SIM card yang sudah dikonfigurasi ke dalam UE. Pada contoh kali ini UE yang digunakan adalah Redmi Note 10 S dengan chipset MediaTek.

Langkah Konfigurasi UE

  1. Pergi ke Settings > SIM cards & Mobile networks > SIM card settings > Access point names > New APN
  2. Isikan :
Name : internet
APN : internet

Kemudian simpan.

Setting APN

Setting APN

  1. Kembali ke halaman SIM card settings > Mobile networks > matikan Automatically select network untuk memindai sinyal. Jika sinyal berhasil terdeteksi maka akan muncul tampilan seperti ini.

  1. Selamat !!! kita berhasil terhubung ke Jaringan 4G LTE milik sendiri. Perlu diperhatikan bahwa tidak semua UE bisa menggunakan jaringan 4G LTE yang sudah dibuat dikarenakan beberapa chipset hanya membuka untuk Band LTE tertentu. Untuk lebih lengkapnya bisa lihat dokumentasi UE yang berhasil terhubung disini ***https://docs.srsran.com/projects/project/en/latest/knowledge_base/source/cots_ues/source/index.html***

Catatan : UE yang saya gunakan yaitu Redmi Note 10 S dengan chipset MediaTek sudah teruji untuk terhubung ke jaringan 4G LTE pada Band 1, Band 2, Band 7 dan Band 8.

UE/Smartphone yang berhasil terkoneksi di eksperimen ini :

  1. Redmi Note 10 S -> Mediatek Helio G95
  2. Redmi Note 9 Pro -> Snapdragon 720G
  3. Realme GT Master -> Snapdragon 778G

Dokumentasi pengujian :

Tampilan Network Signal Info

Tampilan Network Signal Info

Note : TAC pada gambar diatas bernilai 7 karena saya screenshoot saat konfigurasi untuk S1 Handover.

Speed Test

Speed Test

Download dan Upload tertinggi pada test ini :

Download : 31 Mbps
Upload : 20.5 Mbps

INFO TAMBAHAN !!!

Berikut beberapa pengalaman saya saat troubleshoot :

  1. Pastikan firewall nonaktif, terkadang UE tidak bisa internetan karena ini.
  2. Jika sinyal sudah terdeteksi tapi tidak bisa connect ke jaringan -> pastikan MCC MNC sama antara SIM Card dengan Core Network dan sudah terdaftar di WebUI Open5GS.
  3. Periksa kembali setiap konfigurasi, pastikan sudah benar.
  4. Selama proses pengujian, performa CPU sangat berpengaruh. Secara default, CPU pada Linux biasanya menggunakan mode hemat daya (powersave), yang bisa menyebabkan penurunan performa saat running. Teman-teman bisa cek menggunakan perintah :
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Oleh karenanya, agar mendapatkan throughput maksimal. Pada Ubuntu, hal ini dapat dilakukan dengan perintah berikut:

echo "performance" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Jika menggunakan laptop, disarankan untuk selalu menghubungkan perangkat ke sumber listrik selama pengujian berlangsung. Hal ini penting untuk menghindari penurunan frekuensi CPU secara otomatis yang dapat berdampak pada performa sistem.

Demikian dokumentasi membangun jaringan 4G LTE menggunakan USRP B210. Next post, sharing terkait konfigurasi untuk S1 Handover. Semoga tulisan ini bermanfaat. Jika ada saran, masukkan, pertanyaan atau ingin berdiskusi, silakan tulis di kolom komentar!

Terima kasih sudah membaca :)

Reference

Lee, S. (n.d.). Documentation. Open5GS. https://open5gs.org/open5gs/docs/

srsRAN 4G 22.10 Documentation — srsRAN 4G 22.10 documentation. (n.d.). https://docs.srsran.com/projects/4g/en/next/index.html

Sopiyana, Y., Hilmi, F. F., Mas’ud, I., Nurdin, T. A., Bachri, S., Alberto, J., & Purbo, O. W. (2024). Membuat Operator Seluler 5G Sendiri. ANDI.


메타데이터
post_id
746cc8369fc4
slug
membangun-jaringan-4g-lte-sendiri-eksperimen-hands-on-dengan-open5gs-srsran-dan-usrp-b210-746cc8369fc4
url
https://medium.com/@daffaraihansharto/membangun-jaringan-4g-lte-sendiri-eksperimen-hands-on-dengan-open5gs-srsran-dan-usrp-b210-746cc8369fc4
canonical_url
https://medium.com/@daffaraihansharto/membangun-jaringan-4g-lte-sendiri-eksperimen-hands-on-dengan-open5gs-srsran-dan-usrp-b210-746cc8369fc4
author_url
https://medium.com/@daffaraihansharto
status
ok
fetched_at
2026-06-26 21:52:29