Como definir a rota permanente no Ubuntu 10.10?

6

Estou tentando configurar minha rede sem fio para usar o gateway 10.0.1.252 ao acessar endereços IP que começam com 10.0.0.

Eu segui algumas explicações sobre como fazer isso com o arquivo de interfaces, mas sem sucesso.

Este é o conteúdo do meu arquivo inicial / etc / network / interfaces:

auto lo
iface lo inet loopback

Depois de várias horas pesquisando e lendo, fiz com que parecesse assim:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth1

iface eth1 inet static
address 10.0.1.171
netmask 255.255.255.0
broadcast 10.0.1.255
gateway 10.0.1.254

# static route
up route add -net 10.0.0.0/24 gw 10.0.1.252 dev eth1

A configuração mencionada funciona após eu reiniciar a rede e até reiniciar o Ubuntu. Depois de reiniciar o Ubuntu, perco o gerenciador de rede e não consigo me conectar à Internet ou aos endereços pretendidos 10.0.0.x.

O que estou fazendo errado, ou há uma maneira mais simples de definir uma rota permanente em versões mais recentes do Ubuntu?

Só para mencionar que estou configurando conexão sem fio, porque não uso um com fio.

UPDATE 1: (~ $ ifconfig)

eth0      Link encap:Ethernet  HWaddr 00:24:81:64:9a:5c  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:17 

eth1      Link encap:Ethernet  HWaddr 00:21:00:d8:25:45  
          inet addr:10.0.1.171  Bcast:10.0.1.255  Mask:255.255.255.0
          inet6 addr: fe80::221:ff:fed8:2545/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:17 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:284 errors:0 dropped:0 overruns:0 frame:0
          TX packets:284 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:21280 (21.2 KB)  TX bytes:21280 (21.2 KB)

UPDATE 2: (~ $ route -n)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        10.0.1.252      255.255.255.0   UG    0      0        0 eth1
10.0.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1
0.0.0.0         10.0.1.254      0.0.0.0         UG    100    0        0 eth1

UPDATE 3: Percebi que há um problema com este código:

iface eth1 inet static
address 10.0.1.171
netmask 255.255.255.0
broadcast 10.0.1.255
gateway 10.0.1.254

Se eu comentar, recebo o gerenciador de rede e o acesso à Internet, mas não o meu caminho desejado.

    
por Milan 09.11.2010 / 10:42

2 respostas

3

Se você configurou a rede através do ifupdown (ou seja, em /etc/network/interfaces ), e funciona quando você inicia a rede manualmente, mas não depois de uma inicialização, uma possibilidade é que sua configuração esteja atualizando a rede corretamente e algum outro componente do sistema reconfigura a rede. O suspeito óbvio é o Network Manager. Certifique-se de que, em /etc/NetworkManager/nm-system-settings.conf , em [ifupdown] , você tenha managed=false . (É o padrão, pelo menos no Ubuntu 10.04, mas talvez isso tenha mudado em 10.10 ou você mudou em experimentos anteriores com o Network Manager.)

Se você quiser ficar com o Network Manager, pode informá-lo para adicionar a rota extra. A partir do Ubuntu 10.04 (outras distribuições podem não configurar o Network Manager da mesma forma), o Network Manager executa os scripts ifupdown em /etc/network/if-*.d/ . A função desses scripts é semelhante às diretivas up , down , pre-up e post-down em /etc/network/interfaces (que o Network Manager não executa). Comente todas as menções de eth1 from / etc / network / interfaces 'para que o Network Manager gerencie essa interface.

Os scripts estão documentados na página de manual de interfaces (5) . Eles são executados em um ambiente contendo informações sobre a conexão iniciada ou interrompida, em particular $IFACE é o nome da interface. Então coloque o seguinte script em /etc/network/if-up.d/zzzz-milan-wireless-route :

#!/bin/sh
if [ "$IFACE" = "eth1" ]; then
  route add -net 10.0.0.0/24 gw 10.0.1.252 dev eth1
fi

Torne-o executável: chmod 755 /etc/network/if-up.d/zzzz-milan-wireless-route . Na próxima vez que o Network Manager exibir a rede, você deverá ter sua rota padrão.

    
por 09.11.2010 / 22:37
-1

Eu costumo colocar comandos de rota estática em /etc/rc.local :

ip route add 10.0.0.0/24 via 10.0.1.252 dev eth1

Eu uso o pacote iproute2 btw

    
por 09.11.2010 / 11:42