Amarrando placas de rede ao endereço MAC
Dica publicada em Linux / Introdução
Amarrando placas de rede ao endereço MAC
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.
# 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.
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:
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.
Ficará assim o conteúdo do arquivo interfaces:
Salve o arquivo.
Ficará assim o conteúdo do arquivo resolv.conf:
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.
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. ;-)
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"
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
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
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. ;-)
"O problema é solucionado através do uso de um pequeno utilitário chamado "ifrename", que permite fixar os devices utilizados para as placas. Utilizá-lo é bem simples, comece instalando o pacote via apt-get:
apt-get install ifrename
Com as duas placas de rede configuradas, da forma como serão usadas, cheque os endereços MAC das interfaces usando o comando ifconfig -a e crie o arquivo /etc/iftab, relacionando o device de cada interface com o endereço MAC correspondente, seguindo o modelo abaixo:
#/etc/iftab
eth0 mac (endereço mac)
eth1 mac (endereço mac)
Uma vez criado, o arquivo é verificado a cada boot e a configuração se torna persistente resolvendo o problema, esta dica não se aplica às versões recentes do Ubuntu/Kubuntu onde o problema foi solucionado através do uso de regra do udev
que é sobre o artigo, bom, só uma dica a mais hehe
Abraços