Ситуация нестандартная. В гугле море однотипных статей по простой настройке wireguard. У меня сложнее, идеи кончились. Думается проблема с роутами.
Есть несколько серверов, назовем их VPS1,VPS2,VPS3. на всех стоит wireguard.
VPS1 является главным сервером-хабом. IP VPS 1 = x.x.x.x На нем крутится 3 интерфейса wireguard1 (подсеть 198.1.1.0/24), wireguard2 (198.2.2.0/24), wireguard3 (198.3.3.0/24).
Мне нужно:
1. при коннекте к VPS1 (x.x.x.x: порт 1111) клиентам выдавались адреса из указанной подсети, но выхода ЗА пределы сервера у них не было, только коннекты между собой в одной подсети. Эдакая закрытая локальная сеть.
2. при коннекте к VPS1 (x.x.x.x: порт 2222) клиенты также могли общаться внутри своей подсети + также выходить в интернет через сервер VPS1 (x.x.x.x) как через впн, назовем это так. Тоесть по сути подключаясь к порту 2222 получался впн.
3. при коннекте к VPS3 (x.x.x.x: порт 3333) все как в пункте 2 но уже двойной впн. Тоесть клиент подключается к айпи VPS1 x.x.x.x порт 3333, на выходе имеет IP VPS2 y.y.y.y. В данном пункте стоит учитывать что тоннель между VPS1 и VPS2 также настроен через wireguard и работает.
А теперь к проблеме - проблема это правильные роуты.
В моем понимании.
1. По первому пункту нужны блокируещие правила. Не знаю какие.
2. По второму пункту
iptables -A FORWARD -i wireguard2 -j ACCEPT; iptables -A FORWARD -o eth0 -j ACCEPT;
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
3. По третьему пункту
На VPS1
iptables -A FORWARD -i wireguard2 -j ACCEPT && iptables -A FORWARD -o wireguard2-j ACCEPT
На VPS2
iptables -t nat -A POSTROUTING -s 198.3.3.0/24 -o eth0 -j MASQUERADE
При применении всех правил по отдельности все работает. При применении всех сразу - отключается все кроме 3 пункта.
Задача сделать такие правила - чтобы все интерфейсы работали как задумано одновременно.
Всю голову сломал, не смог извертеться.