Para ver las interfaces
de red existentes en nuestro sistema operativo podremos utilizar bien
los (antiguos) comandos “ifconfig”, bien los (nuevos) comandos
“ip”. Veamos un ejemplo de cada uno, para la misma máquina.
Primero el nuevo, “ip”, y luego el antiguo, “ifconfig”:
root@dshecsa01:~# ip
link show
1: lo:
<LOOPBACK,UP,LOWER_UP> mtu 65536
qdisc noqueue state
UNKNOWN mode DEFAULT
link/loopback
00:00:00:00:00:00 brd
00:00:00:00:00:00
2: eth0:
<BROADCAST,MULTICAST,UP,LOWER_UP>
mtu 1500 qdisc pfifo_fast
state UP mode
DEFAULT qlen 1000
link/ether
00:1f:c6:08:f5:7f brd
ff:ff:ff:ff:ff:ff
root@dshecsa01:~#
ifconfig -a
eth0 Link
encap:Ethernet HWaddr
00:1f:c6:08:f5:7f
inet addr:10.100.100.2
Bcast:10.100.100.255
Mask:255.255.255.0
inet6 addr:
fe80::21f:c6ff:fe08:f57f/64
Scope:Link
UP BROADCAST RUNNING
MULTICAST
MTU:1500 Metric:1
RX packets:59732677
errors:2
dropped:0 overruns:0
frame:0
TX packets:55481698
errors:0
dropped:0 overruns:0
carrier:8
collisions:0
txqueuelen:1000
RX bytes:50329751 (50.3
MB) TX
bytes:2432319193 (2.4 GB)
Memory:dffc0000e0000000
lo Link
encap:Local Loopback
inet addr:127.0.0.1
Mask:255.0.0.0
inet6 addr: ::1/128
Scope:Host
UP LOOPBACK RUNNING
MTU:65536
Metric:1
RX packets:8982327
errors:0
dropped:0 overruns:0
frame:0
TX packets:8982327
errors:0
dropped:0 overruns:0
carrier:0
collisions:0 txqueuelen:0
RX bytes:1043820519 (1.0
GB) TX
bytes:1043820519 (1.0 GB)
Vemos en el ejemplo que
nuestro sistema operativo reconoce dos interfaces de red: “lo” y
“eth0”. Pero si tengo una única tarjeta de red, ¿por qué me
aparecen dos? La primer interfaz de red listada, “lo”, es lo que
se conoce como “loopback”, y la segunda es la ethernet
propiamente dicha.
muchas de las funciones
de un sistema operativo dependen de la existencia de una interfaz de
red en funcionamiento, y que puede ocurrir que una máquina no posea
ninguna reconocida (por ejemplo, si aún no se ha cargado su driver),
se decidió que una buena práctica sería la de generar en forma
predeterminada esta interfaz para simular un conector que en algunas
máquinas, hace muchos años atrás, se colocaba en su parte
posterior, y funcionaba extrayendo las señales de salida y
reinsertándolas como entradas en la misma máquina para hacer
pruebas, llamado “loopback”. Más adelante veremos que no importa
el sistema operativo ante el que nos encontremos, esta interfaz
siempre tendrá la misma dirección IP, que es la 127.0.0.1. Claro
está, eso cuando veamos cómo se conforman las direcciones IP.
Volviendo a la tierra,
¿cómo sabemos qué driver es el que está usando nuestra tarjeta de
red? Para resolver tan enigmático misterio, nada como los comandos
“ls*” de GNU/Linux, que en nuestro caso se podrían resumir en
“lspci” y “lsusb”, según nuestra tarjeta esté conectada
mediante un método o el otro (léase, directamente conectada a
nuestra máquina, o conectada mediante un puerto USB, como pasa con
algunas interfaces WiFi externas, por citar sólo un ejemplo). La
salida de un comando “lspci” puede ser bastante extensa, en
nuestro caso nos focalizaremos sólo en la sección que hace
referencia a la interfaz de red ethernet:
root@dshecsa01:~# lspci
...
02:00.0 Ethernet
controller: Qualcomm Atheros Attansic
L2 Fast Ethernet (rev a0)
…
Bien, vemos que nuestra
interfaz de red es marca Qualcomm Atheros Attansic L2 Fast Ethernet.
Pero vemos también unos curiosos números al frente de su
descripción, “02:00.0”. Esos números que para decepción de los
más religiosos nada tienen que ver con algún aspecto bíblico, nos
servirán para identificar el driver que el sistema operativo tiene
cargado para poder controlar la tarjeta de red. Podremos ver cuál es
el driver buscándolo en el directorio /sys de nuestro GNU/Linux con
el siguiente comando:
root@dshecsa01:~# find
/sys | grep drivers.*02:00
/sys/bus/pci/drivers/atl2/0000:02:00.0
¡Bravo! Nuestro driver
de seguro será descripto en nuestro sistema operativo como “atl2”.
Estamos a muy poco de descifrar el rompecabezas. Veamos si
efectivamente nuestro driver está cargado en nuestro sistema
operativo usando “lsmod” (abreviatura de “list modules”, o
“listar módulos”, ya que desde hace un buen tiempo, para alegría
de todos, estos drivers se implementan en nuestro sistema operativo
como módulos dinámicos de kernel):
root@dshecsa01:~# lsmod |
grep atl2
atl2 27628 0
Bien, ya sabemos que el
driver está cargado. Ahora, si necesitáramos saber dónde se
encuentra el archivo que lo hace funcionar, dentro del kernel, así
como otros datos, ¿cómo podríamos hacer? GNU/Linux tiene un
comando para todo, y “modinfo” nos entregará tan valiosa
información:
root@dshecsa01:~# modinfo
atl2
filename:
/lib/modules/3.8.0-19-
generic/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko
version: 2.2.3
license: GPL
description: Atheros Fast
Ethernet Network Driver
author: Atheros
Corporation
<xiong.huang@atheros.com>,
Chris Snook
<csnook@redhat.com>
srcversion:
489B206AFB57B59A896E561
alias:
pci:v00001969d00002048sv*sd*bc*sc*i*
depends:
intree: Y
vermagic:
3.8.0-19-generic SMP mod_unload
modversions 686
parm: TxMemSize:Bytes of
Transmit Memory
(array of int)
parm:RxMemBlock:Number of
receive memory
block (array of int)
parm: MediaType:MediaType
Select (array of int)
parm:IntModTimer:Interrupt
Moderator Timer
(array of int)
parm:FlashVendor:SPI
Flash Vendor (array of int)
Prestemos especial
atención a la línea que nos muestra el nombre de archivo que debe
estar cargado como librería de nuestro kernel para que la tarjeta de
red pueda funcionar. Y si queremos molestar a alguien cuando nuestra
tarjeta no funcione como es debido, tenemos la dirección de correo
electrónico del autor del driver, que de seguro recibirá nuestro
comentario con gran alegría, y alguna que otra referencia a nuestros
familiares cercanos, en este caso calculo que en idioma chino
simplificado.
0 comentarios:
Publicar un comentario