Назад | Перейти на главную страницу

Как я могу выполнить маршрутизацию между сайтами OpenVPN без NAT

У меня два сервера OpenVPN в разных местах.
Каждая машина в одном месте может проверять связь и подключаться к каждой машине в другом месте.

Моя проблема в том, что я использую SSH для подключения с машины A в месте 1 машина B в месте 2 и проверить машину Bс auth.log, Я вижу, что соединение исходит из места 2 OpenVPN IP (10.0.0.2).

это это мои настройки OpenVPN и структура сети.

Правила межсетевого экрана:
Машина А

iptables -t filter -A FORWARD -i tun0 -o eth1 -j ACCEPT  
iptables -t filter -A FORWARD -i eth1 -o tun0 -j ACCEPT 
iptables -t nat -A POSTROUTING -o tun0 -j SNAT --to-source 10.0.0.1
iptables -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

Машина B

iptables -t filter -A FORWARD -i tun0 -o eth1 -j ACCEPT
iptables -t filter -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j SNAT --to-source 10.0.0.2
iptables -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

Оба сервера OpenVPN имеют два физических интерфейса; eth0-external и eth1-LAN, а также OpenVPN tun0.

Думаю, моя проблема в том, что я использую NAT, но не знаю, как правильно маршрутизировать. Мне нужен реальный IP-адрес исходной машины.

Итак, в приведенном выше случае я хотел бы увидеть IP-адрес LAN (10.3.0.100) машины A в машине Bс auth.log когда A подключается к B.

Спасибо за помощь!

Я решил свою проблему, и теперь она у меня работает. Я изменил правила iptables для обеих машин на это:

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE
iptables -t filter -A FORWARD -i tun0 -o eth1 -j ACCEPT
iptables -t filter -A FORWARD -i eth1 -o tun0 -j ACCEPT