* BSD neden ağ arabirimleri için sürücüye özel adlar kullanıyor? Sınırlamalar içeriyor mu?


13

Ağ kartının markasına bağlı olarak, arayüz adlarının farklı olduğunu fark ediyorum (sanırım sürücüye bağlı).

  • * BSD neden ağ arabirimleri için sürücüye özel adlar kullanıyor?
  • Bu, çekirdekte "genel bir ağ arabirimini" tanımlayan bir soyutlama katmanının olmadığı anlamına mı geliyor, bu nedenle her bir sürücü kendi API'sı aracılığıyla dahili olarak ele alınacak mı?
  • (nasıl) bağlantı toplama, trafik şekillendirme, QoS ( ALTQ ), filtreleme ve diğerleri gibi alt sistemleri etkiler mi?

Tam olarak, pfSense altında görünüyor, ALTQ'yu bir bağlantı toplama (LAG) sanal arabirimiyle kullanamıyorum.

Bu, uygun bir soyutlama katmanının olmaması nedeniyle BSD iç sınırlaması mıdır?

Yanıtlar:


7

* BSD neden ağ arabirimleri için sürücüye özel adlar kullanıyor?

Bu sadece tarihsel bir seçim. İsimdeki harfler, kartla konuşan sürücüden gelir, böylece aynı sürücüyü kullanırlarsa iki ayrı arayüz için aynı olurlar.

Bunun pratik bir avantajı vardır: BSD'de ağ sürücülerinin 4. bölümde kendi manuel sayfaları vardır. Bu nedenle, ağ adaptörünü dc(4)kontrol edecek DEC 21143 sürücüsünü anlatır dc0.

Bunu BSD Unix'in sabit diskler gibi diğer bölümlerinde de görüyorsunuz.

Bu, uygun bir soyutlama katmanının olmaması nedeniyle BSD iç sınırlaması mıdır?

Hayır.

Ne 's değerinde için, Linux, benzer bir yolda ilerliyor . Ağ bağlantısı daha karmaşık hale geldiğinden, Ethernet bağdaştırıcıları için basit adlandırma kurallarının günleri kayboluyor.


Teşekkür ederim. O zaman neden ALTQ'yu bir bağlantı toplama ile kullanamadığımı biliyor musunuz?
Totor

Soru başına bir soru lütfen. Bunu BSD cihaz adlandırmasına odaklayalım.
Warren Young

BSD'ye benzer bir yol adı veren yeni udev ağ cihazını çağırmam. Bildiğim kadarıyla varsayılan yol aygıtları tanımlamak için bir tür otobüs yolu kullanmaktır, rastgele bir numaralandırma şemasına sahip sürücü adını değil.
Pavel Šimerda

PavelŠimerda @: ben sadece bu düzeni artık kullanım kullanan Linux sistemleri anlamına eth0aracılığıyla ethINFINITY. Artık sadece yazın mümkün olacak ifconfig eth0ve FreeBSD, bir kullanıcı arayüzü açısından işlevsel olarak benzer örneğin Linux sistemler yapar ilk Ethernet arayüzü, bakıyor olacağım bekliyoruz nereye gerekmez ya önsel isimlerinin bilgisi sisteme bağlanırsa veya ifconfigönce nitelenmemiş bir komutla bir liste almanız gerekir . Temeldeki çekirdek mekanizmaları elbette tamamen farklıdır.
Warren Young

5

Genel veya sürücüye özgü adları kullanma seçiminin herhangi bir sürücü sınırlaması ile ilgisi yoktur.

Çoğunlukla kozmetik bir seçimdir. Genel adların kullanılması, neredeyse her zaman önemsiz olan bilgileri gizleme avantajına sahiptir - bir ağ arabirimi, kim olursa olsun, bir ağ arabirimidir. Bir cihazın yetenekleri, hangi sürücünün kullanımda olduğuna değil, tam modele ve yapılandırmasına bağlıdır. Belirli adların avantajı yönetici içindir: bir hata mesajından bahsediliyorsa eth0(tamam, hangisi 0 ve hangisi 1), bahsettiğinden wlan0(ah, bu wifi arayüzü) veya bcm0(ah, bu Broadcom arayüzü).

FreeBSD'de, ağ kurulum işlemleri ioctlbir Unix soketini çağırarak çalışır . Bu ioctl genel ağ kodu tarafından işlenir ve ioctl bunu çağırırsa ilgili sürücüye damlar.

ALTQ'nun bağlantı toplama ile nasıl etkileşime girdiğini bilmiyorum. FreeBSD'nin son bir sürümünü kullandığınızdan emin olun, çünkü bu eskiden işe yaramadı, ancak şimdi çalışıyor .


3

Hangi ağ kartıyla konuştuğunuzu söylemenizi kolaylaştırır.

Bir Intel (igb0) ve bir Realtek (rl0) nic'iniz varsa, şimdi bunları hemen ayırt edebilirsiniz.

Ayrıca, farklı sürücüler farklı özellikleri destekler. Bazı sürücüler destekliyor polling, bazıları desteklemiyor . Bazı destek LRO, TSOve RSSvb hepsi sadece adında olmadığında hangi destek izlemek daha kolaydır eth.

eth başka türden ağ arabirimleriniz varsa mantıklı gelebilir, ancak nadiren kullanıyorsunuzdur.


+1, çünkü kim olduğunu biliyorum. :) Podcast için teşekkürler !
Warren Young

1

* BSD neden ağ arabirimleri için sürücüye özel adlar kullanıyor?

İşleri basitleştirmek için. Adlandırılmış bir arayüze bge0bakar ve kılavuzlara bakarsanız veya anımsatıcı bağlantı sisteminizi kullanırsanız, bu sürücünün bir Broadcom Gigabit Etherhet olduğunu hızlı bir şekilde hatırlayacaksınız . Bu belge de kullanışlıdır.

Bu, çekirdekte "genel bir ağ arabirimini" tanımlayan bir soyutlama katmanının olmadığı anlamına mı geliyor, bu nedenle her bir sürücü kendi API'sı aracılığıyla dahili olarak ele alınacak mı?

Buradaki kural:

  • Aygıt adı oluşturmak için sürücünün adını kullanın;
  • Aygıt adından hemen sonra numara oluşturmak için en düşük PCI kimliğini kullanın;

Soyutlama katmanı gerekmez. Bu kadar basit.

(nasıl) bağlantı toplama, trafik şekillendirme, QoS (ALTQ), filtreleme ve diğerleri gibi alt sistemleri etkiler mi?

Arabirim adları trafik gölgelemesini engellememelidir.

Tam olarak, pfSense altında görünüyor, ALTQ'yu bir bağlantı toplama (LAG) sanal arabirimiyle kullanamıyorum.

Bugün çalışmalı:

Bu, uygun bir soyutlama katmanının olmaması nedeniyle BSD iç sınırlaması mıdır?

Bunun üstesinden gelmek için uygun bir katman olmadığı anlamına gelmez. Bunun nedeni , arabirim adları ( /etc/rc.conf) oluşturmak veya anakart kurulumundaki pci kimliğini değiştirmek gibi diğer adları işlemek için başka kaynakları kullanabilmenizdir . Ve bu soru üzerine başkaları tarafından söylendiği gibi, Linux bile bu yola gider biosdevname.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.