Маршрутизация трафика WireGuard

Помогите разобраться с маршрутами. Есть два сервера на Ubuntu, S1 и S2, на каждом из них живет WireGuard. S1 основной сервер и живет в Европе, S2 живет в России. Последний я хочу подключить к S1 в качестве клиента, дабы трафик на некоторые сети, маршрутизировать от пиров сервера S1 через туннель WireGuard на S2, чтобы он выходил в интернет через его сетевой интерфейс.

На S1 несколько сетевых интерфейсов 10.7.0.1/24, 10.8.0.1/24, 10.9.0.1/24.

Создаю wg0 10.10.0.1/24 на S2, добавляю пира, скачиваю конфиг и подставляю его на S1, подключение есть пинги между серверами 10.10.0.1/32 - 10.10.0.2/32 ходят в обе стороны.

Конфиг на S2

[Interface]
ListenPort = 5555
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = 
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PreUp = 
Address = 10.10.0.1/24
SaveConfig = true
PrivateKey = PrivateKey

[Peer]
PublicKey = PublicKey
AllowedIPs = 10.10.0.2/32
Endpoint = 0.0.0.0:40070

Конфиг на S1

[Interface]
PrivateKey = PrivateKey
Address = 10.10.0.2/32

[Peer]
PublicKey = PublicKey
AllowedIPs = 10.10.0.1/24
Endpoint = 0.0.0.0:5555
PersistentKeepalive = 25

В параметр AllowedIPs на сервере S1 нельзя прописать 0.0.0.0/0, так как дефолтный маршрут изменится и связь с сервером пропадет. Пинги между сетями 10.7.0.0/24, 10.8.0.0/24, 10.9.0.0/24, 10.10.0.1/24 не ходят. Настройка net.ipv4.ip_forward=1 включена. Что можно сделать чтобы включить маршрутизацию трафика между этими сетями и выборочно (с помощью маршрутов) перенаправлять трафик на S2?


Ответы (1 шт):

Автор решения: Денис Иванов

Разделю твой вопрос на несколько. введите сюда описание изображения

чтобы S2 мог достукивать до S1 (например 10.7.0.1), на S2 нужен маршрут и разрешения в AllowedIPs

S2# ip route add 10.7.0.0/24 via 10.10.0.2 dev wg0

Чтобы клиент (например 10.7.0.2) мог отравлять трафик к 1.2.3.4 через S2

есть 2 варианта:

  1. на клиенте прописывать маршрут, чтобы запрос к 1.2.3.4 уходил в S1 если S1 не является дефолтом, для Client
Client# ip route add 1.2.3.4/32 via 10.7.0.1
  1. чтобы все запросы к 1.2.3.4 приходящие на S1 уходили на S2
S1# ip route add 1.2.3.4/32 via 10.10.0.1

(тут еще может потребоваться MASQUERADE) тк S2 не знать всех сетей на S1

→ Ссылка