Temat: OpenVPN w trybie tap, przekierowanie ruchu

Walczę z ustawieniem VPN aby cały ruch był przez niego kierowany.
Wgrałem na Nexxa WT3020F ostatnie czyste LEDE, dodałem easyconfig, zainstalowałem OpenVPN i skonfigurowałem klienta w trybie tap i to działa bo na serwerze widać urządzenie na liście klientów.
Nie mogę rozsupłać w jaki sposób ustawić klienta aby cały ruch szedł przez VPN?

Oto co zrobiłem na routerze kliencie:

opkg update
opkg install easyconfig
# opkg install uhttpd
/etc/init.d/uhttpd enable

uci set uhttpd.main.ubus_prefix=/ubus
uci set uhttpd.main.home='/www'
uci commit uhttpd

/etc/init.d/rpcd restart
/etc/init.d/uhttpd restart

opkg install chat comgt-ncm comgt uqmi usb-modeswitch
opkg install kmod-usb-net-cdc-ether kmod-usb-net-cdc-ncm kmod-usb-net-huawei-cdc-ncm
opkg install kmod-usb-net-qmi-wwan kmod-usb-net-sierrawireless kmod-usb-net-rndis
opkg install kmod-usb-serial-wwan kmod-usb-serial
opkg install kmod-usb-serial-option kmod-usb-serial-qualcomm kmod-usb-serial-sierrawireless

opkg install openvpn-openssl

uci set openvpn.klient=openvpn
uci set openvpn.klient.enabled=1
uci set openvpn.klient.dev=tap
uci set openvpn.klient.proto=tcp
uci set openvpn.klient.log=/tmp/openvpn.log                
uci set openvpn.klient.verb=3
uci set openvpn.klient.ca=/etc/openvpn/ca.crt
uci set openvpn.klient.cert=/etc/openvpn/klient.crt
uci set openvpn.klient.key=/etc/openvpn/klient.key
uci set openvpn.klient.client=1
uci set openvpn.klient.remote_cert_tls=server
uci set openvpn.klient.remote="adres_serwera 1195"
uci commit openvpn

/etc/init.d/openvpn enable
/etc/init.d/openvpn start


Ponieważ w założeniach było, że klient ma otrzymywać adres z puli sieci lokalnej, należy jeszcze utworzyć odpowiednie połączenie (bridge) pomiędzy OpenVPN a interfejsem lan. W tym celu tworzymy dodatkowy plik zawierający polecenia łączenia tych interfejsów przy starcie systemu (np o nazwie /etc/init.d/openvpn-startup)


    #!/bin/sh /etc/rc.common
    
    START=94
    
    start() {
        openvpn --mktun --dev tap0
        brctl addif br-lan tap0
        ifconfig tap0 0.0.0.0 promisc up
    }
                                                                                                            
    stop() {
        ifconfig tap0 0.0.0.0 down
        brctl delif br-lan tap0
        openvpn --rmtun --dev tap0
    }

Zostaje jeszcze włączenie tego pliku do procedur startowych systemu


    # chmod 755 /etc/init.d/openvpn-startup
    # /etc/init.d/openvpn-startup enable
    # /etc/init.d/openvpn-startup start

I teraz, jeśli na routerze jest uruchomiony DHCP to urządzenie wpięte w switch pobiera adres lokalny, natomiast jeśli wyłączę DHCP i ustawię na sztywno adres z sieci VPN to nie pobiera adresu z DHCP serwera, a bym chciał aby tak to działało (aby cały ruch był kierowany przez VPN). Kiedy na urządzeniu klienckim ustawię sztywno adres to na router kliencki VPN mogę się dostać, ale na serwer już nie.

Co pominąłem?

Sieć wygląda tak:

serwer openvpn (DHCP) <router z tomato> -- internet -- klient openvpn (cały ruch przez vpn) <router z lede>

Dodam że kiedy klientem openvpn jest router z tomato to to działa.
Konfig z klienta tomato:

root@karol:/tmp/etc/openvpn/client1# cat config.ovpn
# Automatically generated configuration
daemon
client
dev tap11
proto tcp-client
remote adres_serwera 1195
resolv-retry 30
nobind
persist-key
persist-tun
comp-lzo adaptive
verb 3
ca ca.crt
cert client.crt
key client.key
status-version 2
status status

# Custom Configuration
script-security 2
up /tmp/bridgeTAP
log-append /var/log/openvpn.log

Pewnie jest to jakaś bzdurka, ale nie mogę znaleźć na nią odpowiedzi.