aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Hainke <vincent@systemli.org>2022-01-07 00:22:00 +0100
committerNick Hainke <vincent@systemli.org>2022-01-07 08:04:00 +0100
commit98d8680a8c26adfba431da008c9a76ff85786390 (patch)
tree7618ad54d888e5b43392b7d63fb594c742b4a2bb
parent6ab905169500b17a44379d0876e94e541ce124dd (diff)
wg-installer: add ipv4 support
Add base_v4prefix to allow ipv4 mesh connections. Signed-off-by: Nick Hainke <vincent@systemli.org>
-rw-r--r--net/wg-installer/wg-server/config/wgserver.conf1
-rw-r--r--net/wg-installer/wg-server/lib/wg_functions.sh11
2 files changed, 12 insertions, 0 deletions
diff --git a/net/wg-installer/wg-server/config/wgserver.conf b/net/wg-installer/wg-server/config/wgserver.conf
index c68f0d0c0..638ac19d8 100644
--- a/net/wg-installer/wg-server/config/wgserver.conf
+++ b/net/wg-installer/wg-server/config/wgserver.conf
@@ -2,6 +2,7 @@ config server
option port_start '51820'
option port_end '52820'
option base_prefix '2002::/64'
+ option base_v4prefix '10.0.0.1/24'
option wg_key '/root/wg.key'
option wg_pub '/root/wg.pub'
option timeout_handshake '600'
diff --git a/net/wg-installer/wg-server/lib/wg_functions.sh b/net/wg-installer/wg-server/lib/wg_functions.sh
index 2d38c60c9..9a68fdce9 100644
--- a/net/wg-installer/wg-server/lib/wg_functions.sh
+++ b/net/wg-installer/wg-server/lib/wg_functions.sh
@@ -60,6 +60,14 @@ wg_register () {
wg set $ifname listen-port $port private-key $gw_key peer $public_key allowed-ips ::0/0
ip -6 a a $gw_ip_assign dev $ifname
ip -6 a a fe80::1/64 dev $ifname
+
+ v4prefix=$(uci get wgserver.@server[0].base_v4prefix)
+ if [ $? -eq 0 ]; then
+ gw_ipv4=$(owipcalc $v4prefix add $offset next 32) # gateway ip
+ gw_ipv4_assign="${gw_ipv4}/32"
+ ip a a $gw_ipv4_assign dev $ifname
+ fi
+
ip link set up dev $ifname
ip link set mtu $mtu dev $ifname
@@ -67,6 +75,9 @@ wg_register () {
json_init
json_add_string "pubkey" $wg_server_pubkey
json_add_string "gw_ip" $gw_ip_assign
+ if test -n "${gw_ipv4_assign-}"; then
+ json_add_string "gw_ipv4" $gw_ipv4_assign
+ fi
json_add_int "port" $port
echo $(json_dump)