Files
open5gs/docs/_docs/guide/01-quickstart.md
2019-06-12 19:15:11 +10:00

7.6 KiB

title
title
Quickstart

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:open5gs/latest
$ 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 update
$ sudo apt install wget gnupg
$ wget https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/Debian_9.0/Release.key
$ sudo apt-key add Release.key

In Debian 9.0(stretch), you can install it as follows:

$ sudo sh -c "echo 'deb http://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.

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

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 update
    $ sudo apt install curl
    $ curl -sL https://deb.nodesource.com/setup_12.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 }}{{ site.baseurl }}/assets/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.

### Check IP Tables
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

### Check NAT Tables
$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

### Enable IPv4 Forwarding
$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

### Add NAT Rule
$ sudo iptables -t nat -A POSTROUTING -s 45.45.0.0/16 ! -o pgwtun -j MASQUERADE

Note: For the first time, it is a good condition if you do not have any rules in the IP/NAT tables. If a program such as docker has already set up a rule, you will need to add a rule differently. {: .notice--danger}

Turn on your eNodeB and Phone


  • Connect your eNodeB to the IP of your server via the standard S1AP port of SCTP 36412 (for MME)
  • 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
    $ sudo apt autoremove
    
  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 -