diff options
author | Wojciech Kosior <kwojtus@protonmail.com> | 2020-05-29 12:58:12 +0200 |
---|---|---|
committer | Wojciech Kosior <kwojtus@protonmail.com> | 2020-05-29 12:58:12 +0200 |
commit | c03e009d01ebe2e55a4383e934385dabd9ea0749 (patch) | |
tree | 95228b48146ae05e19005246831b450171f901ac /src/netns-script | |
parent | 459fd487fcbdc33fcccddbf4c82eae048275ba51 (diff) | |
download | 0tdns-c03e009d01ebe2e55a4383e934385dabd9ea0749.tar.gz 0tdns-c03e009d01ebe2e55a4383e934385dabd9ea0749.zip |
move sources to src/
Diffstat (limited to 'src/netns-script')
-rwxr-xr-x | src/netns-script | 38 |
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 |