| == Running OsmoGGSN |
| |
| The OsmoGGSN executable (`osmo-ggsn`) offers the following command-line |
| arguments: |
| |
| === SYNOPSIS |
| |
| *osmo-ggsn* [-h|-V] [-D] [-c 'CONFIGFILE'] |
| |
| === OPTIONS |
| |
| *-h, --help*:: |
| Print a short help message about the supported options |
| *-V, --version*:: |
| Print the compile-time version number of the OsmoBTS program |
| *-D, --daemonize*:: |
| Fork the process as a daemon into background. |
| *-c, --config-file 'CONFIGFILE'*:: |
| Specify the file and path name of the configuration file to be |
| used. If none is specified, use `osmo-ggsn.cfg` in the current |
| working directory. |
| |
| === Routing |
| |
| Operating the OpenGGSN tun device naturally creates a network setup with |
| multiple interfaces. Consider: |
| |
| * Typical Linux setups prevent forwarding of packets between separate |
| interfaces by default. To let subscribers reach the internet uplink from the |
| tun device, it may be required to enable IP forwarding. |
| |
| * Having a locally defined address range assigned to the tun device requires |
| either sensible routing for this address range, or that masquerading is |
| enabled to allow your single uplink IP address to "proxy" for the tun. |
| |
| These are decisions to be made on a network administration level. |
| |
| In a trivial case where you have a single box serving GPRS to few subscribers |
| on an arbitrary IP address range not known in the larger network, the easiest |
| way to enable GPRS uplink would be to enable IP forwarding and masquerading. |
| |
| To manually enable IPv4 forwarding and masquerading ad-hoc, you can do: |
| |
| ---- |
| sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" |
| iptables -t nat -A POSTROUTING -o '*' -j MASQUERADE |
| ---- |
| |
| (You may want to replace `*` with the network device name, like `-o eth0`) |
| |
| There are various ways to enable these settings persistently, please refer to |
| your distribution's documentation -- e.g. look for @net.ipv4.ip_forward=1@ in |
| @/etc/sysctl.d/@, and https://wiki.debian.org/iptables for masquerading. |
| |
| === Multiple instances |
| |
| Running multiple instances of `osmo-ggsn` is possible if all GGSN instances |
| are binding to different local IP addresse and all other interfaces (VTY, |
| OML) are separated using the appropriate configuration options. The IP based |
| interfaces are binding to local host by default. In order to separate the |
| processes, the user has to bind those services to specific but different |
| IP addresses. |
| |
| The VTY and the control interface can be bound to IP addresses from the loopback |
| address range. |
| |
| .Example: Binding VTY and control interface to a specific ip-address |
| ---- |
| line vty |
| bind 127.0.0.2 |
| ctrl |
| bind 127.0.0.2 |
| ---- |
| |
| Also make sure to place each instance's GTP bind on a separate IP address (GTP |
| uses a port number that is fixed in the GTP specifications, so it will not be |
| possible to pick differing ports on the same IP address), like: |
| |
| ---- |
| ggsn ggsn0 |
| gtp bind-ip 127.0.0.2 |
| ---- |