O Network Manager quebra rotas manuais

9

Eu tenho o Ubuntu 13.10, Saucy Salamander x64 sendo executado como convidado no VirtualBox (com o Windows 7 como host).

Eu escrevi isso /etc/network/interfacesporque preciso adicionar um grande número de rotas estáticas manuais permanentes:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp
    up ip -force -b /etc/network/eth1-routes

eth1-routes contém várias linhas do formulário:

route add 10.0.0.0/8 via 172.x.x.x dev eth1

Onde 172.x.x.xestá o gateway que o VBox NAT me fornece.

Ao executar netstat -nr, parece que todas as minhas rotas manuais foram adicionadas com êxito, incluindo rotas para chegar a dois servidores DNS via 172.x.x.x.

No entanto, o gerente de rede diz que os dois dispositivos "não são gerenciados". Se eu definir /etc/NetworkManager/NetworkManager.conf managed=true, o gerenciador de rede funcionará novamente, mas minhas rotas serão perdidas. Portanto, meu compromisso atual é definir managed=falsee comentar as eth0linhas /etc/network/interfaces.

Existe uma maneira de gerenciar um dispositivo e ainda fazer rotas manuais como acima?

Reinderien
fonte

Respostas:

4

O Network Manager não reconhece as instruções que você escreveu /etc/network/interfaces.

Assim, você pode adicionar seu script eth1-routescomo um script de expedidor para o Network Manager no Windows /etc/network/if-up.d/. Ele será executado toda vez que uma interface for ativada. Talvez você precise escrever em seu script uma "cláusula if" para adicionar apenas as rotas se eth1surgir. Como isso:

if [ "$IFACE" == "eth1" ]; then
  route add ...
  route add ...
fi
caos
fonte
5

O Network Manager gerencia suas próprias rotas estáticas - abra o gerenciador de rede e selecione "conexão com fio 1". Selecione editar. selecione a guia IPv4. Na parte inferior desta página, há um botão para "Rotas". É aí que você os adiciona. Quando concluído, o NM grava em um arquivo com permissões de raiz em seu diretório / etc / NetworkManager / system-connections / chamado "Conexão com fio 1"

Exemplo a seguir

ls -l /etc/NetworkManager/system-connections/
total 4.0K
-rw------- 1 root root 216 Aug 26 10:38 Wired connection 1

sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1

[802-3-ethernet]
mac-address=A:Real:Mac:Add:re:ss

[connection]
id=Wired connection 1
uuid=df4491fc-0981-4071-82ae-04c7b2d6d9fc
type=802-3-ethernet

[ipv6]
method=auto

[ipv4]
method=auto
route1=10.2.2.0/24,10.1.1.68,1

Onde 10.2.2.0 é a rede de destino e 10.1.1.68 é o gateway.

Fred
fonte
1

Se você deseja adicionar uma rota ao Ubuntu que persista na reinicialização e não use a interface padrão como gateway, adicione uma instrução de rota ao arquivo de configuração do NetworkManager para a interface específica.

Adicione uma rota ao arquivo de configuração / etc / NetworkManager / system-connections / "nome da conexão" adicionando a instrução de rota ao arquivo de configuração para (assumindo IPv4). A rota tem quatro partes; "o primeiro é a rede ou o endereço IPv4 de destino (ordem dos bytes da rede), o segundo é o prefixo da rede ou do endereço de destino (1 - 32), o terceiro é o próximo salto (ordem dos bytes da rede), se houver, e o quarto é o métrica de rota " .

[ipv4]
method=auto
route1=172.16.0.0/16,192.168.3.1,1

Isso equivale a definir a rota usando a seguinte instrução de rota:

route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.3.1

O nome da chave da rota é definido na Tabela 12 na documentação do desenvolvedor do NetmorkManager. Consulte o seguinte URL para obter mais informações: https://developer.gnome.org/NetworkManager/0.9/ref-settings.html

nuwandame
fonte