[Solved] Прописать маршрут через IP адрес который не в моей подсети

Есть два сервера. Основной (Gentoo) и вспомогательный (виртуальный/Centos). Основной имеет IP внешний A.A.A.A, вспомогательный имеет внешний IP B.B.B.B На вспомогательном поднят VPN IPSEC с поставщиком услуг. С вспомогательного идёт подключение по VPN к 172.16.110.1.

Надо с основного подключиться к 172.16.110.1

На вспомогательном был поднят OpenVPN клиент, который подключался к моему основному серверу + прописано правило -A POSTROUTING -s ВПН_ИП_ОСНОВНОГО/32 -d 172.16.110.1/32 -j SNAT --to-source B.B.B.B На основном я прописывыл route add 172.16.110.1/32 gw ВПН_ИП_ВСПОМОГАТЕЛЬНОГО

Все хорошо, только впн лёг по независимым от меня причинам и нельзя пока поднять (просьба пока не спрашивать про это).

И вот я пытаюсь сделать проброс без впн route add 172.16.110.1/32 gw B.B.B.B А на вспомогательном думал прописать -A POSTROUTING -s A.A.A.A/32 -d 172.16.110.1/32 -j SNAT --to-source B.B.B.B

Но при добавлении route add 172.16.110.1/32 gw B.B.B.B выдает ошибку SIOCADDRT: Network is unreachable

насколько я понимаю, я не могу указать в качестве шлюза внешний ип адрес вспомогательного сервера, т.к. он не в подсети основного сервера.

Буду признателен за любую информацию. Спасибо

Что значит "вспомогательный"?

Что значит "вспомогательный"? Как он реализован? Контайнер/ВМ на главном или на другом сервере? Дай схему сети и уже прописанные маршруты.

вспомогательный - это

вспомогательный - это виртуальная машина, которая развернута на другом физическом сервере в другой стране.
Схематически так обрисовал.
https://ibb.co/cJ62BzZ

я думал добавить route add 172.16.110.1/32 gw B.B.B.B (понимаю сейчас что невозможно добавлять в качестве шлюза ип не из моей подсети)
чтобы весь трафик на основном сервере A.A.A.A, который направлен на 172.16.110.1 переадресовывался на внешний ип адрес B.B.B.B
И на виртуальном сервере по правилам iptables перекидывать трафик на 172.16.110.1 подменяя IP-адрес на B.B.B.B вместо A.A.A.A

и это в принципе работает, когда я подымал OpenVPN между A.A.A.A и B.B.B.B
я указывал в route add в качестве gw OpenVPN IP адрес сервера B.B.B.B

но VPN не работает и непонятно когда заработает (по независимым от меня причинам).

пока вышел из ситуации через

iptables -t nat -A PREROUTING -p tcp --dport 40001 -i eth0 -j DNAT --to 172.16.110.1:2222
iptables -A FORWARD -p tcp -d 172.16.110.1 --dport 2222 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -p tcp -d 172.16.110.1 --dport 2222 -j MASQUERADE

но так смог подключиться к одному из поставщиков услуг, к другому не могу и пока не могу понять почему

Может кому

Может кому понадобится.

Решился через iptables вопрос.

eth0 - интерфейс внешнего IP адреса
2222 - порт для подключения к поставщику услуг

На виртуальном сервере:

iptables -t nat -A PREROUTING -p tcp --dport 40001 -i eth0 -j DNAT --to 172.16.110.1:2222
iptables -A FORWARD -p tcp -d 172.16.110.1 --dport 2222 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -p tcp -d 172.16.110.1 --dport 2222 -j MASQUERADE

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".