Eno, CentOS 7 veya RHEL 7 için ağ arabirimi adı 'eno16777736' için ne anlama geliyor?


16

Tutarlı ağ aygıtı adlandırma şeması altında, eno16777736CentOS 7 veya RHEL 7 için ağ arabirimi adında 'eno' ne anlama gelir ?

Yanıtlar:



18

Hmmm. "En" ve "o" dan daha çok, "16777736" hakkında daha fazla kaygı duyarım.

Yanlışlıkla Google'a girip kendinizi özel bir PCI mimarisine sahip bir sunucuda otururken bulamazsanız, 16777736'nın nasıl olası bir değer olabileceğini gerçekten göremiyorum. Bu daha ciddi bir soruna bir ipucu olabilir.

Mevcut şema altında, bir sistem 256'dan fazla PCI veriyoluna hitap edemeyecektir (her veriyolunun altında 32 cihaz ve her cihazın altında maksimum 8 işlev). Bu aynı zamanda Veri Yolu: Aygıt olarak da bilinir. Modern sistemler, 256 Bus sınırlamasını aşmak için Domain: Bus: Device.Function kullanır. Neyse, sorununa geri dönersek ...

Yapabilecekleriniz:

ls -la /sys/class/net | grep eno16777736

Şuna çok benzer bir şey görürseniz:

eno16777736 -> ../.../devices/pci0000:00/0000:00:11.0/0000:1000208:01.0/net/eno16777736

Ardından, Google sizi sunucularıyla oynamayı yakalamadan önce hızlı koşmanızı öneririm.

Yukarıdaki /(0000:1000208:01.0)/ Etki Alanı: Otobüs: Aygıt. 16777736'nın onaltılık temsili olan "1000208" veri yolu değerine sahip işlev adresi. Ancak, "0x100" (256) Maksimum değer olmalıdır "Otobüs" için kullanabileceğiniz

Öte yandan, "Bus" için 0x100'ün altında bir değer alırsanız, örneğin:

eno16777736 -> ../.../devices/pci0000:00/0000:00:11.0/0000:1c:01.0/net/eno16777736

Sonra, sorunun Bios / Firmware'inizin başlangıçta udev'e (systemd) nasıl bilgi gönderdiği ile ilgili olacağını düşünürüm. Olası nedeni bulmak için, önce udev'in buna geri döndüğü değerleri kontrol edin.

Normalde PIN'i oluşturmak için üç yer udev sorgusu vardır (Öngörülebilir Arayüz Adı)

  1. ACPI_DSM
  2. SMBIOS Tablosu [özellikle "yuvaları" [9] ve tür 41'i kaydedin]
  3. PCI IRQ Yönlendirme Tablosu

[bu sırayla]

(1) 'i test edebiliriz:

udevadm info --path=/sys/class/net/eno16777736 --attribute-walk | grep acpi

Bu size 16777736 veriyorsa, büyük olasılıkla sisteminiz ACPI_DSM'yi desteklemek için gereken PCI Ürün Yazılımı Spesifikasyonu 3.1'i desteklemez

Şimdi test etmemiz gerekiyor (2). İlk olarak SMBIOS Tablosundaki 41 tipi kayıt kontrol edelim (41 tipi en alakalı olanıdır):

dmidecode -t 41 | more

Hiçbir şey gösterilmezse veya SMBIOS sürümü "2.62" den daha azsa, udev PIN'i oluşturmak için PCI IRQ Yönlendirme Tablosuna güvenir.

Bu yüzden kontrol etmeliyiz (3)

biosdecode

Maksimum yuva girişinize çok dikkat edin ... şu biçimde olmalıdır:

Slot Entry X: ID 00:00, (slot number X| status)

X değeri 25 ise, argüman uğruna, NIC'iniz 25'ten küçük veya ona eşit bir yuvada olmalıdır. Değilse, udev 16777736 yer tutucu değerine başvurmaya devam edecektir.

Çoğu durumda, nic'inizin yuva numarasını şu şekilde kontrol edebilirsiniz:

lspci -bv | grep -i -A10 ether

Ve yine çoğu durumda, BDF'de (Bus: Device.Function), Cihaz Fiziksel port numarasına eşit olmalıdır (onaltılıktan ondalığa dönüştürüldükten sonra). Diğer durumlarda (olmadığı yerde), lspci, yukarıdaki lspci komutunu yürütme çıktısında Fiziksel Yuvayı ayrı bir satırda listeler.

Bu nedenle, listelenen Fiziksel Yuva numarası X'ten (PCI IRQ Yönlendirme tablosunda bulduğumuz maksimum sayı) büyükse, sorunu büyük olasılıkla izole ettik.

Bu durumda düşünebileceğim 5 olası çözüm var ...

  1. Çekirdek kesmek ... Çekirdeği yeni bir PCI IRQ Yönlendirme tablosu ile yeniden oluşturun. /Arch/x86/pci/irq.c adresine bir göz atın

[Bu, benim zamanımın daha iyi bulması gereken daha iyi bulması gereken çözümdür]

  1. Yeni bir kural oluşturarak cihazı farklı bir adla eşleyin

tarafından:

vi /etc/udev/rules.d/70-my-net-names.rules

ardından aşağıdakileri ekleyin:

ACTION=="add", SUBSYSTEM=="net", ENV{ID_BUS}=="pci", 
KERNELS=="{Domain:Bus:Device.Function}", NAME="{name: i.e. eno1 or eth0}" 

[Buna sorunu-görmezden gel-ve-sadece-yap-yap-gör-güzelleştir-çözümünü diyelim]

  1. Özelliği tamamen devre dışı bırakmak için çekirdek önyükleme seçeneklerine net.ifnames = 0 ekleyebilirsiniz.

[Bu tabii ki yalnızlık halinde iflas ederse ve yalnızlıkta ağlıyorsa çözümdür] (gerçekten bir çözüm değil) ...

  1. Ve bir VM ... VMWare / VirtualBox, vb. Çalıştırıyorsanız, yapılandırma dosyasını açın ve "pciSlotNumber" ı X'in altındaki bir şeye değiştirin.

[ama bu geçici bir hack-kadar-benim-yazılım-güncellenmiş bir çözümdür]

  1. Yeni bir bilgisayar satın alın. [ve son olarak eğer onları yenemezsen-onlara-katıl-onlara çözümü]

3
Tek görünümlü sayının VMWare BIOS'taki net cihazla eşleştiğine inanıyorum. OP'nin CentOS 7 VM'lerini kullandığı anlaşılıyor.

Bu her zaman aynı değildir - ben de eno16780032 var. Kıçından ne acı.
Dan Pritts

1
Bu cevap o kadar yorucudur ki, OP'nin sorusunu yanıtlarken cihazları endekslerine göre nasıl tanımlayacağınıza dair kısa ve öz bir referans oluşturmayı başardınız.
Konrads

VMware için bu tür adlar görünüşte nadir değildir. Örneğin, cihazlarım adlandırıldı eno16777732.
Stefan Lasiewski

VMWare ile ilgili olarak karşılaştığım sorun, VSphere API'sinden belirli bir ağ kartının acpi_index'ini almanın bir yolu yok gibi görünüyor.
Danny

14

Önceki yanıtlara ayrıntı eklemek için:

Arabirim türüne göre iki karakter öneki:

*   en -- ethernet
*   sl -- serial line IP (slip)
*   wl -- wlan
*   ww -- wwan
*   ib -- Infiniband

İsimlerin türü:

*   b<number>                             -- BCMA bus core number
*   ccw<name>                             -- CCW bus group name
*   o<index>                              -- on-board device index number
*   s<slot>[f<function>][d<dev_port>]     -- hotplug slot index number
*   x<MAC>                                -- MAC address
*   [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
                                          -- PCI geographical location
*   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..]1[i<interface>]
                                          -- USB port number chain

Kaynak: http://ask.xmodulo.com/change-network-interface-name-centos7.html

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.