Comment activer les «Noms d'interface réseau prévisibles»?

12

J'ai décidé de vérifier le nom de mon périphérique Ethernet, mais contrairement à d'autres distributions , Debian ne semble pas avoir activé ce changement (ou le retient-il?),

  • Conservez l'ancien schéma de dénomination de l'interface réseau persistante pour l'instant et activez le nouveau via net.ifnames = 1 sur la ligne de commande du noyau.

Le problème est que je dois éditer les lignes du noyau grub, et cela semble exagéré pour quelque chose qui peut être désactivé en modifiant un fichier . Y a-t-il un autre moyen?

Braiam
la source
Peut-être que vous voulez vérifier ce lien: science.uva.nl/research/air/wiki/LogicalInterfaceNames Vous pouvez trouver un moyen de contourner le nom et la mise à jour du fichier de démarrage ... @Braiam
user1527227
@ user1527227 c'est exactement ce que je ne veux pas faire.
Braiam
Sur jesse, vous ne devez modifier qu'une seule ligne dans / etc / default / grub. Sur Wheezy, il n'y a vraiment aucun moyen d'activer cet AFAIK. J'aime vraiment le nouveau schéma de nommage, donc j'ai configuré mes propres règles udev sur mes serveurs Wheeze.
GnP

Réponses:

11

La version 220-7 sur Debian a supprimé le correctif qui a rendu cet opt-in:

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

Cela est venu d'une proposition dans la liste debian-devel . Les systèmes qui utilisaient l'ancien nom ne seront pas renommés tant que l'utilisateur n'aura pas migré. Lisez README.Debian pour le guide de migration.

Le nouveau nom peut être prédit en utilisant:

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

eth0est le nom actuel du périphérique.

Braiam
la source
5

Je suppose que vous parlez de Sid ou Jessie. Pour Wheezy, vous voudrez peut-être essayer le backport de la v204 .

Il peut y avoir des idées fausses en jeu ici: comme on peut le voir dans les règles udev ici (pour la v208 actuellement dans Sid), les développeurs udev ont explicitement choisi la ligne de commande du noyau comme moyen par défaut d'activer cette fonctionnalité.
Je ne vois rien en soi « surpuissant » avec l' aide de l'interface choisie pour elle et mettre simplement GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"en /etc/default/grub. Y a-t-il un effet secondaire spécifique qui vous inquiète?

Le fait que la réponse que vous avez mentionnée suggère de supprimer un fichier pour le désactiver est un hack (au moins dans le cas de Debian) qui ne fonctionnerait pas à long terme car dans Debian ces règles sont stockées /lib/udev/rules.d, c'est- à -dire qu'elles seraient écrasées dans une mise à niveau (en plus, désactiver la fonctionnalité en supprimant efficacement le fichier qui la décrit a un certain sens, mais l' activer est fondamentalement différent, donc je pense que c'est une comparaison injuste).

OTOH, si vous avez une raison concrète de ne pas utiliser la cmdline du noyau, vous pouvez signaler un bogue contre le paquet debian et demander au responsable de déplacer ces règles vers /etc/udev/. Ensuite, vous pourriez théoriquement basculer entre les règles "persistantes" actuelles et les nouvelles règles "prévisibles".

Mais juste pour info: en regardant les sources de la version 209, il semble se débarrasser net.if_namescomplètement du chèque, donc votre question pourrait nécessiter un réajustement dans un avenir proche.

Leo Antunes
la source
1
"a explicitement choisi la cmdline du noyau comme moyen par défaut d'activer cette fonctionnalité." en fait, c'est un correctif Debian qui fait cela , pas les développeurs udev. Ils n'ont inclus qu'une méthode pour le désactiver au démarrage, Debian l'a changé en opt-in, et l'activer devrait être facile car il est activé par défaut.
Braiam
@Braiam: Belle prise! Mais je pense que l'argument principal demeure qu'il s'agissait d'un choix udev d'utiliser la cmdline du noyau comme interface, que ce soit pour l'activer ou la désactiver.
Leo Antunes
J'ai modifié la ligne de commande du noyau pour inclure le net.ifname=1paramètre, mais cette fonctionnalité n'était pas activée sur Linux Mint. Quelles distributions Linux sont connues pour prendre en charge cette fonctionnalité?
sherrellbc
0

Sur Debian / Ubuntu, à partir d'udev 220, vous pouvez activer les nouveaux noms en renommant ce fichier:

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

Comme suggéré par /usr/share/doc/udev/README.Debian.gz, suivi de

sudo update-initramfs -u

Redémarrez ensuite (ou rmmod + insmod du module pilotant votre carte réseau).

Tobu
la source
-1

Ubuntu 15.10 utilise biosdevnamequi ne fournit pas de noms d'interface réseau prévisibles. Même si vous le supprimez (apt-get remove biosdevname) et éditez grub ( GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1") et les règles persistantes, vous n'obtenez toujours pas d'interface réseau prédictive.

La principale raison semble être la compatibilité descendante. Je l'ai testé tout à l'heure avec 2 périphériques USB haut débit mobiles et le nom de l'interface réseau est nommé de manière incohérente à chaque démarrage (par exemple, la première interface usb0, la seconde usb1 et l'inverse). La principale raison semble être la compatibilité descendante.

Il y a quelques bogues ouverts sur le tableau de bord (par exemple ceci ) mais la réponse courte est que si vous recherchez des noms d'interface réseau prévisibles, vous devez rechercher une distribution différente.

Anthony Hunt
la source
Je l'ai! Je vais en fait mettre à jour la réponse car je pense l'avoir.
Anthony Hunt
@roalma J'ai mis à jour la réponse! Désolé pour le message précédemment "semblable à un commentaire".
Anthony Hunt
Debian prend en charge cette fonctionnalité par défaut depuis la version 220-7 quand ils ont abandonné le correctif qui corrige le comportement. Désormais, les nouveaux systèmes installés utiliseraient les noms prévisibles par défaut.
Braiam