Strict Standards: Non-static method themeGluedIdeas_Subtle::initOptions() should not be called statically in /home/riopro/www/blog.riopro.com.br/wp-content/themes/gluedideas_subtle/header.php on line 19
Riopro Blog - » Placas de rede no Linux

Placas de rede no Linux



Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Quando eu comecei a usar Linux, demorei a me adaptar a existência de apelidos (aliases) padrões para as placas de rede (eth0, eth1, lo…). Ao aprender sobre roteamento e firewall no Linux, esse pensamento se tornou mais intuitivo. Nessa época, a configuração dos alias de placas de rede se dava no arquivo /etc/modules.conf, que depois passou a se chamar /etc/modprobe.conf e que hoje no Ubuntu foi transformado no diretório de aliases /etc/modprobe.d e que possui como arquivo “principal” /etc/modprobe.d/aliases. A criação do alias consistia em colocar mais uma linha nesse arquivo:

alias ethX NOME_DO_MODULO_DA_PLACA_DE_REDE

Colocar o alias não evitava, porém, alguns problemas. Muitas vezes um micro possuía 2 placas de rede do mesmo modelo e fabricante. Isso fazia com que a cada boot, as placas pudessem se inverter, o que ocasionava muita dor de cabeça. Além disso, como o armazenamento do alias era manual, a substituição de uma placa de rede por outra de modelo diferente, fazia com que o usuário tivesse que iniciar o micro, ver que a placa não levantou sozinha e substituir o nome do módulo no arquivo de alias, para reiniciar o micro novamente e só aí ver o mesmo funcionando.

Isso era um pouco trabalhoso, principalmente para os usuários menos experientes. Como tudo em Linux que não está bom, esse processo foi amplamente reescrito.

Primeiro, foram utilizadas ferramentas como o hotplug, que permitia que o Linux identificasse no boot substituições de hardwares e já se adaptasse para esses novos hardwares (muito útil para os casos de substituição de placas de rede descritos acima).

A partir do Kernel 2.6 passou-se a utilizar o udev, que é o device manager para Linux. O udev, tal qual o hotplug, não gerencia apenas placas de rede, mas sim todo o hardware da máquina. Mas para as placas de rede ele trouxe algo importante. As placas não recebem mais um alias para cada módulo, mas sim um alias para cada Mac Address. Um exemplo de configuração de aliases no Ubuntu 7.10 abaixo:

$cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x10de:0x0057 (sky2)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:b6:f2:66:a5:9a", NAME="eth0"
# PCI device 0x1969:0x1048 (atl1)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:e0:a6:1f:63:6a", NAME="eth1"
# PCI device 0x11ab:0x4362 (sky2)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:e0:8c:c8:4c:2c", NAME="eth2"

Mesmo que você substitua uma placa de rede, o udev não vai apagar o registro da placa anterior. Vai apenas verificar que não existe alias para o Mac Address identificado no boot e acrescentar uma nova linha. Isso tem seus problemas (ok, não são problemas, mas sim detalhes). Se você troca a placa de rede de um computador 4 vezes, a última placa terá o alias eth3, mesmo que só exista ela no seu computador/servidor.

Se quiser mudar de eth3 para eth0, pode realizar a mudança no arquivo /etc/udev/rules.d/70-persistent-net.rules. Mas essa mudança terá que ser realizada manualmente.

Outras ferramentas úteis para placas de rede são a ethtool e a lshw. Através da primeira, se torna simples descobrir qual o modelo/driver da placa de rede de cada alias. Por exemplo, digitando:

$ethtool -i eth0
driver: sky2
version: 1.18
firmware-version: N/A
bus-info: 0000:02:00.0

Podemos ver que o ethtool retorna qual o driver utilizado pela placa e qual o bus-info dessa placa. Parecido, mas com mais informações, temos o lshw. Digitando:

$lshw -C network
WARNING: you should run this program as super-user.
*-network
description: Ethernet interface
product: 88E8055 PCI-E Gigabit Ethernet Controller
vendor: Marvell Technology Group Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: eth0
version: 12
serial: 00:a0:d1:7f:53:aa
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical
configuration: broadcast=yes driver=sky2 driverversion=1.18 firmware=N/A \
ip=10.1.0.112 latency=0 module=sky2 multicast=yes
*-network
description: Wireless interface
product: PRO/Wireless 3945ABG Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: eth1
version: 02
serial: 00:1b:77:a0:5b:3f
width: 32 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=ipw3945 driverversion=1.2.2mp.ubuntu1 \ 
firmware=14.2 1:0 () latency=0 module=ipw3945 multicast=yes wireless=unassociated

Teremos listado todas as informações sobre placas de rede de nosso computador, inclusive com o Mac Address e informações qualitativas das placas.

Informações e Links

Junte-se comentando, lendo o que os outros dizem ou colocando um link a partir do seu blog.


Outros Artigos

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Modelos de negócios diferentes para lucrar na Web

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Mature optimization versus Premature optimization

Comente

Tire um tempo para comentar e nos dizer o que você acha. Alguns códigos HTML são permitidos para formatação.

Comentários dos Leitores


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

[…] por otávio (osampaioΘriopro·com·br) - referência […]


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Otávio, muito bom seu artigo. Pra quem frequentemente tem que trabalhar com firewalls ou servidores multihomed essas dicas são preciosas. Parabéns!


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Otávio valeu!! esses tempos atrás tive problema no linux mas resolvido, só não consegui no openbsd mas muito útil!!
Abraços


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Muito bom este artigo, completo.

Parabéns! =D


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

obrigado. espero que seja útil…


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Boa dica, mesmo usuarios experientes as vezes se atrapalham com hardwares detectados pelo UDEV.

Parabens!


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Abriu uma porta nas possibilidades de entendimento do esquema de nomeação de devices que nunca me animei a perder tempo estudando, mas sempre tive curiosidade em conhecer. Valeu!


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Confesso. Eu também tenho preguiça às vezes, mas a necessidade é a mãe de todas as descobertas :)


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Uia.. nem sabia que o Ubuntu tinha esse tal de /etc/modprobe.d/aliases… Ia me estrepar procurando esse arquivo.
Parabéns pela iniciativa. abs


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

[…] deparei com uma postagem sobre placas de rede e gostei. Da postagem e da organização do […]


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Otávio!… seu artigo caiu de céu!… Tenho a impressão que é a resposta para um problema que tenho faz um tempão…
Nos últimos 2 dias com um Dell PowerEdge 840 com 2 placas de rede que usam módulos e-1000… As duas placas juntas não funcionam corretamente… ou é uma… ou a outra… Mas, ainda tenho esse mesmo problema com outro Dell PowerEdge 1900 e os mesmo módulos e-1000 - só solucionado porque uso só uma das placas… E, também com outro Dell PowerEdge 1600SC - solucionado com a adição de uma 3ª placa “genérica”…
Mas, tentarei nesta próxima 2ª feira o uso da solução aqui partilhada por você…
Obrigado! Abraços! Valeu…


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Espero que ajude pedro. Boa sorte…


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Po, valew heim! O basicão todo mundo sabe, mas o pequeno grande detalhe do arquivo /etc/udev/rules.d/70-persistent-net.rules nem todos! Isso foi o que me salvou, tanks!


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Muito bom artigo, meus parabéns!


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Obrigado Thiago e Felipe.


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Boa irmãozinho, ajudou muito mesmo!!!
Vêr se continua!!! ^^