Forzar la configuración SLAAC en Linux usando la MAC para obtener la IPv6 (EUI-64)

Antecedentes

En uno de los servidores que tengo, con distribución OpenSUSE, me dejó de obtener la direcciones IPv6, el administrador de las conexiones que tenía es el estándar de OpenSUSE , en concreto el Wicked

El problema lo detecté tras una actualización de la distribución, dejó de funcionar el servicio de DNS para las consultas que usaban la dirección IPv6 del servidor.

Cambios en la configuración para recuperar la asignación de direcciones IPv6

Al conectarme al servidor pude comprobar que no tenía asignadas direcciones IPv6, indicar que la IPv4 está configurada de forma estática.
Como llevaba tiempo con ganas de sustituir el administrador de conexiones y usar el NetworkManager, a día hoy sigue siendo el más utilizado en el resto de distribucciones, así que fue el primer cambio que realicé. Tras su instalación y configuración la conexión obtenía direcciones IPv6, pero en vez de usar la MAC utilizaba la generación aleatoria, éste problema ya lo tuve en Windows 10 y podéis consultar la entrada de como lo cambié en dicho sistema operativo.

Tras buscar como hacer lo mismo en Linux, me encontré con una pregunta en la página SuperUser, donde la respuesta que le dieron fue la que me sirvió para corregir la configuración, siendo los pasos que hice para openSUSE los siguientes.

Configuración conexión IPv6 con NetworkManager y uso de la MAC para utilizar EUI-64

El cambio que hay que realizar es el modo del generador de direcciones para IPv6, hay varias formas de hacer el cambio, principalmente cambiar la configuración del sistema con sysctl y/o cambiarla la configuración de la conexión mediante el comando de configuración que tiene NetworkManager, (nmcli)

  • Cambiar modo generador direcciones IPv6 mediante sysctl
#sysctl -w net.ipv6.conf.all.addr_gen_mode=0
net.ipv6.conf.all.addr_gen_mode = 0

Guardamos también la linea en el fichero /etc/sysctl.conf

  • Cambiar modo generador direcciones IPv6 mediante mncli

Este cambio hay que hacerlo en la conexión actual, no he probado si en conexiones nuevas es necesario o ya lo toma de la configuración del sistema.

nmcli connection modify Predeterminada_DHCP ipv6.addr-gen-mode eui64

El valor «Predeterminada_DHCP» es el nombre de la conexión, usad el que corresponda a vuestro caso. Después hay que reiniciar el servicio de red:

# systemctl restart network

O simplemente parar e iniciar la conexión

# nmcli connection down Predeterminada_DHCP 
La conexión «Predeterminada_DHCP» se desactivó correctamente (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/1)

# nmcli connection up Predeterminada_DHCP     
Conexión activada con éxito (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/5)

Tened en cuenta que si estáis conectados de forma remota, por ej por SSH, la opción de parar e iniciar no os servirá, ya que perderéis la conexión al pararla.