Estoy cambiando el nombre de las interfaces de red modificando los archivos /etc/sysconfig/network-scripts
.
- eth0 -> nic0
- eth1 -> nic1
El contenido de los scripts de red se ve así, después de la modificación:
# cat /etc/sysconfig/network-scripts/ifcfg-nic0
DEVICE=nic0
BOOTPROTO=static
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
USERCTL=no
IPV6INIT=no
MASTER=bond0
SLAVE=yes
Un reinicio activa la nueva configuración. Pero, ¿cómo activo esta configuración sin reiniciar?
A systemctl restart network
no hace el truco.
Puedo cerrar una interfaz por su nombre anterior ( ifdown eth0
) pero ifup
aparece el siguiente mensaje sin importar si se proporcionó el nombre antiguo o nuevo:
ERROR: [/ etc / sysconfig / network-scripts / ifup-eth] El dispositivo nic0 no parece estar presente, retrasando la inicialización.
/etc/init.d/network status
muestra esta salida:
Configured devices:
lo bond0 nic0 nic1
Currently active devices:
lo eth0 eth1 bond0
Ambos, ifconfig
y ip a
muestran los antiguos nombres de interfaz.
centos
configuration
network-interface
udondan
fuente
fuente
Respuestas:
Puede cambiar el nombre del dispositivo con el comando ip:
Editar :
También puede asegurarse de configurar una regla udev, para que esto funcione en el próximo reinicio también. La ruta para udev se movió en CentOS 7 a /usr/lib/udev/rules.d/60-net.rules, pero aún puede administrarlo de la misma manera. Si agregó "net.ifnames = 0 biosdevname = 0" a la cadena de arranque del kernel para volver al antiguo esquema de nomenclatura para sus nics, puede eliminar
Y reemplazarlo con
Necesita una entrada por nic. Asegúrese de usar la dirección MAC correcta y actualice el campo NOMBRE. Si no usó "net.ifnames = 0 biosdevname = 0", tenga cuidado ya que podría haber consecuencias no deseadas.
fuente
/etc/udev/rules.d/90-eno-fix.rules
porque anula todas las soluciones que funcionaban anteriormente para cambiar el nombre de los dispositivos de red.eno########
valor que anula todos estos intentos de cambiarle el nombre a algo asíeth0
. ¿Tiene sentido? Tendré que verificar en mi máquina qué versión estoy usando, pero ayer actualicé al último CentOS 7.3, así que creo que mencionaré la versión.En realidad, creo que la mejor respuesta es la combinación de las dos respuestas ya publicadas. Para cambiar el nombre del dispositivo sin reiniciar los servicios de red, use los
ip link
comandos sugeridos por James Shewey (ip link set <old_device_name> name <new_device_name>
).Para que los cambios sobrevivan al reinicio en Red Hat Linux, modifique el archivo correspondiente en
/etc/sysconfig/network-scripts/
. Cambie el nombre del archivoifcfg_<old_device_name>
aifcfg_<new_device_name>
y cambie laDEVICE
variable dentro a<new_device_name>
. Además, asegúrese de que laHWADDR
variable esté establecida y sea correcta. No es necesario tocar las reglas de udev , ya60-net.rules
que en realidad está allí para leer los archivos de configuración de ifcfg/etc/sysconfig/network-scripts
.fuente
Para restaurar la antigua convención de nomenclatura, debe editar el
/etc/default/grub
archivo y agregar lo siguienteal final de la
GRUB_CMDLINE_LINUX
variablefuente
biosdevname
paquete si está instaladofuente
La respuesta dada por @James Shewey parece ser la forma correcta de hacerlo.
Si solo desea trabajar con los archivos de configuración
/etc/sysconfig/network-scripts
y luego desencadenar una recarga, descargar y cargar el módulo del kernel como lo menciona @Tom Hunt en los comentarios también funciona:Si accede a la máquina de forma remota, asegúrese de ejecutar todos los comandos en un nohup o se bloqueará:
El controlador para recargar, por supuesto, depende de su interfaz.
fuente
Intenté lo anterior con Vagrant / VirtualBox y ansible, pero de alguna manera esto no funcionó en absoluto en mi entorno de desarrollo.
Los antiguos nombres de la interfaz se mantuvieron lo que hice hasta que se reinició por completo.
Agregué las siguientes reglas en
/etc/udev/rules.d/60-persistent-net.rules
(basadas en: https://access.redhat.com/solutions/112643 )Mi objetivo era darle a la interfaz un nombre específico basado en la dirección PCI.
Ejemplo:
Después de agregar esas reglas ejecuté los siguientes comandos:
El mensaje de error estaba
Cannot find device "int0"
en elip link set * up
comando. Y en/var/log/messages
noté los siguientes mensajesPero lo siguiente funcionó al acceder a la VM a través de VirtualBox y ejecutar los siguientes comandos para eliminar y volver a agregar el módulo del kernel.
Encontré esto en el siguiente hilo: https://www.centos.org/forums/viewtopic.php?t=54695
Lo extraño que noté fue que
lsmod
me da (tenga en cuenta elUsed by
)fuente
ip link set eth0 down; ip link set eth0 name int0; ip link set int0 up
:? Sinudev...
comando!