¿Cómo obtengo una dirección IPv6 estable en 16.04?

¿Cómo obtengo una dirección IPv6 estable en 16.04?

Tengo un nombre de dominio que apunta hacia mi servidor doméstico. En cada versión de Ubuntu hasta Wily, de forma predeterminada tenía una dirección EIU-64 estable que podía usar para mi registro AAAA. Sin embargo, después de instalar Xenial, parece que no obtengo una dirección estable de forma predeterminada.

joejoe@myserver:~$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:24:1d:d2:e3:f4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.101/24 brd 192.168.0.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 2601:280:3068:2945:74ed:b303:6474:6e29/64 scope global temporary dynamic
       valid_lft 6965sec preferred_lft 3363sec
    inet6 2601:280:3068:2945:ac34:ea15:4340:29a4/64 scope global temporary deprecated dynamic
       valid_lft 6965sec preferred_lft 0sec
    inet6 2601:280:3068:2945:bdfd:6253:b07e:1308/64 scope global mngtmpaddr noprefixroute dynamic
       valid_lft 6965sec preferred_lft 6965sec
    inet6 fe80::dc3e:6127:bd4e:18b/64 scope link
       valid_lft forever preferred_lft forever

Como puede ver, todas las inet6direcciones scope globaltienen una vida útil limitada. ¿Hay alguna manera de recuperar mi dirección EIU-64 o hay alguna otra manera de obtener una dirección estable que pueda usar en un registro de nombre de dominio?

Respuesta1

Me acabo de dar cuenta de esto. Para cada conexión en /etc/NetworkManager/system-connections/, debe establecer la siguiente propiedad:

[ipv6]
addr-gen-mode=eui64

NetworkManager en 16.04 parece establecer un valor predeterminado stable-privacypara la addr-gen-modeconfiguración.

Respuesta2

Las otras respuestas aquí están un poco incompletas: cambiar las configuraciones de NetworkManager no ayuda si no lo haceteneruno (que en realidad es el problema, ver más abajo), y deshabilitar las extensiones de privacidad IPv6 en realidad no tiene ninguna relación (nuevamente, si su dirección IPv6 supuestamente estable cambia en cada arranque, eliminar las direcciones de privacidad adicionales no ayuda).

Como se detalla eneste hilo, una nueva instalación predeterminada de 16.04 tiene un ligero descuido si está utilizando una conexión por cable. NetworkManager genera automáticamente una configuración "efímera", que funciona muy bien pero es, bueno, efímera. Esto significa que el GUID utilizado para generar una dirección IPv6 supuestamente coherente no se almacena, por lo que obtienes uno nuevo en cada arranque. Simplemente ingresando a NetworkManager, presionando "editar" en la conexión por cable y guardándola sin cambios se generará una configuración NM real, con un GUID guardado, por lo que obtendrá la misma dirección IPv6 en cada inicio.

Esta dirección es una dirección RFC7217 (un hash criptográfico del GUID, su prefijo, etc., etc.), por lo que, aunque es estable en cada arranque, no es del tipo que incluye su dirección MAC directamente en la dirección. Si quieres una de esas direcciones EUI64,esta otra respuesta a esta preguntadetalla cómo cambiar eso.

Respuesta3

Ubuntu 16.04 y versiones anteriores siempre han tenido por defecto EIU-64, por lo que para los servidores tengo que desactivarlo. Estoy feliz de usar la dirección de privacidad en mi escritorio.

Entonces necesitas algo como:

    sysctl -w net.ipv6.conf.all.use_tempaddr=0
    sysctl -w net.ipv6.conf.default.use_tempaddr=0
    sysctl -w net.ipv6.conf.default.use_tempaddr=0
    sysctl -w net.ipv6.conf.<devname>.use_tempaddr=0

Luego si abajo/si arriba. El resultado para mí, tenga en cuenta la relación MAC/IPv6:

$ ifconfig enp3s0 | egrep 'HWaddr|Global'
enp3s0    Link encap:Ethernet  HWaddr 74:d0:2b:90:8b:90  
          inet6 addr: 2501:300:d008:61c8:76d0:2bff:fe90:8b90/64 Scope:Global

Puede nombrar interfaces específicas si necesita habilitarlo en algunas interfaces y no en otras. Puedes ver la lista con:

$ sysctl -a | grep tempaddr

No recomiendo Network Manager para servicios de producción. Por ejemplo, no funciona bien con otros, como /etc/sysctl.conf, por ejemplo. Si desea hacer eso, necesitará una entrada en /etc/networking/interfaces para una dirección estática o una configurada automáticamente. Sólo estoy usando:

auto enp3s0 
iface enp3s0 inet dhcp
iface enp3s0 inet6 auto
pre-up modprobe ipv6

Ajustar al gusto por supuesto.

información relacionada