“Öngörülebilir Ağ Arabirimi Adları” nasıl etkinleştirilir?


12

Ethernet cihazımın hangi isimle sonuçlanacağına bakmaya karar verdim, ancak diğer dağıtımların aksine Debian bu değişikliği etkinleştirmedi (veya geri tutuyor mu?),

  • Şimdilik eski kalıcı ağ arabirimi adlandırma düzenini koruyun ve yenisini çekirdek komut satırında net.ifnames = 1 ile etkinleştirin.

Sorun grub grub satırlarını düzenlemek zorunda ve bu bir dosyayı değiştirerek devre dışı bırakılabilir bir şey için overkill gibi görünüyor olmasıdır . Başka bir yol var mı?


Belki bu bağlantıyı kontrol etmek istersiniz: science.uva.nl/research/air/wiki/LogicalInterfaceNames nameif ve güncelleme başlangıç ​​dosyası gibi bir iş bulabilirsiniz ... @Braiam
user1527227

@ user1527227 tam olarak yapmak istemediğim şey bu.
Braiam

Jesse'de / etc / default / grub içindeki bir satırı değiştirmeniz yeterlidir. Wheezy'de bu AFAIK'ı etkinleştirmenin gerçekten bir yolu yok. Yeni adlandırma düzenini gerçekten çok beğendim, bu yüzden hırıltı sunucularımda kendi udev kurallarını oluşturdum.
GnP

Yanıtlar:


11

Debian'daki 220-7 sürümü, bu katılımı sağlayan yamayı bıraktı:

* Switch to net.ifnames persistent network interfaces (on new
  installations/for new hardware), and deprecate the old
  75-persistent-net-generator.rules.

Bu debian-devel listesindeki bir tekliften kaynaklandı . Eski adlandırma kullanan sistemler, kullanıcı taşınana kadar yeniden adlandırılmaz. Geçiş kılavuzu için README.Debian'ı okuyun.

Yeni ad aşağıdakiler kullanılarak tahmin edilebilir:

sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_

eth0cihazın geçerli adı nerede .


5

Sanırım sid ya da jessie hakkında konuşuyorsun. Wheezy için v204'ün backport'unu denemek isteyebilirsiniz .

Burada oyundaki bazı yanlış anlamalar olabilir: udev kurallarından görülebileceği gibi burada (şu anda sid içinde v208 için), Udev geliştiriciler açıkça bu işlevselliği sağlayan varsayılan yolu olarak çekirdek cmdline seçti.
Bunun için seçilen arayüzü kullanarak ve basit koyarak ile "aşırıya kaçma" doğal bir şey görmüyorum GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"içinde /etc/default/grub. Endişe ettiğiniz belirli bir yan etkisi var mı?

Belirttiğiniz cevabın, bir dosyayı devre dışı bırakmak için kaldırmayı önerdiği gerçeği, en azından Debian'ın durumunda) uzun vadede işe yaramayacak çünkü debian'da bu kurallar saklanır /lib/udev/rules.d, yani: üzerine yazılırlar bir yükseltme (ayrıca, açıklayan dosyayı etkili bir şekilde kaldırarak işlevselliği devre dışı bırakmak bir anlam ifade eder, ancak etkinleştirmek temelde farklıdır, bu yüzden bu haksız bir karşılaştırma olduğunu düşünüyorum).

OTOH, çekirdek cmdline'ını kullanmamanız için somut bir nedeniniz varsa, debian paketine karşı bir hata bildirebilir ve bakımcının bu kuralları taşımasını sağlayabilirsiniz /etc/udev/. O zaman teorik olarak mevcut "kalıcı" ve yeni "öngörülebilir" kurallar arasında geçiş yapabilirsiniz.

Ama sadece FYI: 209 sürümü için kaynaklara baktığımızda, net.if_namesçekten tamamen kurtulmak gibi görünüyor , bu yüzden sorunuzun yakın gelecekte yeniden okumaya ihtiyacı olabilir.


1
"açıkça bu işlevi etkinleştirmenin varsayılan yolu olarak çekirdek cmdline'ını seçti." aslında bunu yapan bir Debian yaması , udev devs değil. Yalnızca önyükleme sırasında devre dışı bırakma yöntemi eklediler, Debian bunu kabul etmek için değiştirdi ve varsayılan olarak etkinleştirildiğinden kolay olması gerekiyor.
Braiam

@Braiam: İyi yakaladın! Ancak ana argümanın, çekirdek cmdline'ı bir arayüz olarak kullanmanın, etkinleştirmek veya devre dışı bırakmak için kullanmanın udev bir seçim olduğunu düşünüyorum.
Leo Antunes

net.ifname=1Parametre eklemek için çekirdek komut satırını düzenledim , ancak bu özellik Linux Mint'de etkinleştirilmedi. Hangi Linux dağıtımlarının bu özelliği desteklediği bilinmektedir?
sherrellbc

0

Debian / Ubuntu üzerinde, udev 220 ile başlayarak, bu dosyayı yeniden adlandırarak yeni adları etkinleştirebilirsiniz:

sudo mv -T /etc/udev/rules.d/70-persistent-net.rules{,.old}

Önerdiği gibi /usr/share/doc/udev/README.Debian.gz, ardından

sudo update-initramfs -u

Sonra yeniden başlatın (veya ağ kartınızı çalıştıran modülün rmmod + insmod'u).


-1

Ubuntu 15.10, biosdevnameöngörülebilir ağ arabirimi adları sağlamayan kullanır . Kaldır (apt-get remove biosdevname) ve grub ( GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1") ve kalıcı kuralları düzenleseniz bile, tahmin edilebilir ağ etkileşimleri elde edemezsiniz.

Ana neden geriye dönük uyumluluk gibi görünüyor. Şimdi 2 mobil geniş bant USB cihazı ile test ettim ve ağ arabirimi adı her önyüklemede tutarsız bir şekilde adlandırıldı (örneğin, ilk arabirim usb0, ikinci usb1 ve diğer yol).

Launchpad'de açık bazı hatalar var (örn. Bu ) ancak kısa cevap, tahmin edilebilir ağ arabirimi adları arıyorsanız, farklı bir dağıtım aramanızdır.


Anladım! Cevabı bildiğim gibi güncelleyeceğim.
Anthony Hunt

@roalma Cevabı güncelledim! Önceki "yorum benzeri" gönderi için üzgünüm.
Anthony Hunt

Debian, 220-7 sürümünden itibaren davranışı engelleyen yamayı bıraktıklarında varsayılan olarak bu işlevselliği destekliyor. Artık yeni kurulan sistemler varsayılan olarak tahmin edilebilir adları kullanır.
Braiam
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.