Configuración de IPv6 en CentOS

16 enero 2014 at 16:14 by Adrián Pérez

IPv6Vamos a ver cómo configurar un servidor para trabajar tanto con ipv4 como con ipv6, en Linux, sin entrar en detalle de lo que es ipv6, pero repasando algún que otro concepto.

Formato de una dirección IPv6

Lo primero, una ipv6 es una ip formada por 8 grupos de 4 dígitos hexadecimales cada uno, tal que así:

AAAA:AAAA:00BB:AAAA:0000:0000:0000:0000

Se pueden omitir los 0's de inicio de cada grupo. Así, la IP anterior, quedaría así:

AAAA:AAAA:BB:AAAA:0000:0000:0000:0000

También se puede dejar de incluir los grupos que sean todo 0s, símplemente indicándolo con "::". Hay que tener en cuenta, que únicamente podremos usar una vez el "::" puesto que en otro caso, no sería posible saber a cuantos grupos de ceros se refiere el "::". En nuestro caso, la ipv6 quedaría así:

AAAA:AAAA:BB:AAAA::

Decir que podemos usar cualquiera de éstos formatos para indicarle una ipv6 a nuestro servidor.

Máscara de una dirección IPv6

Una ipv4 se puede mapear en una ipv6 como sigue.

::ffff:192.168.89.9
::ffff:c0a8:5909

Ésto significa que una dirección ipv4 se puede mapear en sólo 2 grupos de 4 dígitos hexadecimales, puesto que una IPv4 son 4 grupos de 8 dígitos binarios (o 32 dígitos binarios en total). Un dígito hexadecimal equivale a 4 dígitos binarios, así pues, una dirección de 32 bits binarios (ipv4) equivale a tan sólo 8 dígitos hexadecimales (ipv6), o lo que es lo mismo, a dos grupos de 4 dígitos hexadecimales.

En ipv6, pues, cada grupo de 4 dígitos hexadecimales sumará /16 a la máscara. Por tanto, /32 será:

AAAA:AAAA::/32

Mientras que /48 será:

AAAA:AAAA:AAAA::/48

Habilitar IPv6 en CentOS

Fuente: http://www.cyberciti.biz/faq/rhel-redhat-fedora-centos-ipv6-network-configuration/

Podremos habilitar el soporte ipv6 en CentOS añadiendo al fichero /etc/sysconfig/network la siguiente línea:

[root@myserver]# vi /etc/sysconfig/network
[...]
NETWORKING_IPV6=yes

Posteriormente, deberemos modificar la configuración de la interficie de red que a la que queramos asignar una ipv6. En el ejemplo, modificaremos la interfaz ya existente eth0, configurada para ipv4, para añadirle además, una ipv6, símplemente añadiendo lo siguiente al fichero de configuración:

[root@myserver]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[...]
IPV6INIT=yes
IPV6ADDR=[IPv6-IP-Address]
IPV6_DEFAULTGW=[IPv6-IP-Gateway-Address]

Una vez configurado, deberemos reiniciar el servicio de red del server, lo cual, nos dejará sin conexión unos segundos:

[root@myserver]# /etc/init.d/network restart

Una vez hecho, veremos con ifconfig como nos aparecen un par de líneas ipv6 en nuestra interfaz eth0, una correspondiente a un ámbito (scope). Leo que por lo general las interfaces tendrán una dirección ipv6 con scope link (o local) y ninguna o más direcciones ipv6 con scope global [Fuente]

inet6 addr: AAAA:AAAA:AAAA::2/64 Scope:Global
inet6 addr: BBBB::BBBB:BBBB:BBBB:BBBB/64 Scope:Link

Comprobaremos como podemos usar ipv6 con el comando ping6:

[root@myserver]# ping6 ipv6.google.com
PING ipv6.google.com(ord08s08-in-x14.1e100.net) 56 data bytes
64 bytes from ord08s08-in-x14.1e100.net: icmp_seq=1 ttl=58 time=7.99 ms
64 bytes from ord08s08-in-x14.1e100.net: icmp_seq=2 ttl=58 time=0.738 ms

IPv6 Alias

Si quisieramos añadir un alias, para tener varias ipv6 en la misma tarjeta de red, añadiríamos las IPs extra en la misma interfaz de red (eth0 en este caso) bajo el parámetro "IPV6ADDR_SECONDARIES", tal y como sigue:

IPV6INIT=yes
IPV6ADDR=[IPv6-IP-Address]
IPV6_DEFAULTGW=[IPv6-IP-Gateway-Address]
IPV6ADDR_SECONDARIES="[IPv6-IP-Address1] \
[IPv6-IP-Address2] \
[IPv6-IP-Address3]"

No usaremos, pues los alias de las tarjetas de red tipo eth0:0, si no que directamente configuraremos las direcciónes ipv6 secundarias en la misma tarjeta de red.

Recuerda pegarle un vistazo a ip6tables para securizar tu servidor ipv6.

Fuentes:

http://es.wikipedia.org/wiki/IPv6
http://www.cyberciti.biz/faq/rhel-redhat-fedora-centos-ipv6-network-configuration/

Flickr! Foto por Abode of Chaos