Я предполагаю, что вы используете OpenVPN в конфигурации маршрутизации (устройство Tun не может использоваться в режиме моста). Когда OpenVPN находится в режиме моста, этого должно быть достаточно, чтобы подключить устройство к вашему мосту на стороне клиента.
В режиме маршрутизации вы должны решить, как настроить маршрутизацию, вы можете использовать NAT для своих виртуальных машин, а затем маршрутизировать трафик через vpn. Чтобы включить пересылку для всех интерфейсов:
sysctl net.ipv4.conf.all.forwarding=1
И настройте соответствующие правила iptable для разрешения перенаправленного трафика и включения NAT с использованием цели MASQUERADE
:
iptables -A FORWARD -i vboxnet0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o vboxnet0 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Наконец, вы можете использовать политику маршрутизации для маршрутизации всего вашего гостевого трафика через vpn:
# name routing table as vguest
echo 100 vguest >> /etc/iproute2/rt_tables
# use vguest routing table for traffic from 10.0.0.0/24 (guest network)
ip rule add from 10.0.0.0/24 table vguest
# default route via openvpn gateway
ip route add default via 10.8.0.1 dev tun0 table vguest
# flush route cache
ip route flush cache
В качестве альтернативы вы можете настроить другого гостя для запуска openvpn или запуска openvpn в отдельном сетевом пространстве имен linux. NAT и пересылка могут быть выполнены, используя шаги, описанные выше.