Saya memiliki router rumah kecil yang menjalankan OpenWrt (Jenis Linux yang tertanam untuk router). Ini memiliki lima port Ethernet, satu berlabel WAN dan empat labeld LAN 1 hingga 4. Ini memiliki Antarmuka Jaringan berikut yang ditentukan sesuai 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
Seperti yang Anda lihat, cukup banyak perangkat, tetapi hanya satu alamat MAC.
Saya mengerti beberapa perangkat itu virtual. Mari kita kesampingkan lo
dan pppoe-wan
, itulah perangkat loopback dan Koneksi PPPoE saya. Tetapi untuk yang lainnya, bagaimana saya bisa tahu apakah itu fisik atau virtual? Saya mengerti ada konvensi penamaan untuk pelabelan Antarmuka virtual seperti eth0.1
, tapi itu jelas tidak dipatuhi di sini. Mari kita lihat Output ifconfig
untuk dua antarmuka ini:
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
Terlepas dari Detail yang tidak jelas untuk txqueuelen
yang bukan nol eth0
, satu-satunya perbedaan yang mencolok adalah yang eth0
memiliki Interrupt
entri, yang sejauh yang saya tahu adalah Fitur Perangkat Keras. Jadi, bagaimana Anda memberi tahu Network Interface apakah itu fisik atau bukan, dengan mencari Interrupt
entri ifconfig
? Atau ada cara yang lebih baik? Cara sederhana dan mudah untuk mengetahui apakah perangkat jaringan itu fisik atau virtual?
Perhatikan ada pertanyaan terkait, tetapi meskipun memiliki jawaban yang diterima, itu tidak konklusif.
Memperbarui
Sebagai balasan untuk jawaban derobert, berikut adalah informasi yang berasal dari 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
[Tambahan daftar ini: wlan0
akan muncul juga wlan0 -> ../../devices/platform/ath9k/net/wlan0
, tetapi ketika saya menyalin daftar di atas, saya menonaktifkan WLAN, itulah mengapa tidak muncul.]
Saya akan katakan eth0
adalah satu-satunya perangkat. Tidak jelas apa dsa.0
itu.
Dan sebagai balasan untuk jawaban 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 '…'
sumber
lshw -class network
lshw
tidak ada dalam daftar paket. Seorang pria yang berpengetahuan dan tekad mungkin berhasil menginstal alat devtmpfs
, tetapi apakah itu layak sementara? Saya akan melanjutkan pemahaman saya tentang jaringan Linux dengan menggunakan PC standar. Ini akan menjadi lebih mudah. Meskipun saya tidak memahami konfigurasi router ini dengan benar, itu berfungsi dengan baik. Terima kasih atas bantuan Anda.Jawaban:
Anda dapat memeriksa
/sys
:Jadi, perangkat aktual ditampilkan di / sys / class / net. Perhatikan bahwa alias (seperti lan: 0) tidak (jadi Anda dapat mengetahui alias mana). Dan Anda dapat dengan jelas melihat mana perangkat keras yang sebenarnya (lan) dan mana yang tidak (br0, lo, tun0).
untuk memperjelas
Anda dapat mengetahui mana yang nyata di atas karena yang virtual semuanya dalam virtual. Dan Lan ada di bus PCI.
Dalam kasus Anda, Anda memiliki enam: eth0, wan, dan lan1–4. Ini agak aneh, karena Anda mengatakan Anda hanya memiliki total lima port. Saya kira eth0 sebenarnya bawaan untuk chip switch-ish, dan 5 port lainnya adalah port pada switch itu. wlan0 mungkin nyata juga (akan menjadi adaptor nirkabel), meskipun tidak ditampilkan di / sys….
Jadi, saya akan mengatakan bahwa untuk semua tujuan praktis, port Anda sebenarnya adalah wan, lan1–4, dan wlan0. br-lan adalah jembatan yang diatur untuk membuat semua 4 port berfungsi sebagai sakelar (jadi Anda mungkin dapat memisahkan sakelar itu).
sumber
ag71xx
yang membuat saya berpikir itu adalah perangkat keras, karena terlihat seperti driver.wlan0
akan ada di daftar perangkat di bawah/sys/class/net
topi itu diaktifkan ketika saya menyalin daftar. :) Saya sekarang telah menambahkannya di atas. Saya tidak setuju dengan Anda tentang jumlah perangkat, saya pikir hanya ada dua, LAN dan WLAN. Tapi itu poin kecil ... jawaban yang bagus, diterima, terima kasih!brctrl delif br-lan lan1
(atau serupa) untuk menjatuhkan port keluar dari jembatan. Saya menduga itu akan berfungsi sebagai port terpisah (bukan bagian dari switch LAN) kemudian.Dengan asumsi alamat MAC antarmuka Anda tidak palsu , Anda dapat mencoba menggunakan ethtool :
" Alamat permanen: 00: 00: 00: 00: 00: 00 " akan menunjukkan itu adalah antarmuka jaringan virtual.
Bash loop berikut akan menampilkan alamat MAC untuk semua antarmuka jaringan:
sumber
Saya akan mulai dengan melihat ke dalam
/etc/network/config
; sebagian besar distro memiliki file serupa untuk mendefinisikan dan mengkonfigurasi perangkat jaringan. Di debian / Ubuntu, itu adalah / etc / network / interfaces. Jika Anda memposting konten itu, kami dapat mengidentifikasi entri alias, ikatan, dan jembatan; sisanya akan menjadi perangkat fisik Anda.Dengan melihat
ifconfig
output, Anda dapat mengetahui (seperti yang Anda sebutkan) oleh perangkat yang mengalami interupsi (IRQ); banyak juga yang memiliki memori yang ditetapkan, yang tidak dimiliki antarmuka virtual.Anda tidak dapat menilai berdasarkan alamat mac saja, karena bond ( agregasi tautan ) akan menimpa mac dari masing-masing perangkat, dan bridge akan menggunakan yang sama. Jadi, jika Anda memiliki dua perangkat terikat dan dijembatani - konfigurasi umum untuk host dan router virtual HA - akan ada empat perangkat dengan mac yang sama:
Jelas alias yang digunakan dalam openwrt bukan yang di atas, tetapi konsepnya berlaku; Saya menggunakan ini karena mereka adalah praktik standar.
sumber
/etc
cara 'standar' . Misalnya, antarmuka yang dibuat oleh NetworkManager tidak disebutkan di sana.Saya pikir itu hanya memeriksa apakah nilai
/sys/class/net/<interface>/type
adalah 1 (ARPHRD_ETHER) harus cukup untuk memahami apakah perangkat itu fisik.http://lxr.linux.no/linux+v3.0/include/linux/if_arp.h#L30
misalnya. basename $ (dirname
grep -l ^1$ /sys/class/net/*/type
)sumber