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