Browse Source

remove multiple ipv6 vpn addresses and add some explanations

HgO 10 months ago
parent
commit
0b7461d45d

+ 12 - 11
conf/scripts/route-down.d/30-vpnclient-unset-server-ipv6-route

@@ -1,31 +1,32 @@
 #!/bin/bash
 
 is_serverip6route_set() {
-  local server_ip6s=${1}
+  local server_ip6=${1}
 
-  if [[ -z "${server_ip6s}" ]]; then
+  if [[ -z "${server_ip6}" ]]; then
     return 0
   fi
 
-  for server_ip6 in ${server_ip6s}; do
-    if ! ip -6 route | grep -q "^${server_ip6}"; then
-      return 1
-    fi
-  done
+  if ! ip -6 route | grep -q "^${server_ip6}"; then
+    return 1
+  fi
 }
 
 unset_serverip6route() {
-  local server_ip6s=${1}
+  local server_ip6=${1}
   local ip6_gw=${2}
   local wired_device=${3}
 
-  for server_ip6 in ${server_ip6s}; do
-    ip route delete "${server_ip6}/128" via "${ip6_gw}" dev "${wired_device}"
-  done
+  ip route delete "${server_ip6}/128" via "${ip6_gw}" dev "${wired_device}"
 }
 
 wired_device=$(ip route | awk '/default via/ { print $5; }')
 
+# See https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/#environmental-variables
+# to have a list of variables provided by OpenVPN, i.e:
+# - ifconfig_ipv6_remote
+# - net_gateway_ipv6
+
 # Check old state of the server ipv6 route
 if [[ -n "${ifconfig_ipv6_remote}" && -n "${net_gateway_ipv6}" && -n "${wired_device}" ]]; then
   if is_serverip6route_set "${ifconfig_ipv6_remote}"; then

+ 12 - 11
conf/scripts/route-up.d/30-vpnclient-set-server-ipv6-route

@@ -1,31 +1,32 @@
 #!/bin/bash
 
 is_serverip6route_set() {
-  local server_ip6s=${1}
+  local server_ip6=${1}
 
-  if [[ -z "${server_ip6s}" ]]; then
+  if [[ -z "${server_ip6}" ]]; then
     return 0
   fi
 
-  for server_ip6 in ${server_ip6s}; do
-    if ! ip -6 route | grep -q "^${server_ip6}"; then
-      return 1
-    fi
-  done
+  if ! ip -6 route | grep -q "^${server_ip6}"; then
+    return 1
+  fi
 }
 
 set_serverip6route() {
-  local server_ip6s=${1}
+  local server_ip6=${1}
   local ip6_gw=${2}
   local wired_device=${3}
 
-  for server_ip6 in ${server_ip6s}; do
-    ip route add "${server_ip6}/128" via "${ip6_gw}" dev "${wired_device}"
-  done
+  ip route add "${server_ip6}/128" via "${ip6_gw}" dev "${wired_device}"
 }
 
 wired_device=$(ip route | awk '/default via/ { print $5; }')
 
+# See https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/#environmental-variables
+# to have a list of variables provided by OpenVPN, i.e:
+# - ifconfig_ipv6_remote
+# - net_gateway_ipv6
+
 echo "[INFO] Autodetected internet interface: ${wired_device}"
 if [[ -n "${ifconfig_ipv6_remote}" ]]; then
   echo "[INFO] Autodetected IPv6 address for the VPN server: ${ifconfig_ipv6_remote}"