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.
|
||
|
|