Конечная точка 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 при запуске / успешной настройке соединения.