у меня такое работает уже несколько лет.
выбрал работу через tun т.к. не хотелось «засирать» канал всяким мусором
кусок конфига с сервака openvpn
# работаем через серитфикаты
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/rcb-serv.crt
key /etc/openvpn/keys/rcb-serv.key # This file should be kept secret
# база отозваных сертификатов
crl-verify /etc/openvpn/keys/crl.pem
# сама сетка vpn юзеров
server 192.168.30.0 255.255.255.0
# это если нужно что сервер знал о клиентах за впн тунелем со стороны клиента
route 192.168.10.0 255.255.255.0
route 192.168.11.0 255.255.255.0
# отсюда отдаются сетевые настройки для каждого клиента, идентифицируется по CNAME
client-config-dir /etc/openvpn/serv-config/
cat /etc/openvpn/serv-config/PRODUCTION
iroute 192.168.11.0 255.255.255.0
push "route 192.168.10.0 255.255.255.0"
push "route 192.168.100.0 255.255.255.0"
схема построения такая:
VPN сервер с белым ip, офисы разнесены по городу, в офисах стоит роутер который цепляется к впнсерверу, клиенты за роутером прозрачно юзают внутренние ресурсы в сетях 11/24, 10/24, 100/24.
конфиг клиента
client
dev tun
remote myserver.ru 1199
proto udp
resolv-retry infinite
nobind
pull
comp-lzo
persist-key
persist-tun
verb 3
route-method exe
route-delay 3
ca "ca.crt"
cert "client.crt"
key "client.key"
tls-auth "ta.key" 1
ns-cert-type server
auth SHA1
cipher AES-256-CBC
настройку впн сервера осваивал при помощи отличного человека vini на
ixbt