Клиент OpenVPN имеет 2 физических интерфейса:
eth0 = 192.168.10.14/24 gw 192.168.10.1
eth1 = 192.168.10.17/24 gw 192.168.10.1
tun0 = 172.160.1.6/24 gw 172.16.1.5
Сервер где-то внешний, слушает 172.16.1.1 и имеет ip_forwarding
включен и уже настроен для POSTROUTING с помощью iptables.
eth1 должен иметь возможность продолжать общаться с внутренней LAN, но eth0 должен иметь возможность маршрутизировать весь трафик через VPN.
До сих пор мне не удалось найти правильную комбинацию ip route, добавления маршрута, изменения шлюзов и правил iptables, но способ должен быть.
Если мост OpenVPN - правильный ответ, то я согласен с этим, за исключением того, что мне никогда не удавалось его правильно настроить. Туннели - это то, что у меня лучше получается с OpenVPN.
Возможно ли объединить интерфейс tun0 и eth0? У меня не получилось, но знает ли кто обходной путь?
Вы не даете достаточно подробностей о том, чего вы пытаетесь достичь, или о настройке вашей сети, чтобы я мог дать подробный ответ.
Если вы хотите соединить две сети, ваш экземпляр OpenVPN должен создать интерфейс Tap, а не tun. Затем вы можете использовать стандартную утилиту linux brctl для соединения eth0 и tap0 (или любого другого имени интерфейса, которое вы выберете).
Возможно, вам будет проще придерживаться маршрутизируемого соединения, и в этом случае вам нужно будет разработать план адресации для всей сети и убедиться, что шлюзы в каждой из ваших локальных сетей знают (использование статических маршрутов лучше всего в двух простых случаях. -Office setup) VPN-маршрутизаторов как способ доступа к другим сетям.