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

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

Я хотел бы добиться использования моего openvpn-соединения в качестве шлюза по умолчанию для другого хоста в той же подсети. У меня есть 2 хоста в одной подсети, оба с Ubuntu Server 14.04.

Хост А запускает OpenVPN, чтобы установить соединение с моим openvpn-exit-node. Этот хост был изменен, чтобы разрешить переадресацию IP.

Хост B является клиент-приложение-сервером и должен использовать интернет-соединение через общее openvn-соединение от хоста A. Поскольку я настроил IP-адрес шлюза хоста B на IP-адрес хоста A, трафик с хоста B теперь маршрутизируется через openvpn-соединение хоста A.

Проблема проявляется в том, что соединение openvpn на узле A разрывается (по крайней мере, каждые 24 часа здесь, в Германии) и подключается повторно; после этого хост B использует gw по умолчанию с хоста A и обходит openvpn-соединение (иногда до тех пор, пока туннель снова не заработает, и каждый раз при перезагрузке хоста B).

Достижение должно заключаться в том, чтобы хост B получал доступ в Интернет только через openvpn-соединение. Есть ли возможность гарантировать, что хост B имеет доступ к Интернету только при условии, что он использует openvn-tunnel?

Хост A (eth0 ip: 10.11.12.6/gw: 10.11.12.1) (tun0 ip: 10.8.0.146/gw: 10.8.0.145):

Хост B (eth0 ip: 10.11.12.9/gw: 10.11.12.6): - Изменен шлюз по умолчанию на IP-адрес хоста A: работает - Весь трафик использует openvpn-туннель на хосте A

Проблема: Каждый раз, когда openvpn-соединение разрывается и / или openvpn повторно подключается, хост B, кажется, переключается обратно, используя шлюз по умолчанию для хоста A. Хост B в такой момент должен оставаться без доступа в Интернет, но вместо этого он использует соединение, которое хост A использует для подключения к шлюз openvpn.

С уважением, D0C

Для этого вам следует использовать маршрутизацию на основе политик; Позволит вам создавать отдельные независимые таблицы маршрутизации и направлять трафик в любую таблицу маршрутизации на основе свойств пакета, таких как Source-IP.

Создайте новую таблицу маршрутизации следующим образом:

echo "200    OpenVPN" >>/etc/iproute2/rt_tables

Добавьте шлюз по умолчанию во вновь созданную таблицу, как показано ниже:

route add default via OpenVPN-GW-IP table OpenVPN

Разрешить маршрутизацию Host-B с помощью этой таблицы маршрутизации:

ip rule add from Host-B-IP table OpenVPN

Вам также необходимо добавить в новую таблицу следующие маршруты:

ip route add 127.0.0.0/8 dev lo table OpenVPN
ip route add YOUR-Local-Subnet dev DEVICE-NAME table OpenVPN

Обновление: используйте SNAT вместо MASQURADE,

iptables -t nat -A POSTROUTING -s 10.11.12.9 -j SNAT --to-source 10.8.0.146