Desactivar IPv6 en GNU/Linux

per Victor Carceler darrera modificació 2021-01-07T11:01:26+01:00

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%.

https://www.google.com/intl/en/ipv6/statistics.html#tab=ipv6-adoption

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.org2606: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 de wikipedia.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:

  1. El SO configura direcciones IPv6 en las interfaces de red.
  2. Con IPv4 no hay ningún problema de conexión.
  3. 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.