Deshabilitar IPv6 en Raspbian

Si no lo estamos utilizando, es interesante deshabilitar el protocolo IPv6 en nuestra Raspberry Pi con Raspbian.

 
deshabilitar ipv6 raspbian
 
En este artículo:

 

 

Razones para deshabilitar IPv6

 

  • En una máquina con IPv4 e IPv6 habilitados, la preferencia es usar las rutas de IPv6. Esto puede dar lugar a problemas en caso de usar una VPN por ejemplo.
  • IPv6 no usa NAT. Todos los dispositivos son enrutables desde Internet. La protección que otorgaba NAT, en el caso de IPv6 no es aplicable. Así que la configuración de seguridad de la red necesitará un replanteamiento si vamos a utilizar IPv6.
  • En resumen, aunque el protocolo IPv6 va a traer mejoras, en muchos casos veremos que pueden aparecer errores relacionados con IPv6 en nuestros sistemas Linux y en nuestra red. Si no lo usamos, lo desactivaremos y listo.

 

 

Formas de deshabilitar IPv6 en Raspbian

 

  • 1. El método más conocido es utilizar el archivo de configuración /etc/sysctl.conf, que se utiliza para pasar al kernel parámetros de configuración en tiempo de ejecución.

     

 

Para deshabilitar IPv6 en tiempo de ejecución, editaremos el archivo /etc/sysctl.conf y añadiremos:

1
2
3
4
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1

 
deshabilitar ipv6 con sysctl.conf en raspbian
 

Y después para aplicar los cambios, ejecutaremos:

1
sysctl -p

 

–> COMPROBAR SI IPv6 ESTÁ ACTIVADO O DESACTIVADO TRAS USAR SYSCTL.CONF

 
Para comprobar si IPv6 está activado o desactivado tras haber enviado el parámetro disable_ipv6 por medio del archivo sysctl.conf, hemos de comprobar si existe el archivo /proc/sys/net/ipv6/conf/all/disable_ipv6:

Ejecutaremos:

1
cat /proc/sys/net/ipv6/conf/all/disable_ipv6

 
–> Si devuelve 0, es que ipv6 está activado

ipv6 activado - cat /proc/sys/net/ipv6/conf/all/disable_ipv6

 

–> Si devuelve 1, es que ipv6 está desactivado

ipvs deshabilitado - cat /proc/sys/net/ipv6/conf/all/disable_ipv6

 

 

Parece ser que este método no funciona en las últimas versiones de Raspbian (y otros sistemas que utilizan systemd). IPv6 permanece activo a pesar de las configuraciones de /etc/sysctl.conf.

 
Lo podemos ver:

raspberry sysctl.conf ipv6 sigue activo

Así que ahora IPv6 sigue habilitado a pesar de haber realizado los pasos anteriores por medio de /etc/sysctl.conf

 
Será mejor que utilicemos el método para desactivar IPv6 por medio de /boot/cmdline.txt
 

 

  • Otro método para desactivar IPv6, es a través del archivo /boot/cmdline.txt

 

El archivo /boot/cmdline.txt sirve para pasar argumentos al kernel de Linux durante el arranque.

 

Modificamos dicho archivo, y al final del contenido existente, dejamos un espacio y añadimos:

1
ipv6.disable=1

 
desactivar ipv6 con cmdline.txt en raspbian
 
Después reiniciamos el sistema para aplicar los cambios.
 

 

Posibles Errores del daemon systemd-sysctl si deshabilitamos IPv6 usando los dos métodos a la vez

 

Si modificamos parámetros para deshabilitar IPv6, tanto en el archivo sysctl.conf como en cmdline.txt, al reiniciar el sistema, el daemon systemd-sysctl arrojará errores el el log /var/log/syslog, ya que al pasar parámetros en el archivo cmdline.txt para en este caso desactivar IPv6, el daemon systemctl-sysctl intenta encontrar los archivos de configuración de IPv6, pero ya han sido eliminados al haber deshabilitado IPv6 desde el arranque del kernel con /boot/cmdline.txt .

 
En ese caso recibiremos el error:

Couldn’t write ‘1’ to ‘net/ipv6/conf/all/disable_ipv6’, ignoring: No such file or directory

 

Couldn't write '1' to 'net/ipv6/conf/all/disable_ipv6', ignoring: No such file or directory

El mensaje de error es muy claro, el archivo no existe.

El archivo /proc/sys/net/ipv6/conf/all/disable_ipv6 no existe, porque al desactivar IPv6 en el arranque, por medio de /boot/cmdline.txt, los archivos relacionados han desaparecido.
 

 

Comprobar si el proceso de IPv6 está activo o inactivo en Raspbian

 
En la siguiente captura comprobamos que IPv6 está activado:

revisamos los procesos en funcionamiento, haciendo una búsqueda de IPv6:

1
ps -aux | grep ipv6

 
ipv6 raspberry

 

Y en la siguiente imagen comprobamos que IPv6 ya está deshabilitado, ya que no aparece:

ps -aux | grep ipv6

 

 

Error debido a que el módulo IPv6 no ha sido deshabilitado:

 

IPv6: Loaded, but administratively disabled, reboot required to enable

 
Aunque hayamos deshabilitado IPv6 con los pasos previamente mencionados, es posible que en nuestro archivo /var/log/syslog recibamos el error:

1
IPv6: Loaded, but administratively disabled, reboot required to enable

 

Esto es debido a que hemos deshabilitado la funcionalidad de IPv6, pero el módulo sigue cargando al inicio.

 
A continuación podemos ver cómo solucionar este error:

IPv6: Loaded, but administratively disabled, reboot required to enable SOLUCIONADO

 

Atribución de imagen: CC BY-SA 4.0, KugXel via Wikimedia Commons