J'ai un petit routeur domestique exécutant OpenWrt (sorte de Linux embarqué pour les routeurs). Il a cinq ports Ethernet, un WAN étiqueté et quatre LAN 1 à 4. labeld. Il a les interfaces réseau suivantes définies selon 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
Comme vous pouvez le voir, un certain nombre d'appareils, mais une seule adresse MAC.
Je comprends que certains de ces appareils sont virtuels. Mettons de côté lo
et pppoe-wan
, c'est le périphérique de bouclage et ma connexion PPPoE. Mais pour les autres, comment suis-je censé pouvoir dire s'ils sont physiques ou virtuels? Je comprends qu'il existe une convention de dénomination pour étiqueter les interfaces virtuelles comme eth0.1
, mais qui n'est évidemment pas respectée ici. Voyons la sortie de ifconfig
pour deux de ces 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
Mis à part le détail obscur d' txqueuelen
avoir un non-zéro pour eth0
, la seule différence frappante est qu'il eth0
a une Interrupt
entrée, qui pour autant que je sache, est une fonctionnalité matérielle. Alors, c'est comme ça que vous dites qu'une interface réseau est physique ou non, en recherchant une Interrupt
entrée dans ifconfig
? Ou existe-t-il une meilleure façon? Un moyen simple et direct de savoir si un périphérique réseau est physique ou virtuel?
Notez qu'il y a une question connexe mais bien qu'elle ait une réponse acceptée, elle n'est pas concluante.
Mise à jour
En réponse à la réponse de Derobert, voici des informations dérivées 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
[Addendum à cette liste: se wlan0
serait également affiché wlan0 -> ../../devices/platform/ath9k/net/wlan0
, mais lorsque j'ai copié la liste ci-dessus, le WLAN était désactivé, c'est pourquoi il ne s'est pas affiché .]
Je dirais que eth0
c'est le seul appareil. Pas clair ce qui dsa.0
est.
Et en réponse à la réponse 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
ne figure pas dans la liste des paquets. Un gars bien informé et déterminé pourrait réussir à installer des outils de développement tmpfs
, mais cela en vaut-il la peine? Je vais approfondir ma compréhension des réseaux Linux au moyen d'un PC standard. Ça va être plus facile. Bien que je ne comprenne pas correctement cette configuration de routeur, cela fonctionne bien. Merci de votre aide.