OpenVPN com várias tabelas de roteamento

2

Estou usando um cliente openvpn, com minha configuração padrão o GW padrão é sobrescrito. (redirecionar gateway no servidor)
Eu tenho 2 tabelas de roteamento no meu cliente Linux, 1 (padrão eth0), 100 = tun0, que é adicionado pelo meu script up. O que eu preciso é dividir o roteamento usando 2 tabelas de roteamento diferentes.

configuração do cliente openvpn:

client
dev tun
proto udp
remote blea.com
auth-user-pass
persist-key
persist-tun
remote-cert-tls server
reneg-sec 0
keepalive 10 60
route-nopull
pull-filter ignore "ifconfig-ipv6"
script-security 2
up /etc/openvpn/route-up.sh
mute-replay-warnings
explicit-exit-notify 3
cipher AES-256-CBC
auth SHA512
tls-version-min 1.2

roteiro de roteamento:

if [ $(/bin/cat /etc/iproute2/rt_tables | /bin/grep $dev | /usr/bin/wc -l) -eq 0 ]; then
/bin/echo "100 tun0" >> /etc/iproute2/rt_tables

/bin/ip route add default via $route_vpn_gateway dev $dev table $dev

Há um problema, ao usar o route-nopull, a variável de ambiente $ route_vpn_gateway não é preenchida.
Quando eu desabilite o route-nopull, o gateway padrão na minha tabela de roteamento padrão é sobrescrito, então todo o tráfego passa pelo túnel. Eu não tenho acesso ao servidor, então não posso mudar nada lá.
O GW padrão que eu recebo pelo servidor OpenVPN é dinâmico, então não posso definir esta estática.

Como contornar isso?

    
por HyperDevil 19.06.2017 / 23:04

1 resposta

3

Uma maneira de fazer isso é usar a opção route-noexec (em vez de route-nopull ). Isso preencherá completamente as variáveis de ambiente route- *, mas, na verdade, não modificará sua tabela de rota, mas deixará todas as modificações de rota em seu route-up.sh

    
por 01.07.2017 / 07:01