145 lines
4.2 KiB
Plaintext
145 lines
4.2 KiB
Plaintext
*** QuickStart ***
|
|
|
|
REQUIREMENTS
|
|
|
|
Linux
|
|
OpenGGSN was developed and tested using Redhat 7.1 and Redhat
|
|
7.2. It should run also on other Linux distributions as well as
|
|
FreeBSD and Solaris, but this is untested. Please tell me of any
|
|
testing results.
|
|
|
|
Tun
|
|
Both ggsn and sgsnemu uses the tun package. You need at least tun
|
|
version 1.1. See http://vtun.sourceforge.net/tun/ for instructions on
|
|
installation. Tun should be included from linux kernel version 2.4, so
|
|
you might not need to manually install tun.
|
|
|
|
COMPILATION
|
|
./configure
|
|
make clean
|
|
make
|
|
|
|
INSTALLATION
|
|
Need to be root to do this
|
|
make install
|
|
Add /usr/local/lib to /etc/ld.so.conf
|
|
Run ldconfig
|
|
|
|
RUNNING
|
|
|
|
sgsnemu
|
|
Edit the configuration file sgsnemu.conf found under
|
|
openggsn/examples.
|
|
Start the emulator using the command:
|
|
|
|
sgsnemu -c examples/sgsnemu.conf -l 10.20.30.50 -r 10.20.30.40 --apn internet
|
|
|
|
This will cause the sgsn emulator to bind to local address 10.20.30.50
|
|
and connect to the ggsn found at 10.20.30.40. It will first send off
|
|
an ECHO_REQUEST message. After this it will attemt to establish a pdp
|
|
context. If successful it will create a local interface and set up
|
|
routing. Now you should be able to ping through the connection. Use a
|
|
network analysator such as ethereal to monitor the traffic.
|
|
|
|
ggsn
|
|
Edit the configuration file ggsn.conf found under openggsn/examples.
|
|
Start the ggsn using the command:
|
|
ggsn --fg -c examples/ggsn.conf -l 10.20.30.40
|
|
This will run the ggsn in foreground using the local interface
|
|
10.20.30.40
|
|
|
|
|
|
*** Features ***
|
|
|
|
OpenGGSN is an open source implementation of GPRS Support Nodes
|
|
(GSNs). It implements the GPRS tunneling protocol (GTP) version 0.
|
|
|
|
OpenGGSN provides 3 components:
|
|
* gtplib
|
|
* ggsn
|
|
* sgsnemu
|
|
|
|
gtplib
|
|
This library contain all functionality retating to the GTP
|
|
protocol. Use this libraty if you want to implement your own
|
|
GSN. Currently gtplib supports GTPv0.
|
|
|
|
ggsn
|
|
The ggsn implements a Gateway GPRS Support Node. The GGSN is a
|
|
small application which is provided in order to test and demonstrate
|
|
the use of gtplib. It is fully compliant to the 3GPP standards, but
|
|
lack important functionality such as charging and management. Use this
|
|
application as a starting point if you want to build your own GGSN
|
|
with your own fancy VPN, management and charging functionality.
|
|
|
|
sgsnemu This application emulates a Serving GPRS Support Node. sgsnemu
|
|
enable you to test your 3GPP core network without the need to invest
|
|
in a 3G radio access network. An important application of sgsnemu is
|
|
the testing of roaming connectivity through a GPRS roaming exchange.
|
|
|
|
*** Required software ***
|
|
|
|
TUN
|
|
http://vtun.sourceforge.net/tun/
|
|
|
|
Both ggsn and sgsnemu uses the tun package. You need at least tun
|
|
version 1.1. See the above web page for instructions on installation.
|
|
|
|
GENGETOPT
|
|
http://www.gnu.org/software/gengetopt/gengetopt.html
|
|
|
|
Gengetopt is required if you want to change the options defined in the
|
|
cmdline.ggo source file. You need at least gengetopt version 2.8 (Not
|
|
released yet 2002-12-12).
|
|
|
|
If you are just going to compile the programs you don't need
|
|
gengetopt.
|
|
|
|
To use gengetopt do the following:
|
|
cd ggsn
|
|
../../gengetopt-2.8rc/src/gengetopt < cmdline.ggo --conf-parser
|
|
insert #define _GNU_SOURCE in the top of cmdline.c to get rid of warnings.
|
|
|
|
To use gengetopt do the following:
|
|
cd sgsnemu
|
|
../../gengetopt-2.8rc/src/gengetopt < cmdline.ggo --conf-parser
|
|
insert #define _GNU_SOURCE in the top of cmdline.c to get rid of warnings.
|
|
|
|
libPropList-0.10.1 (??? I can't remember if I use this???)
|
|
ftp://ftp.windowmaker.org/pub/libs
|
|
|
|
*** Compilation and Installation ***
|
|
|
|
To generate everything:
|
|
See http://sources.redhat.com/autobook/autobook/autobook_25.html#SEC25
|
|
1 edit configure.in
|
|
2 run aclocal
|
|
3 run autoheader
|
|
(run automake --add-missing)
|
|
4 run automake
|
|
5 run autoconf
|
|
6 run ./configure
|
|
7 rin make clean
|
|
8 run make
|
|
9 run make install
|
|
10 Add /usr/local/lib to /etc/ld.so.conf
|
|
11 run ldconfig
|
|
|
|
|
|
*** Installation of libraries
|
|
|
|
cd gtp
|
|
make install
|
|
Add /usr/local/lib to /etc/ld.so.conf
|
|
run ldconfig
|
|
|
|
On RedHat add /usr/local/lib to /etc/ld.so.conf
|
|
http://www.dwheeler.com/program-library/Program-Library-HOWTO/shared-libraries.html
|
|
|
|
*** Running ggsn ***
|
|
Use ggsn -h for a list of available options.
|
|
|
|
*** Running sgsnemu ***
|
|
Use sgsnemu -h for a list of available options.
|
|
|