Tengo un pequeño enrutador doméstico que ejecuta OpenWrt (tipo de Linux incorporado para enrutadores). Tiene cinco puertos Ethernet, uno etiquetado WAN y cuatro etiquetados LAN 1 a 4. Tiene las siguientes interfaces de red definidas según ifconfig
:
root@TIBERIUS: ~ > ifconfig | grep Link
br-lan Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
eth0 Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
lan1 Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
lan2 Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
lan3 Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
lan4 Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
lo Link encap:Local Loopback
pppoe-wan Link encap:Point-to-Point Protocol
wan Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
wlan0 Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
Como puede ver, hay muchos dispositivos, pero solo una dirección MAC.
Entiendo que algunos de esos dispositivos son virtuales. Dejemos de lado lo
y pppoe-wan
, ese es el dispositivo de bucle invertido y mi conexión PPPoE. Pero para el resto de ellos, ¿cómo se supone que debo saber si son físicos o virtuales? Entiendo que hay una convención de nomenclatura para etiquetar interfaces virtuales como eth0.1
, pero eso obviamente no se cumple aquí. Veamos la salida de ifconfig
dos de estas interfaces:
root@TIBERIUS: ~ > ifconfig wan
wan Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15007 errors:0 dropped:0 overruns:0 frame:0
TX packets:12055 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:13341276 (12.7 MiB) TX bytes:1831757 (1.7 MiB)
root@TIBERIUS: ~ > ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:23:CD:20:C3:B0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25799 errors:0 dropped:0 overruns:23 frame:0
TX packets:25294 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15481996 (14.7 MiB) TX bytes:15160380 (14.4 MiB)
Interrupt:4
Además del oscuro detalle de txqueuelen
tener un valor distinto de cero eth0
, la única diferencia sorprendente es que eth0
tiene una Interrupt
entrada, que hasta donde yo sé es una característica de hardware. Entonces, ¿es así como sabes que una interfaz de red es física o no, buscando una Interrupt
entrada ifconfig
? ¿O hay un mejor camino? ¿Una forma simple y directa de averiguar si un dispositivo de red es físico o virtual?
Tenga en cuenta que hay una pregunta relacionada, pero si bien tiene una respuesta aceptada, no es concluyente.
Actualizar
En respuesta a la respuesta de derobert, aquí hay información derivada de ls -l /sys/class/net
:
br-lan -> ../../devices/virtual/net/br-lan
eth0 -> ../../devices/platform/ag71xx.0/net/eth0
lan1 -> ../../devices/platform/dsa.0/net/lan1
lan2 -> ../../devices/platform/dsa.0/net/lan2
lan3 -> ../../devices/platform/dsa.0/net/lan3
lan4 -> ../../devices/platform/dsa.0/net/lan4
lo -> ../../devices/virtual/net/lo
pppoe-wan -> ../../devices/virtual/net/pppoe-wan
wan -> ../../devices/platform/dsa.0/net/wan
[Anexo a esta lista: wlan0
habría aparecido también wlan0 -> ../../devices/platform/ath9k/net/wlan0
, pero cuando copié la lista anterior tenía WLAN deshabilitada, por lo que no apareció.]
Yo diría que eth0
es el único dispositivo. No está claro qué dsa.0
es.
Y en respuesta a la respuesta de Bryan Agee:
root@TIBERIUS: ~ > cat /etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'eth'
option ifname 'eth0'
option proto 'none'
config interface 'lan'
option ifname 'lan1 lan2 lan3 lan4'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.33.1'
option netmask '255.255.255.0'
config interface 'wan'
option ifname 'wan'
option proto 'pppoe'
option username '…'
option password '…'
lshw -class network
lshw
no está en la lista de paquetes. Un tipo bien informado y decidido podría tener éxito en la instalación de herramientas de desarrollo tmpfs
, pero ¿valdría la pena? Voy a profundizar mi comprensión de las redes Linux mediante una PC estándar. Esto va a ser más fácil. Si bien no entiendo correctamente esta configuración de enrutador, funciona bien. Gracias por tu ayuda.