@andrewpalich44

Несколько интерфейсов Wireguard на одном сервере. Как настроить маршрутизацию?

Ситуация нестандартная. В гугле море однотипных статей по простой настройке 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 пункта.
Задача сделать такие правила - чтобы все интерфейсы работали как задумано одновременно.

Всю голову сломал, не смог извертеться.
  • Вопрос задан
  • 1309 просмотров
Пригласить эксперта
Ответы на вопрос 1
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
1. Как минимум у вас очень общие правила iptables - без указания -s
2. У вас статическая конфигурация сети - зачем вы используете правила в PostUP ?
Опишите все нужные статические правила iptables используя IP подсети.
3. Покажите полный список правил( вывод iptables-save) сюда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы