Saya perhatikan bahwa tergantung pada merek kartu jaringan, nama antarmuka berbeda (tergantung driver saya kira).
- Mengapa * BSD menggunakan nama khusus driver untuk antarmuka jaringan?
- Apakah ini berarti tidak ada lapisan abstraksi yang menggambarkan "antarmuka jaringan generik" di kernel, sehingga setiap driver akan ditangani secara internal melalui APInya sendiri?
- (bagaimana) apakah itu memengaruhi subsistem seperti agregasi tautan, pembentukan lalu lintas, QoS ( ALTQ ), pemfilteran, dan lainnya?
Tepatnya, sepertinya di bawah pfSense, saya tidak bisa menggunakan ALTQ dengan antarmuka virtual agregasi tautan (LAG).
Apakah ini batasan internal BSD karena kurangnya lapisan abstraksi yang sesuai?
eth0
melaluiethINFINITY
. Anda tidak akan lagi bisa mengetikifconfig eth0
dan berharap bahwa Anda akan melihat antarmuka Ethernet pertama, yang membuat sistem Linux serupa secara fungsional dari sudut pandang antarmuka pengguna ke FreeBSD, di mana Anda memerlukan pengetahuan apriori atas nama-nama antarmuka pada sistem, atau Anda harus mendapatkan daftar denganifconfig
perintah yang tidak memenuhi syarat terlebih dahulu. Mekanisme kernel yang mendasarinya tentu saja sangat berbeda.Pilihan menggunakan nama umum atau driver-spesifik tidak ada hubungannya dengan batasan driver.
Sebagian besar pilihan kosmetik. Menggunakan nama generik memiliki keuntungan menyembunyikan informasi yang hampir selalu tidak relevan - antarmuka jaringan adalah antarmuka jaringan, tidak peduli siapa yang membuatnya. Kemampuan perangkat bergantung pada model yang tepat dan pada konfigurasinya, bukan pada driver mana yang digunakan. Keuntungan dari nama-nama spesifik adalah untuk administrator: jika pesan kesalahan menyebutkan
eth0
(ok, jadi mana yang 0 dan yang 1), itu kurang informatif daripada jika menyebutkanwlan0
(ah, itu antarmuka wifi) ataubcm0
(ah, itu antarmuka Broadcom).Pada FreeBSD, operasi pengaturan jaringan bekerja dengan memanggil
ioctl
soket Unix. Ioctl ini diproses oleh kode jaringan umum dan mengalir ke driver yang relevan jika ioctl memanggil untuk ini.Saya tidak tahu bagaimana ALTQ berinteraksi dengan agregasi tautan. Pastikan untuk menggunakan versi FreeBSD terbaru, karena ini tidak berfungsi tetapi sekarang tidak .
sumber
Ini membuatnya lebih mudah untuk mengetahui kartu jaringan yang Anda ajak bicara.
Jika Anda memiliki prosesor Intel (igb0) dan Realtek (rl0), kini Anda dapat membedakannya dengan segera.
Juga, driver yang berbeda mendukung fitur yang berbeda. Beberapa driver mendukung
polling
dan beberapa tidak. Beberapa dukunganLRO
,TSO
danRSS
lain - lain. Lebih mudah untuk melacak dukungan mana yang ketika mereka tidak semua hanya bernamaeth
.eth
mungkin masuk akal jika Anda memiliki banyak jenis antarmuka jaringan lain, tetapi Anda jarang melakukannya.sumber
Untuk membuat hal-hal sederhana. Jika Anda melihat antarmuka yang bernama
bge0
dan melihat manual atau menggunakan sistem tautan mnemonik Anda, Anda akan segera ingat bahwa driver ini adalah Broadcom Gigabit Etherhet . Ini dokumen juga berguna.Aturannya di sini adalah:
Tidak diperlukan lapisan abstraksi. Sesederhana itu.
Nama antarmuka tidak boleh mengganggu lalu lintas shapping.
Hari ini seharusnya bekerja:
Bukan berarti tidak ada lapisan yang tepat untuk menangani ini. Itu karena Anda bisa menggunakan sumber daya lain untuk menangani nama-nama seperti membuat nama antarmuka (
/etc/rc.conf
), atau mengubah id pci pada pengaturan motherboard. Dan seperti yang dikatakan oleh orang lain tentang pertanyaan ini, bahkan Linux akan mengikuti jalan inibiosdevname
.sumber