diff --git a/README.md b/README.md
index 37ea1ef..e7e467e 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,3 @@
-# _Advanced Users only_
-
# openvpn-multihop
Multihop with OpenVPN Tunnels on OPNsense
@@ -8,7 +6,7 @@ Multihop with OpenVPN Tunnels on OPNsense
Check if your provider supports this. [Perfect Privacy](https://www.perfect-privacy.com/en/features/multi-hop-vpn) is known to support at least 4 Tunnel.
-Build Instructions
+# Build Instructions
``` bash
git clone https://github.com/opnsense/plugins
diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Multihop/forms/general.xml b/src/opnsense/mvc/app/controllers/OPNsense/Multihop/forms/general.xml
index d3145a1..fab01cb 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Multihop/forms/general.xml
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Multihop/forms/general.xml
@@ -18,4 +18,11 @@
If unchecked no static route entry will be added. Use only if you know what you are doing.
true
+
+ multihop.general.inet6
+
+ checkbox
+ If unchecked IP6 Traffice will not be routed trough tunnels
+ true
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Multihop/Multihop.xml b/src/opnsense/mvc/app/models/OPNsense/Multihop/Multihop.xml
index 4d3c680..f5a1e2d 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Multihop/Multihop.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Multihop/Multihop.xml
@@ -17,6 +17,10 @@
1
N
+
+ 1
+ N
+
diff --git a/src/opnsense/scripts/OPNsense/Multihop/multihop.sh b/src/opnsense/scripts/OPNsense/Multihop/multihop.sh
index c5d279b..59269d1 100755
--- a/src/opnsense/scripts/OPNsense/Multihop/multihop.sh
+++ b/src/opnsense/scripts/OPNsense/Multihop/multihop.sh
@@ -28,6 +28,7 @@
VPNID=$(pluginctl -g OPNsense.multihop | jq -r '.[].client[]? | .vpnid')
ROUTE=$(pluginctl -g OPNsense.multihop | jq -r '.general.setroute')
AUTO=$(pluginctl -g OPNsense.multihop | jq -r '.general.autorestart')
+INET6=$(pluginctl -g OPNsense.multihop | jq -r '.general.inet6')
DFL_ROUTE=$(netstat -4nr | grep default | awk '{ print $2}')
HOPS=$(echo $VPNID | wc -w)
COUNT=1
@@ -118,6 +119,10 @@ else
func_addroute $IP
fi
+ if [ $INET6 -eq 1 ]; then
+ NET6='--redirect-gateway ipv6'
+ fi
+
#Bring up the tunnels
for HOP in $VPNID
@@ -140,6 +145,7 @@ else
# before we check the status
sleep 5;
+
echo "state all" | \
nc -N -U /var/etc/openvpn/client$HOP.sock | \
grep CONNECTED > /dev/null
@@ -149,14 +155,13 @@ else
func_stop
fi
else
-
#Start last tunnel
openvpn --config /var/etc/openvpn/client$HOP.conf \
--route-nopull \
- --redirect-gateway ipv6 \
- --redirect-gateway def1
+ --redirect-gateway def1 \
+ $NET6
- sleep 5;
+ sleep 5;
echo "state all" | \
nc -N -U /var/etc/openvpn/client$HOP.sock | \
@@ -174,14 +179,14 @@ else
if [ $AUTO -eq 1 ]; then
DPING=$(netstat -4nr | grep ovpnc | grep UGS | \
- awk '{ print $2 }' | sort -u)
-
- for GW in $DPING
- do
- dpinger -o /dev/null -S -L 35% \
- -C "/usr/local/opnsense/scripts/OPNsense/Multihop/multihop.sh restart" \
- -p /var/run/dpinger-multihop-`echo $GW | sed 's/\./-/g'`.pid $GW
- done
+ awk '{ print $2 }' | sort -u)
+
+ for GW in $DPING
+ do
+ dpinger -o /dev/null -S -L 35% \
+ -C "/usr/local/opnsense/scripts/OPNsense/Multihop/multihop.sh restart" \
+ -p /var/run/dpinger-multihop-`echo $GW | sed 's/\./-/g'`.pid $GW
+ done
fi
fi
#End Tunnel Function
@@ -190,13 +195,13 @@ fi
case $1 in
start) func_start
- func_check
+ func_check
;;
stop) func_stop
;;
restart) func_stop
- func_start
- func_check
+ func_start
+ func_check
;;
status) func_check
;;