Conexão de ponte: o Ubuntu continua modificando a tabela de roteamento

3

Eu configurei uma conexão de ponte do meu celular conectado via USB ao meu laptop executando o Ubuntu 12.04 para outro computador conectado via cabo ethernet. A ponte conecta, assim, usb0 e eth0 . Eu configuro digitando os seguintes comandos no meu laptop:

$ ifconfig usb0 0.0.0.0 promisc up
$ brctl addbr br0
$ brctl addif br0 usb0 eth0
$ ifconfig br0 up

Agora, o outro computador (conectado ao meu laptop via ethernet) pode se conectar à internet. Agora eu uso os seguintes comandos para restaurar a conexão com a internet no meu laptop:

$ ifconfig br0 192.168.42.200 up
$ route del default
$ route add default gw 192.168.42.129 br0

Após esta operação, route imprime a seguinte tabela de roteamento do kernel ip:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.42.129  0.0.0.0         UG    0      0        0 br0
link-local      *               255.255.0.0     U     1000   0        0 usb0
192.168.42.0    *               255.255.255.0   U     0      0        0 br0
192.168.42.0    *               255.255.255.0   U     1      0        0 usb0

Tudo funciona bem, os dois computadores podem se conectar à internet, mas de repente meu laptop perde a conexão.

Descobri que isso acontece porque a tabela de roteamento do kernel ip foi modificada. route agora fornece a seguinte saída:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.42.129  0.0.0.0         UG    0      0        0 usb0
link-local      *               255.255.0.0     U     1000   0        0 usb0
192.168.42.0    *               255.255.255.0   U     1      0        0 usb0

Aparentemente, o Ubuntu não gosta de estar conectado via br0 e, portanto, retorna para usb0 . A conexão pode ser restaurada, redefinindo novamente a tabela de rotas:

$ route del default
$ route add default gw 192.168.42.129 br0

Infelizmente, após alguns instantes, a conexão é perdida novamente. Uma vez que duraria até 5 minutos antes do Ubuntu decidir matá-lo novamente.

Como posso impedir o Ubuntu de modificar a tabela de roteamento do kernel?

    
por kassiopeia 04.03.2013 / 10:52

1 resposta

2

Ok, no caso de alguém mais ter o mesmo problema, eis como resolvi o problema: simplesmente desativei o gerenciador de rede digitando o seguinte comando:

$ stop network-manager

Observe que o gerenciador de rede limpa a tabela de roteamento e desativa todas as conexões antes de sair; portanto, é necessário trazer de volta todas as interfaces de que você precisa.

Além disso, precisei digitar os seguintes comandos para minha ponte funcionar:

$ ifconfig usb0 up
$ ifconfig eth0 up

Além disso, precisei editar /etc/resolv.conf para que a resolução de endereços voltasse ao trabalho. Eu adicionei as seguintes linhas, que define os servidores DNS do Google como servidores de nomes:

nameserver 8.8.8.8
nameserver 8.8.4.4

Agora tudo funciona como esperado, ambos os computadores têm conexão com a Internet.

    
por kassiopeia 06.03.2013 / 09:06