lunes, 21 de marzo de 2016

Deshabilitar IPv6

Normalmente uno no es consciente de si utiliza ipv6 o solamente ipv4. Lo normal en entornos pequeños o heredados es que lo que usamos sea solamente ipv4. Si esto es así, podemos desactivar ipv6 de nuestros sistemas para aligerar la carga del sistema y para aclarar diagnósticos relacionados con la configuración de red.

El ejemplo que te muestro aquí es de un sistema Ubuntu 14.04.04 LTS

Comprobamos si tenemos IPv6 habilitado
# sysctl -a | grep "ipv6 ="
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.docker0.disable_ipv6 = 0
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

Como podrás observar las entradas de configuración dicen que "disable_ipv6 = 0". De forma resumida lo podíamos haber preguntado con el siguiente comando:
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0


El comando netstat suele mostrar las filas correspondientes a tcp6 y udp6 de forma separada. Puedes ver en el ejemplo que las conexiones se duplican para ipv6 e ipv4.
# netstat -l
Conexiones activas de Internet (solo servidores)
Proto  Recib Enviad Dirección local         Dirección remota       Estado      
tcp        0      0 *:sunrpc                *:*                     ESCUCHAR   
tcp        0      0 *:ssh                   *:*                     ESCUCHAR   
tcp        0      0 localhost:ipp           *:*                     ESCUCHAR   
tcp6       0      0 [::]:sunrpc             [::]:*                  ESCUCHAR   
tcp6       0      0 [::]:ssh                [::]:*                  ESCUCHAR   
tcp6       0      0 [::]:43446              [::]:*                  ESCUCHAR   
tcp6       0      0 ip6-localhost:ipp       [::]:*                  ESCUCHAR   
udp        0      0 *:1008                  *:*                                
udp        0      0 *:mdns                  *:*                                
udp        0      0 *:sunrpc                *:*                                
udp6       0      0 [::]:1008               [::]:*                             
udp6       0      0 [::]:mdns               [::]:*                             
udp6       0      0 [::]:sunrpc             [::]:*


¿ Y esto porqué es ?. Por que está fijado por defecto que se habilite, con cada nueva interfaz. Vamos a verlo.
# cat /proc/sys/net/ipv6/conf/default/disable_ipv6
0
Es decir, por defecto cualquier nueva interfaz también tendría ipv6 activado.

Deshabilitar ipv6 de forma temporal
Antes de deshabilitar ipv6 de nuestro sistema de forma permanente vamos a ver que pasa si lo quitamos sin afectar la configuración. Lo desconectamos un momento.
La forma más rápida es
# echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6

Comprobamos que cada una de las interfaces ya lo tiene "disable".
# sysctl -a | grep "ipv6 ="
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.docker0.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Si trabajamos con normalidad, hacemos pruebas y todo va ok, te puedes plantear pasar al siguiente punto y dejarlo deshabilitado de forma permanente.

Deshabilitar ipv6 de forma permanente
Para hacerlo de forma permanente editaremos el fichero "/etc/sysctl.conf" con un editor de textos. Es posible que todo lo que contenga esté comentado, de forma que solo los valores por defecto se incorporan para que sean tenidos en cuenta en cada reinicio. Nosotros vamos a aportar uno de los bloques que hemos visto arriba.

Ten en cuenta que puedes ser selectivo, por ejemplo dejando ipv6 habilitado solo para la interfaz localhost
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.docker0.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 0

O quitar todo ipv6 de forma permanente.
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.all.disable_ipv6 = 1
Tras el reinicio del sistema, las preferencias de ipv6 se mantendrán como las hayamos indicado.
Otra forma de hacer permanente la configuración del fichero "/etc/sysctl.conf" es usar "sysctl -p".

No hay comentarios: