Product SiteDocumentation Site

10.5. IPv6

IPv6, sucesor de IPv4, es una nueva versión del protocolo IP diseñado para corregir sus fallas, especialmente la escasez de direcciones IP disponibles. Este protocolo gestiona la capa de red; su propósito es proveer una forma de direccionar máquinas para transmitir los datos a donde fueron destinados y administrar la fragmentación de datos si es necesaria (en otras palabras, dividir los paquetes en trozos de un tamaño que dependa de los enlaces de red utilizados en el camino y unirlos nuevamente en el orden apropiado cuando lleguen).
Los núcleos Debian incluyen la gestión de IPv6 en el corazón del núcleo (con la excepción de algunas arquitecturas que la poseen como un módulo llamado ipv6). Las herramientas básicas como ping y traceroute tienen sus equivalentes IPv6, ping6 y traceroute6, disponibles en los paquetes iputils-ping y iputils-tracepath respectivamente.
Una red IPv6 se configura de forma similar a una IPv4, en el archivo /etc/network/interfaces. Pero si desea que se pueda acceder globalmente a la red debe asegurarse de tener un router compatible con IPv6 que retransmita datos a la red IPv6 global.

Ejemplo 10.10. Ejemplo de configuración IPv6

iface eth0 inet6 static
    address 2001:db8:1234:5::1:1/64
    # Disabling auto-configuration
    # autoconf 0
    # The router is auto-configured and has no fixed address
    # (accept_ra 1). If it had:
    # gateway 2001:db8:1234:5::1
Las subredes IPv6 generalmente tienen una máscara de red de 64 bits. Esto significa que existen 264 direcciones diferentes dentro de la subred. Esto permite que «Stateless Address Autoconfiguration» (SLAAC: autoconfiguración de direcciones sin estado) selecione una dirección basada en la dirección MAC de la interfaz de red. De forma predeterminada, si SLAAC está activado en su red e IPv6 en su equipo, el núcleo encontrará enrutadores IPv6 automáticamente y configurará las interfaces de red.
Este comportamiento podría tener consecuencias en la privacidad. Si cambia de red frecuentemente, por ejemplo con un portátil, podría no desear que su dirección MAC sea parte de su dirección IPv6 pública. Esto facilita la identificación del mismo dispositivo en varias redes. Las extensiones de privacidad de IPv6 (las cuales en Debian se habilitan por defecto si se detecta conectividad IPv6 durante la instalación inicial) son una solución a este problema, las que asignarán direcciones adicionales generadas aleatoriamente a la interfaz, las cambiarán periódicamente y las preferirán para conexiones salientes. Las conexiones entrantes todavía podrán utilizar las direcciones generadas por SLAAC. El ejemplo a continuación, para utilizar en /etc/network/interfaces, activa estas extensiones de privacidad.

Ejemplo 10.11. Extensiones de privacidad IPv6

iface eth0 inet6 auto
    # Preferir las direcciones asignadas aleatoriamente para conexiones salientes.
    privext 2
Puede restringir las conexiones IPv6 de la misma forma que aquellas IPv4: el núcleo Debian estándar incluye una adaptación de netfilter para IPv6. Puede configurar esta versión de netfilter para IPv6 de forma similar a su contraparte IPv4 utilizando el programa ip6tables en lugar de iptables.

10.5.1. Túneles

If a native IPv6 connection is not available, the fallback method is to use a tunnel over IPv4. Hurricane Electric is one (free) provider of such tunnels:
To use a Hurricane Electric tunnel, you need to register an account, login, select a free tunnel and edit the file /etc/network/interfaces with the generated code.
You can install and configure the radvd daemon (from the similarly-named package) if you want to use the configured computer as a router for a local network. This IPv6 configuration daemon has a role similar to dhcpd in the IPv4 world.
The /etc/radvd.conf configuration file must then be created (see /usr/share/doc/radvd/examples/simple-radvd.conf as a starting point). In our case, the only required change is the prefix, which needs to be replaced with the one provided by Hurricane Electric; it can be found in the output of the ip a command, in the block concerning the he-ipv6 interface.
Then run systemctl start radvd. The IPv6 network should now work.