91 lines
2.6 KiB
Plaintext
91 lines
2.6 KiB
Plaintext
|
Here is a simple setup to test GTPHub operations. The IP addresses picked will
|
||
|
work well only on a system that creates local addresses (127.0.0.123) on the
|
||
|
fly (like linux) -- you may pick of course different IP addresses.
|
||
|
|
||
|
Overview of the example setup:
|
||
|
|
||
|
sgsnemu gtphub ggsn
|
||
|
127.0.0.1 <--> 127.0.0.3 127.0.0.4 <--> 127.0.0.2
|
||
|
|
||
|
Prerequisites: openggsn.
|
||
|
|
||
|
Have a local directory where you store config files and from which you launch
|
||
|
the GSNs and the hub (they will store restart counter files in that dir).
|
||
|
In it, have these config files:
|
||
|
|
||
|
ggsn.conf:
|
||
|
|
||
|
# GGSN local address
|
||
|
listen 127.0.0.2
|
||
|
|
||
|
# End User Addresses are picked from this range
|
||
|
net 10.23.42.0/24
|
||
|
|
||
|
pcodns1 8.8.8.8
|
||
|
|
||
|
logfile /tmp/foo
|
||
|
|
||
|
gtphub.conf:
|
||
|
|
||
|
gtphub
|
||
|
bind-to-sgsns 127.0.0.3
|
||
|
bind-to-ggsns 127.0.0.4
|
||
|
ggsn-proxy 127.0.0.2
|
||
|
end
|
||
|
|
||
|
|
||
|
(
|
||
|
You may omit the ggsn-proxy if GRX ares is working, or if you add the GRX
|
||
|
address and GGSN IP address to /etc/hosts something like:
|
||
|
|
||
|
127.0.0.2 internet.mnc070.mcc901.gprs
|
||
|
|
||
|
)
|
||
|
|
||
|
|
||
|
Once the config files are in place, start the programs, in separate terminals.
|
||
|
GGSN and SGSN need to be started with root priviliges to be able to create tun
|
||
|
interfaces. GTPHub may run as unprivileged user.
|
||
|
|
||
|
The LD_LIBRARY_PATH below may be needed if OpenGGSN installed to /usr/local.
|
||
|
|
||
|
|
||
|
1. GGSN:
|
||
|
|
||
|
sudo -s
|
||
|
cd <your-test-dir>
|
||
|
LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/ggsn -f -c ./ggsn.conf
|
||
|
|
||
|
2. GTPHub:
|
||
|
|
||
|
cd <your-test-dir>
|
||
|
path/to/openbsc/openbsc/src/gprs/osmo-gtphub -c gtphub.conf #-e 1 #for DEBUG level
|
||
|
|
||
|
3. SGSN tests:
|
||
|
|
||
|
sudo -s
|
||
|
cd <your-test-dir>
|
||
|
/usr/local/bin/sgsnemu --createif -l 127.0.0.1 -r 127.0.0.3 --imsi 420001214365100 --contexts=3
|
||
|
|
||
|
Add more SGSNs using different IMSIs and local ports (if the same IMSI is used,
|
||
|
the GGSN will reuse TEIs and tunnels will be discarded automatically):
|
||
|
|
||
|
/usr/local/bin/sgsnemu --createif -l 127.0.0.11 -r 127.0.0.3 --imsi 420001214365300 --contexts=3
|
||
|
|
||
|
This shows the basic setup of GTPHub. Testing internet traffic via sgsnemu
|
||
|
still needs some effort to announce a mobile subscriber or the like (I have
|
||
|
used a real BTS, osmo-sgsn and a testing SIM in a web phone, instead).
|
||
|
|
||
|
The core capability of GTPHub is to manage more than two GSNs, e.g. an SGSN
|
||
|
contacting various GGSNs over the single GTPHub link. You would configure the
|
||
|
SGSN to use one fixed GGSN (sending to gtphub) and gtphub will resolve the
|
||
|
GGSNs once it has received the messages. So the SGSN may be behind NAT (add
|
||
|
"sgsn-use-sender" to gtphub.conf) and communicate to various GGSNs over a
|
||
|
single link to gtphub.
|
||
|
|
||
|
I hope this helps to get you going.
|
||
|
Any suggestions/patches are welcome!
|
||
|
|
||
|
~Neels
|
||
|
|