Как правильно настроить OpenVPN для последовательной маршрутизации трафика через два сервера?

Добрый день!

Есть 2 сервера в интернете, на которых поднят OpenVPN. Идея состоит в том, чтобы пускать весь трафик от клиентов, которые подключаются к серверу 1, на сервер 2, а оттуда в интернет. Клиенты подключаются на eth0 сервера 1. То есть схема следующая (сети с учетом соединений через OpenVPN):

Клиент <--(10.1.0.0/24)--> сервер 1 <--(10.2.0.0/24)--> сервер 2 <--(интернет).

Трафик возвразается по тому же маршруту.

Соединение устанавливается без проблем, на первом сервере соответственно два интерфейса (tun0 — с клиентом, tun1 — с сервером 2). От первого сервера клиенту проталкивается новый шлюз по умолчанию (push "redirect-gateway def1"). Каким образом настроить OpenVPN, чтобы проталкивать нужные маршруты при такой схеме клиенту и серверу 1 для правильной марштутизации трафика?

Правильно ли добавлять такие записи в iptables?
На первом сервере:
iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j SNAT --to-source 10.2.0.2

(10.2.0.2 — tun1 на сервере 1).

На втором сервере:
iptables -t nat -A POSTROUTING -s 10.2.0.0/24 -o eth0 -j SNAT --to-source EX IP

(EX IP — eth0 на сервере 2).

Спасибо.
  • Вопрос задан
  • 6902 просмотра
Решения вопроса 1
EvilMan
@EvilMan
Достаточно клиентам отдать маршрут через первый сервер (сервер 1), а на серверах 1 и 2 настроить маршрутизацию. Нат нужно настраивать только на сервере 2, через который трафик уже в интернет уходит.
На первом сервере:
ip route add default via <server2-ip> dev tunX table 10
ip rule add from <clients-net> lookup 10 pref 10

На втором сервере надо будет уже настроить НАТ и прописать маршрут до клиентских сетей через сервер 1
ip route add <clients-net> via <server1-ip> dev tunY
iptables -t nat -A POSTROUTING --src <clients-net> -o <extiface> \
  -j SNAT --to-source <extip>

Вот как-то так.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@smartlight
1. Настраиваете маршруты через ccd на 1м и 2м серверах.
2. на 2м сервере настраиваете НАТ.

не забудьте про FORWARD — должно бьть в ACCEPT
Ответ написан
Комментировать
@v2t Автор вопроса
EvilMan, smartlight благодарю за ответы. Настроил, все работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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