Come abilitare "Nomi di interfaccia di rete prevedibili"?


12

Ho deciso di verificare con quale nome finirà il mio dispositivo Ethernet, ma contrariamente ad altre distro , Debian non sembra aver attivato questo cambiamento (o lo sta trattenendo?),

  • Mantieni il vecchio schema di denominazione dell'interfaccia di rete persistente per ora ed esegui il nuovo opt-in via net.ifnames = 1 sulla riga di comando del kernel.

Il problema è che devo modificare le righe del kernel di grub e questo sembra eccessivo per qualcosa che può essere disabilitato modificando un file . C'è un altro modo?


Forse vuoi controllare questo link: science.uva.nl/research/air/wiki/LogicalInterfaceNames Puoi trovare un lavoro come nameif e aggiornare il file di avvio ... @Braiam
user1527227

@ user1527227 è esattamente quello che non voglio fare.
Braiam,

Su jesse dovresti modificare solo una riga in / etc / default / grub. Su wheezy non c'è davvero alcun modo per abilitare questo AFAIK. Mi piace molto il nuovo schema di denominazione, quindi ho impostato le mie regole udev sui miei server wheeze.
GnP,

Risposte:


11

La versione 220-7 su Debian ha rilasciato la patch che ha reso questo opt-in:

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

Ciò è nato da una proposta nell'elenco debian-devel . I sistemi che utilizzavano la vecchia denominazione non verranno rinominati fino alla migrazione dell'utente. Leggi README.Debian per la guida alla migrazione.

Il nuovo nome può essere previsto usando:

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

dove eth0è il nome corrente del dispositivo.


5

Suppongo tu stia parlando di Sid o Jessie. Per wheezy potresti voler provare il backport di v204 .

Potrebbero esserci alcune idee sbagliate in gioco qui: come si può vedere dalle regole di udev qui (per v208 attualmente in sid), gli sviluppatori di udev hanno esplicitamente scelto il cmdline del kernel come modo predefinito per abilitare questa funzionalità.
Non vedo nulla di intrinsecamente "eccessivo" con utilizzando l'interfaccia scelto per esso e semplicemente mettendo GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"in /etc/default/grub. C'è qualche effetto collaterale specifico di cui ti preoccupi?

Il fatto che la risposta che hai menzionato suggerisca di rimuovere un file per disabilitarlo è un hack (almeno nel caso di Debian) che non funzionerebbe a lungo termine perché in debian queste regole sono archiviate /lib/udev/rules.d, cioè: verrebbero sovrascritte in un aggiornamento (inoltre, disabilitare la funzionalità rimuovendo efficacemente il file che lo descrive ha un senso, ma abilitarlo è fondamentalmente diverso, quindi penso che questo sia un confronto ingiusto).

OTOH, se hai una ragione concreta per non usare il cmdline del kernel, puoi segnalare un bug contro il pacchetto debian e far spostare il manutentore su queste regole /etc/udev/. Quindi si potrebbe teoricamente passare tra le attuali regole "persistenti" e le nuove "prevedibili".

Ma solo FYI: guardando le fonti per la versione 209, sembra sbarazzarsi del net.if_namescontrollo del tutto, quindi la tua domanda potrebbe aver bisogno di un po 'di adattamento nel prossimo futuro.


1
"ha scelto esplicitamente il cmdline del kernel come modo predefinito per abilitare questa funzionalità." in realtà è una patch Debian che lo fa , non gli sviluppatori udev. Includevano solo un metodo per disattivarlo all'avvio, Debian lo ha modificato in opt-in e abilitarlo dovrebbe essere facile poiché è abilitato di default.
Braiam,

@Braiam: bella cattura! Ma penso che l'argomento principale resti che sia stata una scelta udev di usare il cmdline del kernel come interfaccia, sia per abilitarlo che disabilitarlo.
Leo Antunes,

Ho modificato la riga di comando del kernel per includere il net.ifname=1parametro, ma questa funzione non era abilitata su Linux Mint. Quali distro Linux sono note per il supporto di questa funzione?
Sherrellbc,

0

Su Debian / Ubuntu, a partire da udev 220, puoi abilitare i nuovi nomi rinominando questo file:

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

Come suggerito da /usr/share/doc/udev/README.Debian.gz, seguito da

sudo update-initramfs -u

Quindi riavviare (o rmmod + insmod del modulo che guida la scheda di rete).


-1

Ubuntu 15.10 usa biosdevnameche non fornisce nomi di interfaccia di rete prevedibili. Anche se lo rimuovi (apt-get remove biosdevname) e modifichi grub ( GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1") e le regole persistenti, non otterrai comunque interfacce di rete prevedibili.

Il motivo principale sembra essere la compatibilità con le versioni precedenti. L'ho testato proprio ora con 2 dispositivi USB mobili a banda larga e il nome dell'interfaccia di rete è incoerente in ogni avvio (ad es. La prima interfaccia usb0, la seconda usb1 e viceversa). Il motivo principale sembra essere la compatibilità con le versioni precedenti.

Ci sono alcuni bug aperti su launchpad (ad esempio questo ) ma la risposta breve è che se stai cercando nomi di interfaccia di rete prevedibili, dovresti cercare una distro diversa.


Fatto! In realtà aggiornerò la risposta come penso di averla.
Anthony Hunt,

@roalma Ho aggiornato la risposta! Ci scusiamo per il precedente post "simile a un commento".
Anthony Hunt,

Debian supporta questa funzionalità di default dalla versione 220-7 quando hanno lasciato cadere la patch che ha comportato il comportamento. Ora i nuovi sistemi installati userebbero i nomi prevedibili per impostazione predefinita.
Braiam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.