У меня есть два сервера 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
или другой инструмент? Я пробовал команды в конце эта секция безрезультатно.
В вики проекта 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-мост если вы думаете, что вам нужны функции, которые дает вам мост.