open5gs/docs/_docs/guide/01-quickstart.md

6.6 KiB

title
Qucikstart

Note: NextEPC supports installation of packages in Debian/Ubuntu and openSUSE environments. CentOS, Fedora, FreeBSD, and Mac OSX require you to [build with source code]({{ site.url }}{{ site.baseurl }}/docs/guide/02-building-nextepc-from-sources) {: .notice--warning}

Install NextEPC with a Package Manager


The nextepc package is available on the recent versions of Ubuntu.

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:acetcom/nextepc
$ sudo apt update
$ sudo apt install nextepc

The NextEPC package is also available on OBS. First, install the authentication key as shown below.

$ sudo apt install wget
$ wget https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_18.10/Release.key
$ sudo apt install gnupg
$ sudo apt-key add Release.key

In Debian 9.0, you can install it as follows:

$ sudo sh -c "echo 'deb https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/Debian_9.0/ ./' > /etc/apt/sources.list.d/open5gs.list"
$ sudo apt update
$ sudo apt install nextepc

Other Linux distributions can be installed by changing the path.

https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/Raspbian_9.0/
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_16.04/
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_17.10/
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_18.04/
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_18.10/

{: .notice--success}

Martin Hauke packaged NextEPC for openSUSE on OBS.

$ sudo zypper addrepo -f obs://home:mnhauke:nextepc home:mnhauke:nextepc
$ sudo zypper install nextepc
$ sudo zypper install mongodb-server mongodb-shell

Configure NextEPC


Modify [/etc/nextepc/mme.conf](https://github.com/{{ site.github_username }}/nextepc/blob/master/support/config/mme.conf.in) to set the S1AP/GTP-C IP address, PLMN ID, and TAC

diff -u /etc/nextepc/mme.conf.old /etc/nextepc/mme.conf
--- mme.conf.old	2018-04-15 18:28:31.000000000 +0900
+++ mme.conf	2018-04-15 19:53:10.000000000 +0900
@@ -8,18 +8,20 @@ parameter:
 mme:
     freeDiameter: mme.conf
     s1ap:
+      addr: 192.168.0.100
     gtpc:
+      addr: 192.168.0.100
     gummei:
       plmn_id:
-        mcc: 001
-        mnc: 01
+        mcc: 901
+        mnc: 70
       mme_gid: 2
       mme_code: 1
     tai:
       plmn_id:
-        mcc: 001
-        mnc: 01
-      tac: 12345
+        mcc: 901
+        mnc: 70
+      tac: 7
     security:
         integrity_order : [ EIA1, EIA2, EIA0 ]
         ciphering_order : [ EEA0, EEA1, EEA2 ]

Modify [/etc/nextepc/sgw.conf](https://github.com/{{ site.github_username }}/nextepc/blob/master/support/config/sgw.conf.in) to set the GTP-U IP address.

diff -u /etc/nextepc/sgw.conf.old /etc/nextepc/sgw.conf
--- sgw.conf.old	2018-04-15 18:30:25.000000000 +0900
+++ sgw.conf	2018-04-15 18:30:30.000000000 +0900
@@ -14,3 +14,4 @@
     gtpc:
       addr: 127.0.0.2
     gtpu:
+      addr: 192.168.0.100

After changing conf files, please restart NextEPC daemons.

$ sudo systemctl restart nextepc-mmed
$ sudo systemctl restart nextepc-sgwd

Install WebUI of NextEPC


Node.js is required to install WebUI of NextEPC

  1. Debian and Ubuntu based Linux distributions can install Node.js as follows:

    $ sudo apt install curl
    $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
    $ sudo apt install nodejs
    
  2. To install Node.js on openSUSE, run the following:

    $ sudo zypper install nodejs8
    

You can now install WebUI of NextEPC.

$ curl -sL {{ site.url }}/static/webui/install | sudo -E bash -

Register Subscriber Information


Connect to http://localhost:3000 and login with admin account.

Username : admin
Password : 1423

Tip: You can change the password in Account Menu. {: .notice--info}

To add subscriber information, you can do WebUI operations in the following order:

  1. Go to Subscriber Menu.
  2. Click + Button to add a new subscriber.
  3. Fill the IMSI, security context(K, OPc, AMF), and APN of the subscriber.
  4. Click SAVE Button

Tip: This addition immediately affects NextEPC without restaring any daemon. {: .notice--info}

Adding a route for UE to have Internet connectivity


If your phone can connect to internet, you must run the following command in NextEPC-PGW installed host.

$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
$ sudo iptables -t nat -A POSTROUTING -o 'interface-name' -j MASQUERADE
$ sudo iptables -I INPUT -i pgwtun -j ACCEPT

Note: In the above command, you should replace 'interface-name' with your interface name that can connect to the internet. (For example, enp0s25, wls3, and so on). {: .notice--danger}

Turn on your eNodeB and Phone


  • You can see actual traffic through wireshark -- srsenb.pcapng({{ site.url }}{{ site.baseurl }}/assets/pcapng/srsenb.pcapng).
  • You can view the log at /var/log/nextepc/*.log.

Troubleshooting


Problem with NextEPC can be filed as GitHub Issues. Please include the following to get help:

  • Attach *.pcapng file created by wireskark.
  • Attach configuration files at /etc/nextepc/*.conf.
  • Attach log files at /var/log/nextepc/*.log.

You can modify the configuration file to record more logs.

diff -u /etc/nextepc/mme.conf.old /etc/nextepc/mme.conf
--- mme.conf.old	2018-04-15 18:28:31.000000000 +0900
+++ mme.conf	2018-04-15 19:53:10.000000000 +0900
@@ -2,6 +2,7 @@

 logger:
     file: @LOCALSTATE_DIR@/log/nextepc/mme.log
+    level: debug

 parameter:

After changing conf files, please restart NextEPC daemons.

$ sudo systemctl restart nextepc-mmed
$ sudo systemctl restart nextepc-sgwd

Uninstall NextEPC and WebUI

How to remove NextEPC package:

  1. On Ubuntu:

    $ sudo apt purge nextepc*
    
  2. On openSUSE:

    $ sudo zypper rm nextepc
    

You may need to remove manually /var/log/nextepc unless it is empty.

$ sudo rm -Rf /var/log/nextepc

The WebUI of NextEPC can be removed as follows:

curl -sL {{ site.url }}{{ site.baseurl }}/assets/webui/uninstall | sudo -E bash -