1.依赖安装
需要 Ubuntu 24.04 LTS
如果在ARM64的机器上安装,且无LSE扩展,请选择1.2的安装方式
其他机器1.1和1.2选择一种安装即可
1.1 MongoDB
sudo apt update
sudo apt install gnupg
curl -fsSL https://pgp.mongodb.com/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
添加仓库文件
在 Ubuntu 22.04 (Jammy) 上
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
安装 MongoDB
sudo apt update
sudo apt install -y mongodb-org
sudo systemctl start mongod (if '/usr/bin/mongod' is not running)
sudo systemctl enable mongod (ensure to automatically start it on system boot)
1.2 FerretDB + PostgreSQL
参考:
https://docs.ferretdb.io/installation/ferretdb/docker/
https://github.com/open5gs/open5gs/issues/1362
创建一个 docker-compose.yml 文件 内容如下
services:
postgres:
image: ghcr.io/ferretdb/postgres-documentdb:17-0.107.0-ferretdb-2.7.0
restart: unless-stopped
environment:
- POSTGRES_USER=username
- POSTGRES_PASSWORD=password
- POSTGRES_DB=postgres
volumes:
- ./data:/var/lib/postgresql/data
ferretdb:
image: ghcr.io/ferretdb/ferretdb:2.7.0
restart: unless-stopped
ports:
- 27017:27017
environment:
- FERRETDB_POSTGRESQL_URL=postgres://username:password@postgres:5432/postgres
- FERRETDB_AUTH=false
networks:
default:
name: ferretdb
docker compose down
docker compose up -d
2.Open5GS 安装
sudo add-apt-repository ppa:open5gs/latest
sudo apt update
sudo apt install open5gs
安装WebUI (前置nodejs)
# Download and import the Nodesource GPG key
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
# Create deb repository
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
# Run Update and Install
sudo apt update
sudo apt install nodejs -y
curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash -
3.配置 Open5GS
下面按需配置即可
3.1. 4G/5G NSA
修改 /etc/open5gs/mme.yaml 设置 S1AP IP 地址、PLMN ID(设置为001 01) 和 TAC
一般修改为自己的本地内网IP地址
$ diff --git a/configs/open5gs/mme.yaml.in b/configs/open5gs/mme.yaml.in
index db2cdaef1..2010f6691 100644
--- a/configs/open5gs/mme.yaml.in
+++ b/configs/open5gs/mme.yaml.in
@@ -10,7 +10,7 @@ mme:
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
s1ap:
server:
- - address: 127.0.0.2
+ - address: 10.10.0.2
gtpc:
server:
- address: 127.0.0.2
@@ -25,14 +25,14 @@ mme:
port: 9090
gummei:
plmn_id:
- mcc: 999
- mnc: 70
+ mcc: 001
+ mnc: 01
mme_gid: 2
mme_code: 1
tai:
plmn_id:
- mcc: 999
- mnc: 70
+ mcc: 001
+ mnc: 01
tac: 1
security:
integrity_order : [ EIA2, EIA1, EIA0 ]
修改 /etc/open5gs/sgwu.yaml 文件以设置 GTP-U IP 地址
也是修改为自己的本地内网IP地址
$ diff --git a/configs/open5gs/sgwu.yaml.in b/configs/open5gs/sgwu.yaml.in
index 7266e47fb..d640f0357 100644
--- a/configs/open5gs/sgwu.yaml.in
+++ b/configs/open5gs/sgwu.yaml.in
@@ -15,7 +15,7 @@ sgwu:
# - address: 127.0.0.3
gtpu:
server:
- - address: 127.0.0.6
+ - address: 10.11.0.6
################################################################################
# PFCP Server
然后重启服务 上面的两个IP地址是可以重复的 不需要额外的网卡
sudo systemctl restart open5gs-mmed
sudo systemctl restart open5gs-sgwud
3.2. 5G SA
修改 AMF 的 NGAP 绑定地址和UPF 的 GTPU 绑定地址,如果这个SDR基站就在本地就不需要改了
这个绑定地址需要与上面4G的区别 需要额外网卡
$ diff --git a/configs/open5gs/nrf.yaml.in b/configs/open5gs/nrf.yaml.in
index cd9e45feb..58e8cbbce 100644
--- a/configs/open5gs/nrf.yaml.in
+++ b/configs/open5gs/nrf.yaml.in
@@ -10,8 +10,8 @@ global:
nrf:
serving: # 5G roaming requires PLMN in NRF
- plmn_id:
- mcc: 999
- mnc: 70
+ mcc: 001
+ mnc: 01
sbi:
server:
- address: 127.0.0.10
修改/etc/open5gs/amf.yaml以设置 NGAP IP 地址、PLMN ID、TAC 和 NSSAI。
$ diff --git a/configs/open5gs/amf.yaml.in b/configs/open5gs/amf.yaml.in
index 938917e32..35d0ab5aa 100644
--- a/configs/open5gs/amf.yaml.in
+++ b/configs/open5gs/amf.yaml.in
@@ -18,27 +18,27 @@ amf:
- uri: http://127.0.0.200:7777
ngap:
server:
- - address: 127.0.0.5
+ - address: 10.10.0.5
metrics:
server:
- address: 127.0.0.5
port: 9090
guami:
- plmn_id:
- mcc: 999
- mnc: 70
+ mcc: 001
+ mnc: 01
amf_id:
region: 2
set: 1
tai:
- plmn_id:
- mcc: 999
- mnc: 70
+ mcc: 001
+ mnc: 01
tac: 1
plmn_support:
- plmn_id:
- mcc: 999
- mnc: 70
+ mcc: 001
+ mnc: 01
s_nssai:
- sst: 1
security:
修改 /etc/open5gs/upf.yaml 以设置 GTP-U 地址。
$ diff --git a/configs/open5gs/upf.yaml.in b/configs/open5gs/upf.yaml.in
index e78b018f1..35a54419e 100644
--- a/configs/open5gs/upf.yaml.in
+++ b/configs/open5gs/upf.yaml.in
@@ -15,7 +15,7 @@ upf:
# - address: 127.0.0.4
gtpu:
server:
- - address: 127.0.0.7
+ - address: 10.11.0.7
session:
- subnet: 10.45.0.1/16
- subnet: 2001:db8:cafe::1/48
更改配置文件后,请重启 Open5GS 进程
sudo systemctl restart open5gs-nrfd
sudo systemctl restart open5gs-amfd
sudo systemctl restart open5gs-upfd
-
网络转发
Enable IPv4/IPv6 Forwarding
sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1Add NAT Rule
sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
sudo ip6tables -t nat -A POSTROUTING -s 2001:db8:cafe::/48 ! -o ogstun -j MASQUERADEsudo iptables -I FORWARD -i ogstun -j ACCEPT
sudo iptables -I FORWARD -o ogstun -j ACCEPTsudo ip6tables -I FORWARD -i ogstun -j ACCEPT
sudo ip6tables -I FORWARD -o ogstun -j ACCEPT
版权属于:Kiritake Kumi (Niconeiko) ,本文所引用的第三方材料版权归属为:第三方材料的所有者
本文链接:https://blog.yazawaniko.com/index.php/archives/330/
除特殊标注以及**影像内容**外,均使用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议 ,影像内容请务必联系确认是否可以转载使用