Esta configuração serve para evitar dores de cabeça quando você tem em uma máquina com o
Linux, duas placas de rede e ele por algum motivo começa a trocar a ordem das mesmas fazendo uma confusão nas suas configurações, dando muita dor de cabeça.
Algum tempo atrás resolvi instalar duas placas de rede em um computador com o Linux, configurava o arquivo
/etc/network/interfaces e o
/etc/resolv.conf para dizer ao sistema qual IP e gateway cada placa utilizaria e depois salvava minhas configurações. Então a internet funcionava, mas depois que eu desligava o PC ela parava de funcionar, se eu desligasse e ligasse novamente ela voltava a funcionar, algo muito irritante.
Resumindo, muita dor de cabeça e noite de sono perdida quando não se consegue resolver um problema, pois o Linux fazia o seguinte: iniciava com a primeira placa sendo eth0 e a segunda sendo eth1 e no próximo boot ele fazia o inverso, trocava a primeira placa por eth1 e a segunda sendo eth0, ou seja, uma hora minha internet funcionava e outra não.
Este tutorial tem por objetivo ensinar em quatro passos como resolver de forma rápida, simples e definitiva esse problema que tem tirado o sono de muitos por aí, como aconteceu comigo.
Primeiro passo
Temos que descobrir qual é o endereço MAC (Endereço Físico) de cada placa de rede. Para isso digitamos os seguintes comandos:
# ifconfig eth0 | grep HW
# ifconfig eth1 | grep HW
Onde o comando ifconfig seguido de eth0 nos retorna qual MAC pertence à placa eth0 e qual MAC pertence à placa eth1. Se houver mais placas basta ir trocando os ethX para eth2, eth3, eth4 etc.
Segundo passo
Depois de descoberto qual é o MAC de cada placa de rede, agora devemos criar o arquivo
z99-network.rules dentro do diretório
/etc/udev/rules.d/. Este arquivo servirá para amarrarmos o MAC à interface eth0, eth1, eth3 etc. Quando o Linux der o boot ele lerá todos os arquivos de configuração que existirem dentro do diretório rules.d, inclusive o nosso, olha só que moral. ;-)
Para isso coloque dentro do arquivo a seguinte configuração (exemplo genérico):
SUBSYSTEM=="net",SYSFS{address}=="MAC_DA_PLACA_DE_REDE_1",NAME="eth0"
SUBSYSTEM=="net",SYSFS{address}=="MAC_DA_PLACA_DE_REDE_2",NAME="eth1"
.
.
.
SUBSYSTEM=="net",SYSFS{address}=="MAC_DA_PLACA_DE_REDE_N",NAME="ethN"
Exemplo real:
SUBSYSTEM=="net",SYSFS{address}=="00:d0:09:b4:d7:af",NAME="eth0"
SUBSYSTEM=="net", SYSFS{address}=="00:15:00:4b:68:db",NAME="eth1"
Obs.: Tudo deve ser escrito sem espaço, imagine estar digitando meu e-mail, racy@unipacto.com.br. A única coisa que é permitida é dar um enter entre um SUBSYSTEM e outro.
Feito isso salve o arquivo.
Terceiro passo
Depois de criado e configurado o arquivo z99-network.rules, basta configurarmos os arquivos /etc/network/interfaces e /etc/resolv.conf para dizer ao sistema qual IP e gateway cada placa utilizará e depois salvar as configurações.
Ficará assim o conteúdo do arquivo
interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.101
netmask 255.255.255.0
net 192.168.10.10
gateway 192.168.10.10
auto eth1
iface eth1 inet static
address 192.168.10.168
netmask 255.255.255.0
net 192.168.10.10
gateway 192.168.10.10
Salve o arquivo.
Ficará assim o conteúdo do arquivo
resolv.conf:
nameserver 200.165.132.148
nameserver 200.165.132.155
Salve o arquivo.
Obs.: Você deve configurar os IPs de acordo com sua rede e seu gateway. O único que pode ser configurado idêntico ao tutorial é o arquivo resolv.conf, que no exemplo foi utilizado os IPs que são os servidores de resolução de nomes DNS da própria Telemar.
Quarto passo
Reinicie seu computador para as configurações entrarem em vigor.
Feitas todas essas configurações, você terá resolvido definitivamente o problema do troca troca de suas placas de rede, bem como sua internet e sua rede passarão a funcionar de forma estável no Linux, tendo de duas ou mais placas instaladas no computador.
Agora você pode voltar a dormir tranquilo. ;-)
Olá Pessoal,
Será que podem tirar uma dúvida minha?
Eu uso o Ubuntu 11.04
No meu diretório rules.d já tem um arquivo chamado 70-persistent-net.rules que contem a seguinte configuração:
d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x10de:0x03ef (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:22:48:93:a3", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
# PCI device 0x1106:0x3106 (via-rhine)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:02:2a:d4:76:c1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x13f0:0x0200 (sundance)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:08:54:2c:af:1e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Como estou tendo problemas com a minha rede, eu começei a achar que pudesse ser problema da troca de nomes entre as placas de rede. Mas, parece que elas já estão amarradas aos seus MAC. Poderiam me confirmar essa dúvida ? Pois, todo vez que reinicio meu Ubuntu ele modifica o arquivo /etc/network/interfaces e perde a configuração da rede que eu coloquei. Eu já pesquisei muito e também tentei colocar essa configuração no arquivo rc.local, mas nao funcionou. :( . Não sei mais o que fazer . Talvez seja problema dessa versão do Ubuntu que esteja muito instável..