Desactivar IPv6 en GNU/Linux
En la actualidad se utilizan dos versiones del protocolo IP: IPv4 e IPv6. El primero utiliza direcciones de 32 bits y pese a ser una versión anterior sigue gozando de muy buena salud. El segundo utiliza direcciones de 128 bits y se ha desarrollado para solucionar el problema que plantea el agotamiento de direcciones IPv4.
La adopción de IPv6 no está resultando demasiado rápida. Google mantiene una página (https://www.google.com/intl/en/ipv6/statistics.html#tab=ipv6-adoption) en la que se informa que el nivel global de adopción de IPv6 es del 31.17%.
Pero este porcentaje del 30% resulta engañoso por tratarse de una media global, el despliegue de IPv6 es muy diferente para cada país. En estos momento India es el país con una mayor adopción de IPv6 (55.94%) pero España cuenta con una adopción de IPv6 del 2.72%. Y cada ISP u organización puede tener una política diferente al respecto. Puede realizar un diagnóstico rápido sobre el soporte de IPv6 accediendo a: http://test-ipv6.com/
Dicho esto hay que aclarar que GNU/Linux soporta IPv6 desde hace mucho tiempo y la mayoría de las distribuciones activan IPv6 por defecto. Sin embargo dependiendo del ISP que se utilice o la herramienta (te estoy mirando a tí VirtualBox) el soporte de IPv6 puede hacer más mal que bien.
Por ejemplo, el ordenador que utilizo con Ubuntu 20.04 en casa en la interfaz WiFi tiene:
- Una IPv4
- Tres IPv6
Las direcciones IPv6 permiten sin problemas:
- Hacer consultas a servidores DNS IPv6. Por ejemplo, se puede preguntar por la IP de
wikipedia.org
a2606:4700:4700::1111
que es uno de los servidores DNS de Cloudflare.usuario@laika:~$ host wikipedia.org 2606:4700:4700::1111 Using domain server: Name: 2606:4700:4700::1111 Address: 2606:4700:4700::1111#53 Aliases: wikipedia.org has address 91.198.174.192 wikipedia.org has IPv6 address 2620:0:862:ed1a::1 wikipedia.org mail is handled by 10 mx1001.wikimedia.org. wikipedia.org mail is handled by 50 mx2001.wikimedia.org. usuario@laika:~$
- Se puede hacer
ping
a la IPv6 dewikipedia.org
usuario@laika:~$ ping -c 1 2620:0:862:ed1a::1 PING 2620:0:862:ed1a::1(2620:0:862:ed1a::1) 56 data bytes 64 bytes from 2620:0:862:ed1a::1: icmp_seq=1 ttl=53 time=78.5 ms --- 2620:0:862:ed1a::1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 78.487/78.487/78.487/0.000 ms usuario@laika:~$
Y lo más importante es que nunca he percibido ningún problema de red, ni al utilizar contenedores LXD ni con máquinas virtuales con KVM. Hasta que he tropezado con un molesto comportamiento de VirtualBox.
Al utilizar GNU/Linux en una MV de VirtualBox me he encontrado con:
- El SO configura direcciones IPv6 en las interfaces de red.
- Con IPv4 no hay ningún problema de conexión.
- Con IPv6 únicamente se puede conectar con otras MVs del mismo host pero resulta imposible acceder a servicios de Internet.
El último punto puede provocar muchos dolores de cabeza al provocar errores más o menos erráticos a medida que, por ejemplo, el resolver decide intentar utilizar un servidor DNS con IPv6 en lugar de IPv4.
En esta situación conviene desactivar el soporte para IPv6 en el sistema operativo de la MV.
Fichero /etc/sysctl.conf
El fichero /etc/sysctl.conf
guarda la configuración de Linux que se aplicará durante el arranque de la máquina.
Para desactivar completamente el soporte de IPv6 conviene añadir al fichero las siguientes líneas:
# Desactivamos el soporte para IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Después se podrá ejecutar el comando sysctl -p
para aplicar los cambios inmediatamente o bien reiniciar el ordenador.