¿Cómo habilitar los "Nombres de interfaz de red predecibles"?


12

Decidí verificar con qué nombre terminará mi dispositivo ethernet, pero a diferencia de otras distribuciones , Debian no parece haber activado este cambio (¿o lo está reteniendo?),

  • Mantenga el antiguo esquema de nombres de interfaz de red persistente por ahora y haga que el nuevo se suscriba a través de net.ifnames = 1 en la línea de comando del núcleo.

El problema es que tengo que editar las líneas del núcleo de grub, y eso parece excesivo para algo que se puede deshabilitar modificando un archivo . ¿Hay otra manera?


Tal vez desee consultar este enlace: science.uva.nl/research/air/wiki/LogicalInterfaceNames Puede encontrar una solución alternativa como nameif y actualizar el archivo de inicio ... @Braiam
user1527227

@ user1527227 eso es exactamente lo que no quiero hacer.
Braiam

En jesse solo debería modificar una línea en / etc / default / grub. En wheezy realmente no hay forma de habilitar este AFAIK. Realmente me gusta el nuevo esquema de nombres, así que configuré mis propias reglas de udev en mis servidores de sibilancias.
GnP

Respuestas:


11

La versión 220-7 en Debian eliminó el parche que hizo esta suscripción:

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

Esto surgió de una propuesta en la lista debian-devel . Los sistemas que usaban los nombres antiguos no se renombrarán hasta que el usuario migre. Lea README.Debian para la guía de migración.

El nuevo nombre se puede predecir usando:

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

donde eth0está el nombre actual del dispositivo.


5

Supongo que estás hablando de Sid o Jessie. Para wheezy es posible que desee probar el puerto de v204 .

Puede haber algunas ideas falsas en juego aquí: como se puede ver en las reglas de udev aquí (para v208 actualmente en sid), los desarrolladores de udev eligieron explícitamente el cmdline del kernel como la forma predeterminada de habilitar esta funcionalidad.
No veo nada inherentemente "exceso" con el uso de la interfaz elegida para ello y simplemente poner GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"en /etc/default/grub. ¿Hay algún efecto secundario específico que le preocupe?

El hecho de que la respuesta que mencionó sugiere eliminar un archivo para deshabilitarlo es un hack (al menos en el caso de Debian) que no funcionaría a largo plazo porque en debian esas reglas están almacenadas /lib/udev/rules.d, es decir: se sobrescribirán en una actualización (además, deshabilitar la funcionalidad al eliminar efectivamente el archivo que lo describe tiene sentido, pero habilitarlo es fundamentalmente diferente, por lo que creo que esta es una comparación injusta).

OTOH, si tiene una razón concreta para no usar el cmdline del kernel, puede informar un error en el paquete de Debian y hacer que el mantenedor mueva estas reglas /etc/udev/. Entonces, teóricamente, podría cambiar entre las reglas actuales "persistentes" y las nuevas "predecibles".

Pero solo para su información: mirando las fuentes de la versión 209, parece deshacerse de la net.if_namesverificación por completo, por lo que su pregunta puede necesitar una nueva dirección en el futuro cercano.


1
"eligió explícitamente el cmdline del núcleo como la forma predeterminada de habilitar esta funcionalidad". en realidad es un parche de Debian que hace esto , no los desarrolladores de udev. Solo incluyeron un método para hacer que se cancele la suscripción en el arranque, Debian lo cambió para activarlo, y habilitarlo debería ser fácil, ya que está habilitado de forma predeterminada.
Braiam

@Braiam: ¡Buena captura! Pero creo que el argumento principal sigue siendo que fue una elección udev utilizar el cmdline del kernel como interfaz, ya sea para habilitarlo o deshabilitarlo.
Leo Antunes

Edité la línea de comando del kernel para incluir el net.ifname=1parámetro, pero esta característica no estaba habilitada en Linux Mint. ¿Qué distribuciones de Linux tienen soporte para esta función?
sherrellbc

0

En Debian / Ubuntu, comenzando con udev 220, puede habilitar los nuevos nombres cambiando el nombre de este archivo:

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

Según lo sugerido /usr/share/doc/udev/README.Debian.gz, seguido de

sudo update-initramfs -u

Luego reinicie (o rmmod + insmod del módulo que maneja su tarjeta de red).


-1

Ubuntu 15.10 utiliza biosdevnamelo que no proporciona nombres de interfaz de red predecibles. Incluso si lo elimina (apt-get remove biosdevname) y edita grub ( GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1") y las reglas persistentes, aún no obtiene interacciones de red predecibles.

La razón principal parece ser la compatibilidad con versiones anteriores. Lo probé hace un momento con 2 dispositivos USB de banda ancha móvil y el nombre de la interfaz de red aparece de manera inconsistente en cada arranque (por ejemplo, la primera interfaz usb0, la segunda usb1 y viceversa). La razón principal parece ser la compatibilidad con versiones anteriores.

Hay algunos errores abiertos en la plataforma de lanzamiento (por ejemplo, esto ), pero la respuesta breve es que si está buscando nombres de interfaz de red predecibles, debe buscar una distribución diferente.


¡Entendido! De hecho, actualizaré la respuesta ya que creo que la tengo.
Anthony Hunt

@roalma ¡He actualizado la respuesta! Perdón por la publicación anterior "como comentario".
Anthony Hunt

Debian admite esta funcionalidad de forma predeterminada desde la versión 220-7 cuando eliminaron el parche que provocó el comportamiento. Ahora los nuevos sistemas instalados usarían los nombres predecibles por defecto.
Braiam
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.