У меня есть несколько серверов Wireguard, размещенных на серверах Ubuntu VPS. На каждом VPN-сервере настроены пиры. У меня настроены серверы в «сетчатой» конфигурации, и все они могут напрямую пинговать друг друга. На серверах включена переадресация ipv4.Я могу подключиться к каждому серверу в качестве однорангового узла, и мое интернет-соединение будет маршрутизироваться через этот сервер.
Я хотел бы перенаправить некоторых одноранговых узлов через несколько серверов Wireguard (с несколькими переходами), а также оставить некоторым одноранговым узлам подключение к Интернету через первый переход Wireguard. В конце концов я намерен контролировать это динамически с помощью приложения узла, выполняющего соответствующие правила iptables по мере необходимости (или каким бы ни было решение)
Например:
Одноранговый узел 1 > Сервер 1 > Сервер 2 > Интернет
Узел 2 > Сервер 1 > Интернет
Узел 3 > Сервер 3 > Интернет
Узел 4 > Сервер 2 > Сервер 1 > Интернет
Возможно ли это с помощью правил iptables? Я провел пару дней, читая подобные посты и пробуя разные вещи. Самое близкое, что я подошёл, это установить на Server1 следующее:
iptables -t nat -A PREROUTING -s 10.42.1.4(Peer1) -j DNAT --to-destination 10.42.1.2(Server2)
iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE
С использованием tcpdump -n -v -i wg0
Я вижу, что пакеты передаются с сервера 1 на сервер 2, но похоже, что правило MAQUERADE изменяет IP-адрес назначения? я пытался добавить iptables -t nat -A POSTROUTING -d 10.42.1.2 -j SNAT --to-source 10.42.1.4
тоже.
Схема установки