aboutsummaryrefslogtreecommitdiff
path: root/src/netns-script
diff options
context:
space:
mode:
authorWojciech Kosior <kwojtus@protonmail.com>2020-05-29 12:58:12 +0200
committerWojciech Kosior <kwojtus@protonmail.com>2020-05-29 12:58:12 +0200
commitc03e009d01ebe2e55a4383e934385dabd9ea0749 (patch)
tree95228b48146ae05e19005246831b450171f901ac /src/netns-script
parent459fd487fcbdc33fcccddbf4c82eae048275ba51 (diff)
download0tdns-c03e009d01ebe2e55a4383e934385dabd9ea0749.tar.gz
0tdns-c03e009d01ebe2e55a4383e934385dabd9ea0749.zip
move sources to src/
Diffstat (limited to 'src/netns-script')
-rwxr-xr-xsrc/netns-script38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/netns-script b/src/netns-script
new file mode 100755
index 0000000..ba2d226
--- /dev/null
+++ b/src/netns-script
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# adapted from
+# https://unix.stackexchange.com/questions/149293/feed-all-traffic-through-openvpn-for-a-specific-network-namespace-only
+
+# vpn_wrapper.sh creates another script of name helper_script<timestamp>.sh,
+# which gets called by openvpn process, exports NAMESPACE_NAME and WRAPPER_PID
+# variables and then runs this script
+
+case $script_type in
+ up)
+ env
+ ip netns add $NAMESPACE_NAME
+ ip netns exec $NAMESPACE_NAME ip link set dev lo up
+ ip link set dev "$1" up netns $NAMESPACE_NAME mtu "$2"
+ ip netns exec $NAMESPACE_NAME ip addr add dev "$1" \
+ "$4/${ifconfig_netmask:-30}" \
+ ${ifconfig_broadcast:+broadcast "$ifconfig_broadcast"}
+ if [ -n "$ifconfig_ipv6_local" ]; then
+ ip netns exec $NAMESPACE_NAME ip addr add dev "$1" \
+ "$ifconfig_ipv6_local"/112
+ fi
+ ;;
+ route-up)
+ ip netns exec $NAMESPACE_NAME ip route add default via "$ifconfig_remote"
+
+ if [ -n "$ifconfig_ipv6_remote" ]; then
+ ip netns exec $NAMESPACE_NAME ip route add default via \
+ "$ifconfig_ipv6_remote"
+ fi
+
+ # notify our sh process, that openvpn finished initializing
+ kill -usr1 $WRAPPER_PID
+ ;;
+ down)
+ ip netns delete $NAMESPACE_NAME
+ ;;
+esac