Маршрутные пакеты от одного VPN к другому
У меня есть два сервера OpenVPN (10.8.0.0 и 10.9.0.0), настроенных на моем сервере OpenSUSE. В пределах одной сети каждый компьютер виден любому другому, но я бы хотел, чтобы компьютеры были видны через сети. Я хотел бы направить пакеты следующим образом: когда пользователь (скажем, 10.8.0.6) пропингует адрес в другой VPN (10.9.0.6), пакеты направляются на 10.9.0.1, а затем на соответствующий компьютер в этом VPN. Как мне добиться этого с помощью iptables
или другой инструмент? Я попробовал команды в конце этого раздела безрезультатно.
1 ответ
Проект DD-WRT имеет несколько примеров OpenVPN в своей вики, где есть пример конфигурации, которая должна делать именно то, что вы хотите в разделе " Расширенная конфигурация: несколько маршрутизируемых сетей ".
Ключевые части, которые вы хотите иметь в виду, в этом отрывке:
Поскольку оба будут подключаться к одному и тому же серверу, вы не можете использовать один и тот же номер порта для обоих клиентов, поэтому мы дадим порт 1999 для первого клиента и 2000 для второго клиента. Кроме того, нам нужно сообщить Client1, как связаться с подсетью Client2 и наоборот. Это означает включение второй записи маршрутизации в нашу конфигурацию.
Скорее всего, вам потребуется добавить в существующую конфигурацию следующее:
Конфигурация OpenVPN для клиентов на 10.8.0.0
port 2000
# Create routes
route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.1
route add -net 10.9.0.0 netmask 255.255.255.0 gw 10.8.0.1
Конфигурация iptables для клиентов на 10.8.0.0
# Open firewall holes
iptables -I INPUT 2 -p udp --dport 2000 -j ACCEPT
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
Конфигурация OpenVPN для клиентов на 10.9.0.0
port 1999
# Create routes
route add -net 10.9.0.0 netmask 255.255.255.0 gw 10.9.0.1
route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.9.0.1
Конфигурация iptables для клиентов на 10.9.0.0
# Open firewall holes
iptables -I INPUT 2 -p udp --dport 1999 -j ACCEPT
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
Конфигурация OpenVPN для сервера
# Create routes
route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.6
route add -net 10.9.0.0 netmask 255.255.255.0 gw 10.9.0.6
Конфигурация iptables для сервера
# Open firewall holes for Client1
iptables -I INPUT 2 -p udp --dport 2000 -j ACCEPT
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
# Open firewall holes for Client2
iptables -I INPUT 2 -p udp --dport 1999 -j ACCEPT
iptables -I FORWARD -i br0 -o tun1 -j ACCEPT
iptables -I FORWARD -i tun1 -o br0 -j ACCEPT
# Allow Forwarding packets between Client1 and Client2
iptables -I FORWARD -i tun0 -o tun1 -j ACCEPT
iptables -I FORWARD -i tun1 -o tun0 -j ACCEPT
Обратите внимание, что эти инструкции предназначены для настройки маршрутизации Ethernet, которая проще в настройке и, вероятно, соответствует вашим требованиям. Однако вам следует изучить различия между мостовыми соединениями и маршрутизацией, а также обзор того, как настроить мостовые соединения Ethernet, если вы считаете, что вам нужны функции, которые предоставляет мостовое соединение.