From 458606649eb1575c44fa0969ce5d8ff538a13d2a Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sun, 24 Sep 2023 18:56:50 +0200 Subject: [PATCH] bundles/wireguard: add option to route networks through vpn --- bundles/wireguard/metadata.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bundles/wireguard/metadata.py b/bundles/wireguard/metadata.py index b739efa..a7f3000 100644 --- a/bundles/wireguard/metadata.py +++ b/bundles/wireguard/metadata.py @@ -235,6 +235,8 @@ def interface_ips(metadata): snat_ip = metadata.get('wireguard/snat_ip', None) for peer, config in sorted(metadata.get('wireguard/peers', {}).items()): + routes = {} + if '/' in config['my_ip']: my_ip = config['my_ip'] else: @@ -243,8 +245,18 @@ def interface_ips(metadata): ips = {my_ip} if snat_ip: ips.add(snat_ip) + + their_ip = config['their_ip'] + if '/' in their_ip: + their_ip = their_ip.split('/')[0] + + for route in config.get('routes', set()): + routes[route] = {'via': their_ip} + interfaces[f'wg_{config["iface"]}'] = { + 'activation_policy': 'up' if config.get('auto_connection', True) else 'manual', 'ips': ips, + 'routes': routes, } return { 'interfaces': interfaces,