У мене є невеликий домашній роутер із запуском OpenWrt (Вид вбудованого Linux для маршрутизаторів). Він має п'ять портів Ethernet, один з міткою WAN і чотири лабораторних локальних мереж від 1 до 4. У ньому є такі мережеві інтерфейси, як визначено 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
Як бачите, досить багато пристроїв, але лише одна MAC-адреса.
Я розумію, що деякі з цих пристроїв є віртуальними. Давайте відкладемо, lo
і pppoe-wan
це - петлевий пристрій і моє підключення PPPoE. Але для решти тих, як я маю змогу сказати, фізичні вони чи віртуальні? Я розумію, що існує норма про іменування для маркування віртуальних інтерфейсів eth0.1
, але цього явно тут не дотримуються. Давайте подивимося на вихід ifconfig
двох цих інтерфейсів:
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
Крім незрозумілої деталі txqueuelen
наявності ненульового значення для eth0
єдиної різниці є те, що eth0
є Interrupt
запис, який, наскільки я знаю, є функцією апаратного забезпечення. Так це те, як ви вважаєте, що мережевий інтерфейс є фізичним чи ні, шукаючи Interrupt
запис ifconfig
? Або є кращий спосіб? Простий і простий спосіб з’ясувати, чи мережевий пристрій є фізичним чи віртуальним?
Зауважте, що пов'язане питання є, але хоча воно має прийняту відповідь, воно не є переконливим.
Оновлення
У відповідь на відповідь Дероберта, тут випливає інформація з 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
[Додаток до цього списку: wlan0
відображався б так само wlan0 -> ../../devices/platform/ath9k/net/wlan0
, але коли я скопіював вищезазначений список, у мене відключена WLAN, через що він не з’явився.]
я б сказав eth0
це єдиний пристрій. Не ясно, що dsa.0
таке.
А у відповідь на відповідь Брайана Егі:
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
його немає у списку пакунків. Знаючий та рішучий хлопець може досягти успіху в установці інструментів для розробників tmpfs
, але чи варто це доки? Я буду продовжувати своє розуміння мереж Linux за допомогою стандартного ПК. Це буде простіше. Хоча я не правильно розумію цю конфігурацію маршрутизатора, вона працює чудово. Спасибі за вашу допомогу.