Informática Numaboa - Linux
Desvendando suas placas de rede
Sab 17 Jan 2009 18:25 |
- Detalhes
- Categoria: Como fazer instalações
- Atualização: Sábado, 17 Janeiro 2009 19:57
- Autor: vovó Vicki
- Acessos: 6680
Para entrar na Internet ou para se conectar como um nó de rede, seu computador precisa de uma ou mais placas de rede. Estas placas formam a interface entre seu computador e a rede. Existem diferentes tipos de placas, com diferentes velocidades e outras características mais. Aqui está uma dica de como desvendar as características da sua placa.
Para os linuxeiros inveterados o tema deste pequeno tutorial até pode parecer bobagem. Logo pensam no comando ifconfig e dão o assunto por encerrado. Mas será que só existe o ifconfig? Veremos...
O comando ifconfig
O comando ifconfig é usado para configurar (e posteriormente manter) as interfaces de rede. Se nenhum argumento for informado, o ifconfig mostra apenas o estado das interfaces que já foram definidas. Se informarmos uma interface, ele mostra somente o estado desta interface; caso contrário, ele assume que os parâmetros devem ser configurados.
Para poder usar o ifconfig você precisa estar logado como root. Peguei uma das minhas máquinas para ver quais interfaces estavam configuradas. O resultado foi o seguinte:
# ifconfig eth0 Link encap:Ethernet HWaddr 00:14:2B:B3:C3:45 inet addr:200.195.185.76 Bcast:200.195.185.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1782471 errors:0 dropped:0 overruns:0 frame:0 TX packets:3561354 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:126048396 (120.2 Mb) TX bytes:999978935 (953.6 Mb) Interrupt:11 Base address:0xe000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:48 errors:0 dropped:0 overruns:0 frame:0 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4320 (4.2 Kb) TX bytes:4320 (4.2 Kb)
Como se pode ver, trata-se de uma máquina absolutamente convencional. Possui apenas as interfaces eth0 (uma placa Ethernet) e Local Loopback. O MAC da placa Ethernet é 00:14:2B:B3:C3:45, o endereço de Internet é 200.195.185.76, o broadcast é 200.195.185.255 e assim por diante.
Se quiséssemos obter informações apenas da placa, a chamada seria a seguinte:
# ifconfig eth0
Mas nós queremos saber mais
O comando dmesg
O comando dmesg é usado para escrever as mensagens do kernel do Linux e outros sistemas operacionais do tipo Unix numa saída que, por padrão, é a tela. Se quisermos saber um pouco mais sobre a nossa placa, como seu tipo e sua velocidade, então o dmesg é uma boa escolha. Na mesma máquina do exemplo anterior usei o seguinte:
# dmesg | grep eth0 eth0: VIA VT6102 Rhine-II at 0xe000, 00:14:2b:b3:c3:45, IRQ 11. eth0: MII PHY found at address 1, status 0x7869 advertising 05e1 Link c5e1. eth0: Setting full-duplex based on MII #1 link partner capability of c5e1.
Já obtivemos mais algumas informações: a placa é VIA VT6102 RHINE-II, o MAC é o mesmo (e nem poderia deixar de ser), está fazendo requisições de interrupção em 11 (IRQ 11) e é full-duplex. Melhorou um pouquinho, mas nós ainda queremos saber mais
O comando mii-tool
O mii-tool é meio velhinho, mas ainda presta bons serviços, tanto é que, velhinho ou não, ainda faz parte do Linux. O que é que o mii-tool pode adicionar ao que já sabemos? Veja o que consegui:
# mii-tool -v eth0 eth0: negotiated 100baseTx-FD flow-control, link ok product info: vendor 00:40:63, model 50 rev 10 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
Usei -v para ativar o modo "falante" (verbose) afim de obter o maior número possível de dados. A informação negotiated 100baseTx-FDM indica que se trata de uma placa full-duplex que trabalha nos seguintes modos (veja em capabilities):
- Velocidade de 100 Mbps (FD, full-duplex ou HD, half-duplex) ou
- Velocidade de 10 Mbps (FD, full-duplex ou HD, half-duplex)
Além disto, esta placa usa o modo de autonegociação para ativar o link (autonegotiation enabled). A esta altura sabemos que se trata de uma placa NIC 10/100. Excelente, mas esta placa está trabalhando a 10 ou a 100 Mbps? Está atuando no modo full ou half-duplex? Queremos saber mais
O comando ethtool
O comando ethtool é a versão mais moderna do mii-tool. As informações que podemos obter com este comando são essencialmente as mesmas que o mii-tool fornece, só que a velocidade usada atualmente pela placa é mostrada de forma explícita:
# ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 1 Transceiver: internal Auto-negotiation: on Current message level: 0x00000001 (1) Link detected: yes
E aqui temos a resposta: a placa está atuando em 100Mbps no modo full-duplex. Agora sim
Algumas informações adicionais
Full Duplex é a lógica que habilita recebimentos e envios concorrentes. Em outras palavras, esta placa pode enviar dados enquanto estiver recebendo dados e vice-versa, ou seja, trabalha nos dois sentidos simultaneamente. Este modo de operação deve estar habilitado se seu computador estiver conectado a um switch.
Half Duplex - esta lógica exige uma placa que apenas recebe ou apenas envia dados. Quando a sua máquina estiver conectada a um hub, ela se auto-negocia e usa half-duplex para evitar colisões.
Auto-negociação é o processo de decidir se deve trabalhar no modo full-duplex ou no modo half-duplex. Uma placa capaz de auto-negociar decide por conta própria o melhor modo de trabalhar de acordo com o tipo de conexão.