]> Cypherpunks.ru repositories - govpn.git/blob - utils/addroute.sh
Fix docstring splitted lines
[govpn.git] / utils / addroute.sh
1 #!/bin/sh -x
2
3 # A simple script handling default routing for GoVPN,
4 # inspired by vpnc-script, but much simpler.
5
6 # List of parameters passed through environment
7 # - reason               -- why this script is called:
8 #                           pre-init, connect, disconnect
9 # - GOVPN_REMOTE         -- public address of VPN gateway
10 # - GOVPN_IFACE          -- tap device
11 # - INTERNAL_IP4_ADDRESS -- e.g. 172.0.0.2/24
12 # - INTERNAL_IP4_GATEWAY -- e.g. 172.0.0.1
13
14
15 set_up_dev() {
16   ip tuntap add dev $GOVPN_IFACE mode tap
17 }
18
19
20 tear_down_dev() {
21   ip tuntap del dev $GOVPN_IFACE mode tap
22 }
23
24
25 do_connect() {
26   local OLDGW=$(ip route show 0/0 | sed 's/^default//')
27   ip link set dev $GOVPN_IFACE up
28   ip addr add $INTERNAL_IP4_ADDRESS dev $GOVPN_IFACE
29   ip route add $GOVPN_REMOTE $OLDGW
30   ip route add 0/1 via $INTERNAL_IP4_GATEWAY dev $GOVPN_IFACE
31   ip route add 128/1 via $INTERNAL_IP4_GATEWAY dev $GOVPN_IFACE
32 }
33
34
35 do_disconnect() {
36   ip route del $GOVPN_REMOTE
37 }
38
39
40 case $reason in
41   pre-init)
42     set_up_dev
43     ;;
44   connect)
45     do_connect
46     ;;
47   disconnect)
48     do_disconnect
49     ;;
50 esac