bash command / script para redefinir a rota padrão

1

Eu gerencio vários roteadores OpenWrt (embedded linux) para os quais escrevi scripts bash para executar um cliente Openconnect VPN. O cliente usa "vpnc-script" para configurar o roteamento, que substitui a rota padrão fornecida pelo DHCP inicial.

Meu problema é que, quando o túnel entra em colapso ou o processo é eliminado, a rota padrão não é redefinida, deixando o roteador sem nenhuma rota padrão para reconexão.

Eu tenho resolvido isso até agora definindo manualmente uma variável com o endereço IP do gateway. No entanto, não acho que isso seja necessário; e, além disso, quando o roteador é movido (para fornecer uma conexão VPN atrás de outro gateway), a variável de gateway deve ser alterada manualmente no script.

Como a rota padrão está configurada corretamente (automaticamente) quando o roteador inicializa, tenho certeza que deve haver uma maneira fácil de ativá-la mais tarde, mas, para o resto de mim, não consigo encontrá-la!

Existe uma maneira fácil de dizer ao sistema Linux para redefinir a rota padrão?

    
por 3n4rch3 01.07.2015 / 08:05

2 respostas

0

A rota padrão é apenas outra rota. Se você removê-lo, o kernel não terá como retê-lo. É apenas a configuração de tempo de execução que pode mudar.

Se você configurou sua interface em algum lugar, pode tentar reiniciar a interface (como mencionou em sua própria resposta). Se você ainda não fez isso, precisará de outra solução.

Eu posso ver duas opções:

  • Quando você configura a interface em seu script de configuração vpn, primeiro leia a rota padrão antiga e armazene-a em outro local. Então, quando o túnel cair, você pode acionar outro script que lê o que você armazenou e aplica novamente.
  • O script de configuração da vpn funcionará com uma tabela de roteamento separada, que você torna o padrão. Então, quando a interface cair, tudo o que você precisa fazer é mudar as tabelas de roteamento novamente.
por 01.07.2015 / 09:33
0

Duh. Não sei por que em todos os meus scripts eu nunca pensei nisso antes, mas uma maneira fácil de fazer isso é redefinir a interface:

ip link set eth0 down
ip link set eth0 up
    
por 01.07.2015 / 08:29