From b151642fa1d6ab2cb2449ab8e5aee1f212e9f77d Mon Sep 17 00:00:00 2001 From: Sukchan Lee Date: Tue, 25 Oct 2022 21:20:09 +0900 Subject: [PATCH] SCP is added in Debian package --- debian/control | 12 + debian/open5gs-common.install | 1 - debian/open5gs-scp.install | 3 + docs/_docs/guide/01-quickstart.md | 139 ++++--- .../guide/02-building-open5gs-from-sources.md | 7 +- .../guide/03-splitting-network-functions.md | 360 ------------------ docs/_docs/tutorial/01-your-first-lte.md | 48 ++- docs/_pages/docs.md | 5 + docs/_posts/2022-10-01-release-v2.4.11.md | 2 +- 9 files changed, 136 insertions(+), 441 deletions(-) create mode 100644 debian/open5gs-scp.install delete mode 100644 docs/_docs/guide/03-splitting-network-functions.md diff --git a/debian/control b/debian/control index f19bd77b8..4b6786a0d 100644 --- a/debian/control +++ b/debian/control @@ -165,6 +165,18 @@ Description: NRF (Network Repository Function) . This package provides the NRF (Network Repository Function) +Package: open5gs-scp +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, + ${misc:Depends}, + open5gs-common (= ${binary:Version}) +Description: SCP (Network Repository Function) + Open5GS is a C-language implementation of 5G Core and EPC + Packet Core, i.e. the core network of an NR/LTE network (Release-16) + . + This package provides the SCP (Service Communication Proxy) + Package: open5gs-ausf Architecture: any Multi-Arch: same diff --git a/debian/open5gs-common.install b/debian/open5gs-common.install index ef50a9ca3..31606586c 100644 --- a/debian/open5gs-common.install +++ b/debian/open5gs-common.install @@ -3,4 +3,3 @@ usr/lib/*/libfd*.so* usr/lib/*/freeDiameter/*.fdx configs/freeDiameter/cacert.pem /etc/freeDiameter configs/logrotate/open5gs /etc/logrotate.d -misc/db/open5gs-dbctl /usr/bin diff --git a/debian/open5gs-scp.install b/debian/open5gs-scp.install new file mode 100644 index 000000000..424f2d956 --- /dev/null +++ b/debian/open5gs-scp.install @@ -0,0 +1,3 @@ +usr/bin/open5gs-scpd +configs/open5gs/scp.yaml etc/open5gs +configs/systemd/open5gs-scpd.service lib/systemd/system diff --git a/docs/_docs/guide/01-quickstart.md b/docs/_docs/guide/01-quickstart.md index 2546e2216..1af0df1a0 100644 --- a/docs/_docs/guide/01-quickstart.md +++ b/docs/_docs/guide/01-quickstart.md @@ -44,18 +44,19 @@ All of these Open5GS components have config files. Each config file contains the #### 5G SA Core The Open5GS 5G SA Core contains the following functions: +* NRF - NF Repository Function +* SCP - Service Communication Proxy * AMF - Access and Mobility Management Function * SMF - Session Management Function * UPF - User Plane Function * AUSF - Authentication Server Function -* NRF - NF Repository Function * UDM - Unified Data Management * UDR - Unified Data Repository * PCF - Policy and Charging Function * NSSF - Network Slice Selection Function * BSF - Binding Support Function -The 5G SA core works in a different way to the 4G core - it uses a **Service Based Architecture** (SBI). **Control plane** functions are configured to register with the NRF, and the NRF then helps them discover the other core functions. Running through the other functions: The AMF handles connection and mobility management; a subset of what the 4G MME is tasked with. gNBs (5G basestations) connect to the AMF. The UDM, AUSF and UDR carry out similar operations as the 4G HSS, generating SIM authentication vectors and holding the subscriber profile. Session management is all handled by the SMF (previously the responsibility of the 4G MME/ SGWC/ PGWC). The NSSF provides a way to select the network slice. Finally there is the PCF, used for charging and enforcing subscriber policies. +The 5G SA core works in a different way to the 4G core - it uses a **Service Based Architecture** (SBI). **Control plane** functions are configured to register with the NRF, and the NRF then helps them discover the other core functions. Running through the other functions: The AMF handles connection and mobility management; a subset of what the 4G MME is tasked with. gNBs (5G basestations) connect to the AMF. The UDM, AUSF and UDR carry out similar operations as the 4G HSS, generating SIM authentication vectors and holding the subscriber profile. Session management is all handled by the SMF (previously the responsibility of the 4G MME/ SGWC/ PGWC). The NSSF provides a way to select the network slice, and PCF is used for charging and enforcing subscriber policies. Finally there is the SCP that enable indirect communication. The 5G SA core **user plane** is much simpler, as it only contains a single function. The UPF carries user data packets between the gNB and the external WAN. It connects back to the SMF too. @@ -70,14 +71,36 @@ With the exception of the SMF and UPF, all config files for the 5G SA core funct **Note:** Nighly builds are offered by [Osmocom](https://osmocom.org) on [OBS](https://build.opensuse.org/package/show/network:osmocom:nightly/open5gs). Scroll down to use a nightly build package. {: .notice--warning} +#### Getting MongoDB +--- + +Import the public key used by the package management system. + +```bash +$ sudo apt update +$ sudo apt install wget gnupg +$ wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - +``` + +Create the list file /etc/apt/sources.list.d/mongodb-org-6.0.list for your version of Ubuntu. + +```bash +$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list +``` + +Install the MongoDB packages. +```bash +$ sudo apt update +$ sudo apt-get 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) +``` #### Ubuntu *Ubuntu* makes it easy to install Open5GS as shown below. ```bash -$ sudo apt update -$ sudo apt install software-properties-common $ sudo add-apt-repository ppa:open5gs/latest $ sudo apt update $ sudo apt install open5gs @@ -90,13 +113,9 @@ The Open5GS packages for Debian are available on [OBS](https://build.opensuse.or ```bash $ sudo apt update -$ sudo apt install wget gnupg -$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - -$ echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org.list $ wget -qO - https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/Debian_10/Release.key | sudo apt-key add - $ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/Debian_10/ ./' > /etc/apt/sources.list.d/open5gs.list" $ sudo apt update -$ sudo apt install mongodb-org $ sudo apt install open5gs ``` @@ -115,16 +134,6 @@ https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbunt https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_22.04/ ``` -#### openSUSE - -[Martin Hauke](https://build.opensuse.org/user/show/mnhauke) packaged Open5GS for *openSUSE* on [OBS](https://build.opensuse.org/package/show/home:mnhauke:open5gs/open5gs). - -```bash -$ sudo zypper addrepo -f obs://home:mnhauke:open5gs home:mnhauke:open5gs -$ sudo zypper install mongodb-server mongodb-shell -$ sudo zypper install open5gs -``` - #### Nightly Builds Nightly bulit package are provided by [Osmocom](https://osmocom.org) on [OBS](https://build.opensuse.org/package/show/network:osmocom:nightly/open5gs). On *Ubuntu 20.04* you can install it like this: @@ -153,6 +162,15 @@ https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_21. https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_22.04/ ``` +#### openSUSE + +[Martin Hauke](https://build.opensuse.org/user/show/mnhauke) packaged Open5GS for *openSUSE* on [OBS](https://build.opensuse.org/package/show/home:mnhauke:open5gs/open5gs). + +```bash +$ sudo zypper addrepo -f obs://home:mnhauke:open5gs home:mnhauke:open5gs +$ sudo zypper install mongodb-server mongodb-shell +$ sudo zypper install open5gs +``` ## 3. Install the WebUI of Open5GS --- @@ -167,7 +185,7 @@ The WebUI allows you to interactively edit subscriber data. While it is not esse ```bash $ sudo apt update $ sudo apt install curl - $ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - + $ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - $ sudo apt install nodejs ``` @@ -220,6 +238,7 @@ HSS-frDi = 127.0.0.8 :3868 for S6a, Cx PCRF-frDi = 127.0.0.9 :3868 for Gx NRF-sbi = 127.0.0.10:7777 for 5G SBI +SCP-sbi = 127.0.1.10:7777 for 5G SBI AUSF-sbi = 127.0.0.11:7777 for 5G SBI UDM-sbi = 127.0.0.12:7777 for 5G SBI PCF-sbi = 127.0.0.13:7777 for 5G SBI @@ -239,45 +258,49 @@ Modify [/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/ope ```diff $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml - - mme: - freeDiameter: /etc/freeDiameter/mme.conf +--- mme.yaml 2020-09-05 20:52:28.648235143 -0400 ++++ mme.yaml.new 2020-09-05 20:56:05.434484208 -0400 +@@ -253,20 +253,20 @@ mme: s1ap: -- addr: 127.0.0.2 -+ addr: 10.10.0.2 # for external eNB - a local address that can be reached by the eNB + - addr: 127.0.0.2 gtpc: +- - addr: 127.0.0.2 ++ - addr: 10.10.0.2 + metrics: addr: 127.0.0.2 + port: 9090 gummei: plmn_id: - mcc: 999 - mnc: 70 -+ mcc: 001 # set your PLMN-MCC -+ mnc: 01 # set your PLMN-MNC ++ mcc: 001 ++ mnc: 01 mme_gid: 2 mme_code: 1 tai: plmn_id: - mcc: 999 - mnc: 70 -- tac: 1 -+ mcc: 001 # set your PLMN-MCC -+ mnc: 01 # set your PLMN-MNC -+ tac: 2 # should match the TAC used by your eNB ++ mcc: 001 ++ mnc: 01 + tac: 1 security: - + integrity_order : [ EIA2, EIA1, EIA0 ] ``` Modify [/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address. ```diff $ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml - +--- sgwu.yaml 2020-09-05 20:50:39.393022566 -0400 ++++ sgwu.yaml.new 2020-09-05 20:51:06.667838823 -0400 +@@ -98,7 +98,7 @@ logger: + # sgwu: - gtpu: -- addr: 127.0.0.6 -+ addr: 10.11.0.6 # for external eNB - a local address that can be reached by the eNB pfcp: - addr: 127.0.0.6 - +- - addr: 127.0.0.6 ++ - addr: 10.11.0.6 + gtpu: + - addr: 127.0.0.6 ``` After changing config files, please restart Open5GS daemons. @@ -298,20 +321,23 @@ Modify [/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/ope ```diff $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml - -amf: - sbi: - - addr: 127.0.0.5 - port: 7777 +--- amf.yaml 2020-09-05 20:52:28.652234967 -0400 ++++ amf.yaml.new 2020-09-05 20:55:07.453114885 -0400 +@@ -293,26 +293,26 @@ amf: + - addr: 127.0.0.5 + port: 7777 ngap: - - addr: 127.0.0.5 -+ - addr: 10.10.0.5 # for external gNB - a local address that can be reached by the gNB ++ - addr: 10.10.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: - mcc: 999 - mnc: 70 -+ mcc: 001 # set your PLMN-MCC -+ mnc: 01 # set your PLMN-MNC ++ mcc: 001 ++ mnc: 01 amf_id: region: 2 set: 1 @@ -319,36 +345,34 @@ amf: - plmn_id: - mcc: 999 - mnc: 70 -- tac: 1 -+ mcc: 001 # set your PLMN-MCC -+ mnc: 01 # set your PLMN-MNC -+ tac: 2 # should match the TAC used by your gNB ++ mcc: 001 ++ mnc: 01 + tac: 1 plmn_support: - plmn_id: - mcc: 999 - mnc: 70 -+ mcc: 001 # set your PLMN-MCC -+ mnc: 01 # set your PLMN-MNC ++ mcc: 001 ++ mnc: 01 s_nssai: - sst: 1 security: - ``` Modify [/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/upf.yaml.in) to set the GTP-U address. ```diff $ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml - -upf: +--- upf.yaml 2020-09-05 20:52:28.652234967 -0400 ++++ upf.yaml.new 2020-09-05 20:52:55.279052142 -0400 +@@ -168,7 +168,7 @@ upf: pfcp: - addr: 127.0.0.7 gtpu: - - addr: 127.0.0.7 -+ - addr: 10.11.0.7 # for external gNB - a local address that can be reached by the gNB ++ - addr: 10.11.0.7 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 - ``` After changing config files, please restart Open5GS daemons. @@ -482,6 +506,7 @@ $ sudo systemctl stop open5gs-upfd $ sudo systemctl stop open5gs-hssd $ sudo systemctl stop open5gs-pcrfd $ sudo systemctl stop open5gs-nrfd +$ sudo systemctl stop open5gs-scpd $ sudo systemctl stop open5gs-ausfd $ sudo systemctl stop open5gs-udmd $ sudo systemctl stop open5gs-pcfd @@ -501,6 +526,7 @@ $ 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-ausfd $ sudo systemctl restart open5gs-udmd $ sudo systemctl restart open5gs-pcfd @@ -539,4 +565,3 @@ The WebUI of Open5GS can be removed as follows: ```bash curl -fsSL {{ site.url }}{{ site.baseurl }}/assets/webui/uninstall | sudo -E bash - ``` - diff --git a/docs/_docs/guide/02-building-open5gs-from-sources.md b/docs/_docs/guide/02-building-open5gs-from-sources.md index 81c064d55..f577543a9 100644 --- a/docs/_docs/guide/02-building-open5gs-from-sources.md +++ b/docs/_docs/guide/02-building-open5gs-from-sources.md @@ -6,15 +6,13 @@ head_inline: "" This post explains how to compile and install the source code on **Debian/Ubuntu** based Linux Distribution. {: .blue} -**Note:** Ubuntu 22.04(focal) and earlier versions, and Debian 9(stretch) and earlier versions are not supported. +**Note:** Ubuntu 16.04(xenial) and earlier versions, and Debian 9(stretch) and earlier versions are not supported. {: .notice--danger} ### Getting MongoDB --- -Install MongoDB with package manager. It is used as database for NRF/PCF/UDR and PCRF/HSS. - Import the public key used by the package management system. ```bash @@ -35,6 +33,9 @@ $ sudo systemctl start mongod (if '/usr/bin/mongod' is not running) $ sudo systemctl enable mongod (ensure to automatically start it on system boot) ``` +**Tip:** MongoDB is used as database for NRF/PCF/UDR and PCRF/HSS. +{: .notice--info} + ### Setting up TUN device (not persistent after rebooting) --- diff --git a/docs/_docs/guide/03-splitting-network-functions.md b/docs/_docs/guide/03-splitting-network-functions.md deleted file mode 100644 index 51a0b333b..000000000 --- a/docs/_docs/guide/03-splitting-network-functions.md +++ /dev/null @@ -1,360 +0,0 @@ ---- -title: Open5GS Splitting Network Functions -head_inline: "" ---- - -In a production network, NFs are usually not on the same machine as the default example that comes with Open5GS. - -Open5GS is designed to comply with standards, so in theory you can connect core network functions from Open5GS or other vendors to form a functioning network. However, this is only possible if it complies with 3GPP. - -To demonstrate this, we will cover how to isolate each network function and connect each network function to another. For some interfaces, you can specify multiple interfaces to connect to multiple interfaces. - -In this example, we are connecting the Open5GS NF together, but instead of the Open5GS network function, you can easily connect them like other vendors' NFs. - -## 1. Configuring Open5GS (Without other vendors' NFs) - -_Cloud Authentication and Session Management Server_ - -``` -MongoDB = 127.0.0.1 (subscriber data) - http://localhost:3000 -MME-s1ap = 10.10.0.2 :36412 (authVPN) for S1-MME -MME-gtpc = 127.0.0.2 :2123 for S11 -MME-frDi = 127.0.0.2 :3868 for S6a auth -SGWC-gtpc = 127.0.0.3 :2123 for S11 -SGWC-pfcp = 10.10.0.3 :8805 (authVPN) for Sxa -SMF-gtpc = 127.0.0.4 :2123 for S5/8c, N11 -SMF-pfcp = 10.10.0.4 :8805 (authVPN) for N4 -SMF-frDi = 127.0.0.4 :3868 for Gx auth -SMF-sbi = 127.0.0.4 :7777 for 5G SBI (N7,N10,N11) -AMF-ngap = 10.10.0.5 :38412 (authVPN) for N2 -AMF-sbi = 127.0.0.5 :7777 for 5G SBI (N8,N12,N11) -HSS-frDi = 127.0.0.8 :3868 for S6a auth -PCRF-frDi = 127.0.0.9 :3868 for Gx auth -NRF-sbi = 127.0.0.10:7777 for 5G SBI -SCP-sbi = 127.0.1.10:7777 for 5G SBI -AUSF-sbi = 127.0.0.11:7777 for 5G SBI -UDM-sbi = 127.0.0.12:7777 for 5G SBI -PCF-sbi = 127.0.0.13:7777 for 5G SBI -NSSF-sbi = 127.0.0.14:7777 for 5G SBI -BSF-sbi = 127.0.0.15:7777 for 5G SBI -UDR-sbi = 127.0.0.20:7777 for 5G SBI -``` - -_Cloud Userplane Server (to host IMS etc)_ - -``` -SGWU-pfcp = 10.10.0.6 :8805 (authVPN) for Sxa -SGWU-gtpu = 10.11.0.6 :2152 (userplaneVPN) for S1-U, S5/8u -UPF-pfcp = 10.10.0.7 :8805 (authVPN) for N4 -UPF-gtpu = 10.11.0.7 :2152 (userplaneVPN) for S5/8u, N3 -``` - -You can refer to the network settings at -[{{ site.url }}{{ site.baseurl }}/assets/Open5GS-Diagram.pdf]({{ site.url }}{{ site.baseurl }}/assets/Open5GS-Diagram.pdf) provided by [@kbarlee](https://github.com/kbarlee) in issue [#528](https://github.com/{{ site.github_username }}/open5gs/issues/528) -{: .notice--danger} - -Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC. - -```diff -$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml ---- mme.yaml.old 2020-08-22 11:36:40.512418765 -0400 -+++ mme.yaml 2020-08-22 11:36:27.081466682 -0400 -@@ -253,20 +253,20 @@ mme: - s1ap: - - addr: 127.0.0.2 - gtpc: -- - addr: 127.0.0.2 -+ - addr: 10.10.0.2 - metrics: - addr: 127.0.0.2 - 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 ] -``` - -Modify [install/etc/open5gs/sgwc.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwc.yaml.in) to set the PFCP IP address. -```diff -$ diff -u /etc/open5gs/sgwc.yaml.old /etc/open5gs/sgwc.yaml -@@ -69,7 +69,7 @@ sgwc: - gtpc: - - addr: 127.0.0.3 - pfcp: -- - addr: 127.0.0.3 -+ - addr: 10.10.0.3 - - # - # sgwu: -@@ -120,7 +120,7 @@ sgwc: - # - sgwu: - pfcp: -- - addr: 127.0.0.6 -+ - addr: 10.10.0.6 - - # - # parameter: -``` - -Modify [install/etc/open5gs/smf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/smf.yaml.in) to set the PFCP IP address. -```diff -$ diff -u /etc/open5gs/smf.yaml.old /etc/open5gs/smf.yaml ---- smf.yaml.old 2020-08-22 11:37:39.990816411 -0400 -+++ smf.yaml 2020-08-22 11:38:18.647999952 -0400 -@@ -446,7 +446,7 @@ smf: - - addr: 127.0.0.4 - port: 7777 - pfcp: -- - addr: 127.0.0.4 -+ - addr: 10.10.0.4 - - addr: ::1 - gtpc: - - addr: 127.0.0.4 -@@ -613,7 +613,7 @@ scp: - # - upf: - pfcp: -- - addr: 127.0.0.7 -+ - addr: 10.10.0.7 - - # - # parameter: -``` - -Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI. - -```diff -diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml ---- amf.yaml.old 2020-06-21 23:34:14.643114779 -0400 -+++ amf.yaml 2020-06-21 23:34:28.718482095 -0400 -@@ -293,26 +293,26 @@ amf: - - addr: 127.0.0.5 - port: 7777 - ngap: -- - addr: 127.0.0.5 -+ - addr: 10.10.0.5 - metrics: - addr: 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: -``` - -Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U and PFCP IP address. -```diff -$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml ---- sgwu.yaml.old 2020-08-22 11:41:09.214670723 -0400 -+++ sgwu.yaml 2020-08-22 11:41:27.433937124 -0400 -@@ -98,7 +98,7 @@ logger: - # - sgwu: - pfcp: -- - addr: 127.0.0.6 -+ - addr: 10.11.0.6 - gtpu: - - addr: 127.0.0.6 -``` - -Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/upf.yaml.in) to set the GTP-U and PFCP IP address. -```diff -$ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml ---- upf.yaml.old 2020-08-22 11:42:57.781750067 -0400 -+++ upf.yaml 2020-08-22 11:43:13.268901616 -0400 -@@ -168,7 +168,7 @@ upf: - pfcp: - - addr: 127.0.0.7 - gtpu: -- - addr: 127.0.0.7 -+ - addr: 10.11.0.7 - subnet: - - addr: 10.45.0.1/16 - - addr: 2001:db8:cafe::1/48 -``` - -After changing conf files, please restart Open5GS daemons. - -```bash -$ sudo systemctl restart open5gs-mmed.service -$ sudo systemctl restart open5gs-sgwcd.service -$ sudo systemctl restart open5gs-smfd.service -$ sudo systemctl restart open5gs-amfd.service -$ sudo systemctl restart open5gs-upfd.service -$ sudo systemctl restart open5gs-sgwud.service -``` - -## 2. External SMF -In it's simplest form the SMF has 4 interfaces: - * S5 - Connection to home network SGW-C (GTP-C) - * Gx - Connection to PCRF (Diameter) - * SBI - Service-based interface(HTTP2) - * Sgi - Connection to external network (Generally the Internet via standard TCP/IP) - -#### S5 Interface Configuration -Edit ```/etc/open5gs/smf.yaml``` and change the address to IP of the server running the SMF for the listener on GTP-C interfaces. - -``` -smf: - freeDiameter: /etc/freeDiameter/smf.conf - gtpc: - addr: - - 10.0.1.121 -``` - -#### Gx Interface Configuration -Edit ```/etc/freeDiameter/smf.conf``` - -Update ```ListenOn``` address to IP of the server running the SMF: - -``` ListenOn = "10.0.1.121"; ``` - -Update ConnectPeer to connect to the PCRF on it's IP. - -```ConnectPeer = "pcrf.localdomain" { ConnectTo = "10.0.1.123"; No_TLS; };``` - -#### Restart Services -Restart Open5GS SMF Daemon: - -``` $ sudo systemctl restart open5gs-smfd.service ``` - - -## 3. External SGW-C -In it's simplest form the SGW-C has 2 interfaces: - * S11 - Connection to MME (GTP-C) - * S5 - Connection to the home network SMF (GTP-C) - -#### S5 Interface Configuration -Edit ```/etc/open5gs/sgwc.yaml``` and change the address to IP of the server running the SGW-C for the listener on GTP-C interface. - -``` -sgwc: - gtpc: - addr: - - 10.0.1.122 -``` - - Restart Open5GS SGW-C Daemon: - -``` $ sudo systemctl restart open5gs-sgwcd.service ``` - - -## 4. External PCRF -In it's simplest from the PCRF has 1 network interface: - * Gx - Connection to SMF (Diameter) - -#### Gx Interface Configuration -Edit ```/etc/freeDiameter/pcrf.conf``` - -Update ```ListenOn``` address to IP of the server running the HSS on it's IP: - -``` ListenOn = "10.0.1.123"; ``` - -Update ConnectPeer to connect to the MME. - -```ConnectPeer = "smf.localdomain" { ConnectTo = "10.0.1.121"; No_TLS; };``` - -#### MongoDB Interface Configuration -Edit the ```db_uri:``` to point at the Open5GS: ```db_uri: mongodb://10.0.1.118/open5gs``` - -Restart Open5GS PCRF Daemon: - -``` $ sudo systemctl restart open5gs-pcrfd.service ``` - -## 5. External HSS -In it's simplest form the HSS has 1 network interface: - * S6a - Connection to MME (Diameter) - -#### S6a Interface Configuration -Edit ```/etc/freeDiameter/hss.conf``` - -Update ```ListenOn``` address to IP of the server running the HSS on it's IP: - -``` ListenOn = "10.0.1.118"; ``` - -Update ConnectPeer to connect to the MME. - -```ConnectPeer = "mme.localdomain" { ConnectTo = "10.0.1.124"; No_TLS; };``` - -Restart Open5GS HSS Daemon: - -``` $ sudo systemctl restart open5gs-hssd.service ``` - -#### MongoDB Interface Configuration (Open5GS specific) -If you are using Open5GS's HSS you may need to enable MongoDB access from the PCRF. This is done by editing ''/etc/mongodb.conf'' and changing the bind IP to: -``` bind_ip = 0.0.0.0 ``` - -Restart MongoDB for changes to take effect. - -``` $ /etc/init.d/mongodb restart ``` - -## 6. External MME -In it's simplest form the MME has 3 interfaces: - * S1AP - Connections from eNodeBs - * S6a - Connection to HSS (Diameter) - * S11 - Connection to SGW-C (GTP-C) - -#### S11 Interface Configuration -Edit ```/etc/open5gs/mme.yaml``` and filling the IP address of the SGW-C and SMF servers. -``` -sgwc: - gtpc: - addr: 10.0.1.122 - -smf: - gtpc: - addr: - - 10.0.1.121 -``` - -#### S6a Interface Configuration -Edit ```/etc/freeDiameter/mme.conf``` - -Update ```ListenOn``` address to IP of the server running the MME: - -``` ListenOn = "10.0.1.124"; ``` - -Update ConnectPeer to connect to the PCRF on it's IP. - -```ConnectPeer = "hss.localdomain" { ConnectTo = "10.0.1.118"; No_TLS; };``` - - -#### Restart Services -Restart Open5GS MME Daemon: - -``` $ sudo systemctl restart open5gs-mmed.service ``` diff --git a/docs/_docs/tutorial/01-your-first-lte.md b/docs/_docs/tutorial/01-your-first-lte.md index 018235880..a5ab16368 100644 --- a/docs/_docs/tutorial/01-your-first-lte.md +++ b/docs/_docs/tutorial/01-your-first-lte.md @@ -156,9 +156,20 @@ $ make test #### 3. Open5GS +Install the MongoDB packages. + +```bash +``` + The Open5GS package is available on the recent versions of *Ubuntu*. ```bash +# Install the MongoDB Packages +$ wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - +$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list +$ sudo apt update +$ sudo apt install mongodb-org + # Getting the authentication key $ sudo apt install wget $ wget https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_20.04/Release.key @@ -173,7 +184,7 @@ $ sudo apt install open5gs The following shows how to install the Web UI of Open5GS. ```bash -$ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - +$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - $ sudo apt install nodejs $ curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash - ``` @@ -229,16 +240,17 @@ Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username ```diff $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml ---- mme.yaml.old 2020-08-22 12:07:32.755250028 -0400 -+++ mme.yaml 2020-08-22 12:08:17.309320211 -0400 -@@ -208,20 +208,20 @@ - mme: - freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf +--- mme.yaml 2020-09-05 20:52:28.648235143 -0400 ++++ mme.yaml.new 2020-09-05 20:56:05.434484208 -0400 +@@ -253,20 +253,20 @@ mme: s1ap: -- addr: 127.0.0.2 -+ addr: 127.0.1.2 + - addr: 127.0.0.2 gtpc: +- - addr: 10.11.0.2 ++ - addr: 127.0.0.2 + metrics: addr: 127.0.0.2 + port: 9090 gummei: plmn_id: - mcc: 999 @@ -251,28 +263,26 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml plmn_id: - mcc: 999 - mnc: 70 -- tac: 1 + mcc: 310 + mnc: 789 -+ tac: 2 + tac: 1 security: - integrity_order : [ EIA1, EIA2, EIA0 ] - ciphering_order : [ EEA0, EEA1, EEA2 ] + integrity_order : [ EIA2, EIA1, EIA0 ] ``` Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address. ```diff $ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml ---- sgwu.yaml.old 2020-08-22 12:08:44.782880778 -0400 -+++ sgwu.yaml 2020-08-22 12:06:49.809299514 -0400 -@@ -82,7 +82,7 @@ +--- sgwu.yaml 2020-09-05 20:50:39.393022566 -0400 ++++ sgwu.yaml.new 2020-09-05 20:51:06.667838823 -0400 +@@ -98,7 +98,7 @@ logger: # sgwu: - gtpu: -- addr: 10.11.0.6 -+ addr: 127.0.0.6 pfcp: - addr: 127.0.0.6 +- - addr: 10.11.0.6 ++ - addr: 127.0.0.6 + gtpu: + - addr: 127.0.0.6 ``` diff --git a/docs/_pages/docs.md b/docs/_pages/docs.md index e53715f0a..5db377d90 100644 --- a/docs/_pages/docs.md +++ b/docs/_pages/docs.md @@ -15,6 +15,11 @@ head_inline: "" - [Dockerized VoLTE Setup](tutorial/03-VoLTE-dockerized) - [Metrics with Prometheus](tutorial/04-metrics-prometheus) +- Inside Source Code + - [Detailed Architecture of Open5GS](https://chowdera.com/2022/151/202205312246348316.html) + - [UPF Code Explanation](https://medium.com/@aditya.koranga/open5gs-upf-code-explanation-with-flow-c-79c50f253dd1) + - [SMF Code Explanation](https://medium.com/@aditya.koranga/open5gs-smf-code-explanation-with-flow-charts-a3b3cd38c991) + - Troubleshooting - [Simple Issues](troubleshoot/01-simple-issues) - [Now in Github Issues](troubleshoot/02-now-in-github-issues) diff --git a/docs/_posts/2022-10-01-release-v2.4.11.md b/docs/_posts/2022-10-01-release-v2.4.11.md index e86f94f43..0c15cabc6 100644 --- a/docs/_posts/2022-10-01-release-v2.4.11.md +++ b/docs/_posts/2022-10-01-release-v2.4.11.md @@ -1,6 +1,6 @@ --- title: "v2.4.11 - Bug Fixes (critical: session deletion)" -date: 2022-09-09 09:43:00 +0900 +date: 2022-10-01 09:43:00 +0900 categories: - Release tags: