Configurar una dirección IPv6 estática que hereda el prefijo delegado

Configurar una dirección IPv6 estática que hereda el prefijo delegado

Mi ISP (comcast) delega un prefijo, mi enrutador pasa la delegación de prefijo (pd) a la LAN. Mi máquina Debian obtiene el prefijo y lo agrega usando la dirección EUI-64. Eso es bonito pero no muy memorable. Prefiero tener una dirección "personalizada" adicional dentro del prefijo PD.

Alguna especificidad:

  • El PD es (p. ej., 2601:8:abcd:abcd/64)
  • Mi caja de Linux se configura automáticamente eui-64: 2601:8:abcd:abcd:DEAD:BEff:feEF:CAFE (para MAC DE:AD:BE:EF:CA:FE)

Lo que me gustaría es crear manualmente una interfaz: 2601:8:abcd:abcd::2 como una dirección global estática, pero si la delegación del prefijo de Comcast cambia, haga que la interfaz adopte el nuevo prefijo delegado y use el sufijo estático.

Respuesta1

Creo que lo que estás buscando es:

ip token set ::dead:beef/64 dev eth0

Por lo que tengo entendido, ejecuta eso antes de ejecutar lo que normalmente ejecuta para obtener una dirección IP6, y 0:0:dead:beefse usará en lugar del EUI-64 normal.

Curiosamente, esto no parece agregar una dirección de enlace local correspondiente, sino que agrega el EUI-64 normal con el fe80::/64prefijo. Puedes arreglar esto manualmente con:

ip addr flush scope link dev eth0
ip addr add fe80::dead:beef/64 dev eth0

Reemplace el sufijo, el tamaño del prefijo y la interfaz ( ::dead:beef, /64, eth0) según corresponda.

Respuesta2

Mientras tanto, Network Manager se utiliza de forma predeterminada en casi todas las distribuciones GNU/Linux (segúnhttp://news.softpedia.com/news/networkmanager-1-4-adds-support-for-setting-ipv6-tokenized-interface-identifiers-507601.shtml) Pensé que esta otra discusión enhttps://unix.stackexchange.com/a/403541/259695puede ser útil. El token se puede configurar mediante

nmcli connection modify eth0 ipv6.method "auto" # if not already
nmcli connection modify eth0 ipv6.addr-gen-mode "eui64" # use interface token
nmcli connection modify eth0 ipv6.token "::dead:beef" # or "::2" - as you like

que escribirá IPV6_TOKEN=::dead:beefen /etc/sysconfig/network-scripts/ifcfg-eth0 para sobrevivir al reinicio. Para aplicar esto inmediatamente, reinicie la interfaz

nmcli connection up id eth0  # restart

Respuesta3

Además de anunciar el prefijo de red, deberá utilizar el servicio DHCPv6 con estado.

De manera similar a DHCPv4, el servidor DHCPv6 en modo con estado asigna a los hosts las direcciones del rango que desea, y puede ser un rango muy pequeño, por ejemplo 2601:8:abcd:abcd::10-2601:8:abcd:abcd:: 99. he estado usandodnsmasqen mis enrutadores.

Normalmente, además de la dirección asignada por DHCPv6, los hosts seguirán generando de forma autónoma direcciones IPv6 de unidifusión: cada interfaz tendrá dos (o incluso más) de ellas. Puede desactivar ese comportamiento modificando la configuración del enrutador; deshabilitar el indicador de configuración de dirección autónoma será suficiente. Pero también hará que la mayoría de los dispositivos Android no puedan obtener la dirección IPv6; Android (al menos con KitKat 4.4.4) todavía no es compatible correctamente con DHCPv6...

Respuesta4

¡No puedo creer que esta pregunta no haya sido respondida todavía!

Excelenterespuesta de Jürgenpero no se aplica a servidores que utilizan networkd para representar la red en lugar del NetworkManager.

Para servidores que necesitan un IPv6 semiestático y autoajustable tenemos que agregar la línea

ipv6-address-token: "::ace:face"

a la descripción de la interfaz en netplan yaml. p.ej

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      ipv6-address-token: "::ace:face"
      addresses:
        - <ipv4 static address>
      nameservers: ...

Sin embargo, si el reenvío de IP está habilitado, se debe agregar la siguiente línea para /etc/sysctl.confanular la desactivación del accept_ravalor predeterminado por networkd. La lógica (si somos un enrutador, no deberíamos aceptar ra de otros enrutadores) tiene sentido pero no se aplica en algunos casos.

net.ipv6.conf.eth0.accept_ra=2

La línea en sysctl conf fuerza la aceptación del anuncio del enrutador (ra) a pesar de la configuración de reenvío de IP. Esto es fundamental ya que ra nos informa del prefijo delegado.

La línea Plantilla de token de dirección IPv6 en netplan es para generar la dirección IPv6 que utiliza el prefijo proporcionado por el enrutador y nuestra dirección especificada para generar la dirección. Entonces, terminamos con una dirección de la forma de

<delegated prefix>::ace:face/<bit length of netmask>

Aún así, no es completamente estático pero sí predecible, y no tengo que reconfigurar cada servidor cuando cambia el prefijo.

información relacionada