Eu uso o Ubuntu desde o Ubuntu 8.10; hoje estou trabalhando com o Ubuntu 12.04 Server.
Estou tendo dificuldade em manter rotas estáticas durante a inicialização. Eu normalmente colocava os comandos de rota
/sbin/route add -net <IP>/<MASK> <GW> dev <ethX>
em /etc/rc.local
ou eu iria criar um arquivo (chamado routes
) dentro do diretório /etc/network/if-up/
, mas noto que no Ubuntu 12.04 não está funcionando.
Se eu digitar os comandos no shell, eles funcionarão, mas os mesmos comandos não funcionarão quando estiverem no arquivo especificado.
Eu já tentei mudar o nome do arquivo para outros nomes, pensando que meu nome de arquivo ( routes
) poderia estar errado no Ubuntu 12.04, mas isso também não funcionou.
Percebo também que o comando /sbin/ifconfig
funciona, menos o /sbin/route
.
O que mudou na configuração da rede?
Como posso definir rotas estáticas no Ubuntu 12.04?
fonte
your_command > stderr.txt 2>&1
) e inspecionar sua saída ...ip add
eip route
. Um comando para governar a rede. :)man 5 interfaces
Respostas:
Você pode colocar rotas estáticas em
/etc/network/interfaces
:fonte
up ip route add 192.168.0.0/24 via 192.168.1.1
Descobri muitas vezes que o local correto para definir uma rota estática é em / etc / network / interfaces, tudo bem se você for reiniciar a rede globalmente com /etc/init.d/networking restart por exemplo. Mas se você usará o ifdown e o ifup para desligar individualmente uma interface, o ifup terminará com o erro:
Por isso, tenta definir uma rota, mas já está definida. A interface estará funcionando de qualquer maneira, mas, se o ifup não atualizar / executar / rede / ifstate, da próxima vez que você nos enviar, não será possível fazer isso, a menos que você use o sinalizador --force.
Para fazer com que o ifup continue configurando mesmo se as rotas já estiverem definidas, você pode usar este formato ao definir rotas em / etc / network / interfaces
Dessa forma, você terá o aviso na saída, mas a configuração da interface será concluída
fonte
ifconfig
manualmente, em vez de executarifdown
, desejam recuperar-se usando as ferramentas corretas. Portanto, é útil que essas ferramentas sejam resistentes a um estado inesperado enquanto tentam corrigi-lo. A|| true
sugestão é boa. Adicionar uma linha descendente também é útil.up ip route replace 172.16.0.0/24 via 192.168.10.1
"replace" adicionaria a rota se ela ainda não existir, mas se existir uma rota com o mesmo seletor, ela será substituída pela atual, mesmo que elas tenham o mesmo destino.Você pode tentar isso (adicioná-lo a
/etc/network/interfaces
), esta é a maneira quase completa de definir rotas:fonte
Existe um pacote ifupdown-extra disponível no Ubuntu.
Ele fornece scripts automáticos (instalados em
/etc/network/*/
), um dos quais é usado para adicionar rotas estáticas.O arquivo de configuração para isso é
/etc/network/routes
A parte superior deste arquivo de configuração tem uma boa descrição:
Um exemplo de rota que eu uso é:
fonte
o que funcionou para nós foi
Eu costumava rodar em um Mac:
mas em um ubuntu o "gw" entre IPs e a última parte "netmask" estava ausente (também -n não é necessário no ubuntu)
fonte
Eu prefiro usar
nmcli
.Por exemplo:
Depois disso, aplique as alterações reiniciando o serviço NetworkManager:
fonte
Usando
nmcli
eu era capaz de executar uma solução persistente (a solução @isapir não funcionava no meu dispositivo).Por exemplo:
Depois disso, é possível aplicar as alterações configurando a conexão para baixo e para cima novamente (não é necessário reiniciar completamente o NetworkManager):
Para ver as conexões atuais, execute:
fonte