Конечная точка OpenVPN для конечной точки с использованием реальных IP-адресов
Я хочу соединить два сервера друг с другом через Интернет. По разным причинам я не могу использовать IPSec для этого.
Я хотел бы, чтобы трафик был прозрачно зашифрован, как если бы я использовал транспортный режим IPSec. Я решил использовать маршрутизацию для этого (но я открыт для лучших альтернатив)
Мой туннель на 10.255.255.0/30
А использует .1
, Автобусы .2
, Допустим, сервер А находится на 192.168.0.100
и сервер B 172.16.0.200
,
Хотя я мог бы добавить маршрут для шифрования всего трафика (используя на ip route add 172.16.0.200/32 dev tun0 via 10.255.255.2
), это убивает туннель, потому что трафик OpenVPN использует тот же удаленный IP-адрес для поддержания туннеля.
Мне нужен способ для маршрутизации фактического туннеля OpenVPN через eth0
но в противном случае использовать tun0
для переноса всего трафика между серверами A и B. Я включил ip_forward на обоих серверах и соответствующие правила брандмауэра, чтобы разрешить трафик, но я не уверен, с чего начать в iptables для достижения этой цели.
2 ответа
Я думаю, что вам нужна дополнительная таблица маршрутизации для всего трафика между 2 хостами, кроме openvpn. Вы можете попробовать что-то вроде этого:
iptables -t mangle -A OUTPUT -d 172.16.0.200/32 -p <vpn_protocol> ! --dport <vpn_port> -j MARK --set-mark 2
ip route add default via 10.255.255.2 dev tun0 table 2
ip rule add fwmark 2 table 2
по обе стороны от вашего туннеля
Вы должны добавить маршрут к удаленной сети через интерфейс туннелирования и более конкретный маршрут, гарантирующий, что ваш трафик на удаленный шлюз OpenVPN не будет отправлен через интерфейс туннеля. Пример:
ip route add 192.168.0.0/24 via 10.255.255.2 dev tun0
ip route add 192.168.0.100 via 172.16.0.1 dev eth0
Первый ip route
добавляет маршрут к сети назначения, в то время как второй ip route
добавляет маршрут хоста к шлюзу OpenVPN, расположенному в той же сети. 172.16.0.1
является шлюзом с допустимым маршрутом до 192.168.0.100 и eth0
это локальный интерфейс, подключенный к той же сети, что и шлюз. Обратите внимание, что первый ip route
было бы ненужным, если вы настроили OpenVPN с route
а также push "route ..."
операторы, которые будут добавлены демоном OpenVPN при запуске / успешной настройке соединения.