Eu tenho um pequeno roteador doméstico executando o OpenWrt (tipo de Linux incorporado para roteadores). Possui cinco portas Ethernet, uma rotulada WAN e quatro rotuladas LAN 1 a 4. Possui as seguintes interfaces de rede definidas conforme 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 você pode ver, vários dispositivos, mas apenas um endereço MAC.
Entendo que alguns desses dispositivos são virtuais. Vamos deixar de lado lo
e pppoe-wan
esse é o dispositivo de loopback e minha conexão PPPoE. Mas para o restante deles, como devo saber se eles são físicos ou virtuais? Entendo que existe uma convenção de nomenclatura para rotular interfaces virtuais como eth0.1
, mas isso obviamente não é respeitado aqui. Vamos ver a saída de ifconfig
para duas dessas 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
Além do detalhe obscuro de txqueuelen
ter um diferente de zero eth0
, a única diferença marcante é que eth0
tem uma Interrupt
entrada, que, até onde eu sei, é um recurso de hardware. Então é assim que você diz que uma interface de rede é física ou não, procurando uma Interrupt
entrada ifconfig
? Ou há um jeito melhor? Uma maneira simples e direta de descobrir se um dispositivo de rede é físico ou virtual?
Observe que há uma pergunta relacionada, mas, embora tenha uma resposta aceita, não é conclusiva.
Atualizar
Em resposta à resposta de derobert, aqui estão as informações derivadas 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
[Adendo a esta lista: wlan0
teria aparecido tão bem quanto wlan0 -> ../../devices/platform/ath9k/net/wlan0
, mas quando copiei a lista acima, a WLAN foi desativada, e é por isso que ela não apareceu.]
Eu diria que eth0
é o único dispositivo. Não está claro o que dsa.0
é.
E em resposta à resposta 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
não está na lista de pacotes. Um cara experiente e determinado pode ter sucesso na instalação de ferramentas de desenvolvimento tmpfs
, mas valeria a pena? Vou aprofundar minha compreensão das redes Linux por meio de um PC padrão. Isso vai ser mais fácil. Embora eu não entenda corretamente essa configuração do roteador, ela funciona bem. Obrigado pela ajuda.