Configure o roteamento permanente (Ubuntu 13.04) [duplicado]

12

Eu tenho 2 conexões: wlan0 (gw: 192.168.1.1) e eth0 (gw: 192.168.2.1).
Minha conexão padrão é wlan0 , mas eu queria que alguns sites carregassem através do meu eth0 , então eu configurei roteamento para esses sites / IPs assim:

route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0

Isso funciona, no entanto não é permanente (desaparece após a reinicialização). Eu tentei colocar esse código em /etc/network/interfaces assim:

up route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0

mas quando eu reinicio o Ubuntu, ele começa sem rede (falha). Eu também coloco essas linhas no arquivo:

auto eth0
address 192.168.2.125
gateway 192.168.2.1
netmask 255.255.255.0

mas ainda inicializa o sistema sem rede.

Atualmente coloquei o comando route em /etc/rc.local , funciona, mas não é permanente, porque quando eu reinicio / reconecto minha eth0 (por algum motivo), o roteamento desaparece .

Algumas notas:
Eu tenho longa lista de IPs para rota.
Meu roteador, que eu conectei eth0 , está definido como DHCP.
Eu tentei conectar eth0 tanto a maneira estática quanto a DHCP.

Obrigado pela sua ajuda!

    
por Azamat 01.09.2013 / 10:08

2 respostas

9

No meu sistema funcionou quando eu fiz um script na pasta /etc/network/if-up.d/ chamado script com permissões de execução 755:

#ls -la /etc/network/if-up.d/script
-rwxr-xr-x 1 root root   46 Okt 15 11:46 script

Lá você pode adicionar o comando para executar quando a conexão for estabelecida, no seu caso:

#cat /etc/network/if-up.d/script
#!/bin/bash
# Check for specific interface if desired
[ "$IFACE" != "eth0" ] || exit 0
# Adding additional routes on connection
route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0
route add ...
route add ...

Você não precisa adicionar algo em /etc/network/interfaces além de auto eth0 e iface eth0 inet dhcp ou o que tiver lá. O NetworkManager chama os scripts neste diretório por exec run-parts /etc/network/if-up.d no script /etc/NetworkManager/dispatcher.d/01ifupdown . Você pode testar isso por (no meu caso):

# run-parts --test /etc/network/if-up.d
/etc/network/if-up.d/000resolvconf
/etc/network/if-up.d/avahi-autoipd
/etc/network/if-up.d/avahi-daemon
/etc/network/if-up.d/ethtool
/etc/network/if-up.d/ip
/etc/network/if-up.d/ntpdate
/etc/network/if-up.d/openssh-server
/etc/network/if-up.d/openvpn
/etc/network/if-up.d/script <---- your script here
/etc/network/if-up.d/upstart
/etc/network/if-up.d/wpasupplicant
    
por chaos 15.10.2013 / 11:54
5

A sintaxe para adicionar rotas às suas interfaces é a seguinte:

up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

Você não precisa adicionar o dispositivo ao final.

Exemplo de arquivo de interfaces:

auto eth0
iface eth0 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

Baseado em informações de: Como definir rotas estáticas no servidor Ubuntu?

    
por NGRhodes 15.10.2013 / 12:26