Placas de rede com "defeito"

Iniciado por rodox12, 19 de Dezembro de 2006, 17:10

tópico anterior - próximo tópico

rodox12

Dae galera...tipo...toda vez que o meu ubuntu reinicia, o ubuntu atribui eth1 para a placa de rede que esta no PCI e eth0(sempre eth0 nao muda) para a on-board...massssssssssss....quando reinicio d novo, o ubuntu atribui eth2 ou eth1 para a placa PCI...o que acontece??por exemplo, faco um REDIRECT no meu firewall para que todas as reqisicoes que venham da rede(a placa PCI) redirecionem para a porta 3128(transparente)....ateh ai tudo bem....mais toda a vez q eu reinicio o pc ele entra com um `eth` diferente na placa de rede....aaaaaaaaa....q tipo

alguem sabe que problema eh ese???

flw galera...
Temos que fixar o bug #1.

marioitalo

Alguém sabe alguma coisa a respeito? Estou tendo o mesmo problema aqui. :(

marioitalo

Bom, não descobri o porque desse comportamento, mas encontrei uma solução. Se alguém estiver tendo o mesmo problema, segue a solução(retirada de http://diegosouza.wordpress.com/2007/04/24/renomeando-interfaces-de-rede-usando-udev-no-ubuntu/):

CitarRenomeando Interfaces de Rede usando Udev no Ubuntu

Recentemente, precisei intalar o Ubuntu 6.10 (Edgy Eft) em um computador que rodaria como servidor em uma rede. Apesar da instalação ter transcorrido normalmente tive um pequeno problema com as interfaces de rede. Uma delas era sempre reconhecida pelo sistema como "eth0", mas a outra mudava de nome a cada boot. As vezes era reconhecida como "eth1" outras como "eth2", o que evidentemente "quebrava" toda a configuração de rede estabelecida.

Na Internet, encontrei artigos que recomendavam a criação de aliases para as placas de rede no arquivo "/etc/modules.conf", relacionando cada interface ao driver utilizado. Porém este procedimento não funcionou.

Pesquisando um pouco mais descobri que a versão 2.6 do kernel linux, utiliza um novo gerenciador de dispositivos, o Udev. O Udev é o programa responsável por criar dinamicamente os nós para acessos a dispositivos no diretório "/dev". Uma de suas vantagens é a possibilidade de definição de regras que sempre associam dispositivos específicos a um mesmo arquivo. Isso significa, por exemplo, que podemos ter um disco rígido sempre identificado pelo mesmo arquivo, e que portanto será sempre montado na mesma posição no sistema de arquivos, independentemente de quais outros dispositivos compartilharem o barramento.

Então, para resolver o problema das interfaces resolvi criar uma regra para identificar as placas de rede com base em seu endereço MAC (o procedimento mais confiável, já que o endereço MAC não muda).

Para isso você necessitará primeiramente obter os endereços MAC das suas placas de rede. Faça isso com o comando:

    ifconfig -a

Será obtido algo como:

eth0 Link encap:Ethernet HWaddr 00:AB:CD:12:34:56
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:3
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:180 (180.0 b)
Interrupt:185 Base address:0xc000

Onde HWaddr 00:AB:CD:12:34:56 é o endereço MAC da placa de rede.

Dando prosseguimento, crie um novo arquivo no diretório de regras do Udev, por exemplo "/etc/udev/rules.d/010_netinterfaces.rules"

Nele digite as seguintes regras:

KERNEL=="eth*", SYSFS{address}=="00:12:34:fe:dc:ba", NAME="eth0″
KERNEL=="eth*", SYSFS{address}=="00:56:78:98:76:54″, NAME="eth1″

Substituindo, evidentemente, os endereços MAC do exemplo pelos endereços das suas placas de rede.

Cuidado ao copiar e colar as regras acima, as asplas duplas são trocadas por aspas comerciais. O que causará um erro quando o Udev tentar processar a regra. Por isso corrija estes caracteres.

A primeira parte de todas as regras do Udev especifica a condição que deve ser satisfeita para que este execute ou aplique a segunda parte. No nosso caso a condição se refere ao nome interno que o kernel dá aos dispositivos de rede (KERNEL=="eth*"). A opção SYSFS{address} informa que usaremos o endereço físico das placas para diferenciá-las . Finalmente a opção NAME especifica o nome que será usado para a placa.

Duas observações:

1. Você deve especificar os endereços MAC na regra utilizando letras minúsculas. Caso contrário o Udev falhará ao associá-lo com a correspondente interface de rede.

2. Você pode atribuir qualquer nome para as interfaces, não precisa se limitar somente aos eth0, eth1 ou eth2. Contudo, alguns programas de rede podem não funcionar caso você utilize um nome fora desse padrão.

Lembrem-se que se vocês renomearem as interfaces de uma forma diferente do que elas estavam nomeadas antes será necessário editar o arquivo "/etc/network/interfaces" para substituir os antigos nomes pelos novos.

Para verificar se o procedimento funcionou você pode simplesmente reiniciar o servidor ou reiniciar o Udev:

    sudo /etc/init.d/udev restart



marioitalo

Outra solução: Editar o arquivo /etc/iftab, determinando o nome desejado para as interfaces de rede(uma por linha). Exemplo:

eth1 mac 00:10:5a:84:79:7f arp 1