Pues me picó la curiosidad, así que fuí a echar un ojo, a ver que contaban... Yo recordaba de cuando empezaba a estudiar esto de las redes TCP/IP, hace un montón de años, que los profesores siempre comentaban que las direcciones IP eran un bien escaso, y que se iban a acabar, y que la nueva versión del protocolo IP, el IPv6, solucionaría el tema de la escasez de direcciones y un montón de cosas más... el caso es que en la versión actual de IP, la IPv4, el número de direcciones IP es de unos cuatro mil millones... En fin, me da la sensación de que es como el tema del petróleo, que se lleva acabando desde 1974...
Bueno, pues centrándonos en el tema de IPv6, podemos decir que hoy por hoy existe una red con esa tecnología, a la cual nos podemos conectar de diversas maneras, y una de ellas es la que vamos a ver en este artículo.
El usar el protocolo IPv6 nos va a dar unas cuantas ventajas frente al IPv4, entre ellas:
-
Un número de direcciones IP inmenso. En IPv4, al usar 32 bits para codificar una dirección, podemos llegar a tener hasta 4.294.967.296 direcciones diferentes. En IPv6, que usa 128 bits, se logran algunas más... en concreto 340.282.366.920.938.463.463.374.607.431.768.211.456. Para hacernos una idea de la barbaridad que es eso, podemos comentar que a cada metro cuadrado del
planeta le corresponden 665.570.793.348.866.943.898.599 direcciones IP. Casi nada. Como hay tantas, el tema del NAT en IPv6 ni se menciona...
-
Seguridad, a través de IPSec.
-
Autoconfiguración
-
Implementación de calidad de servicio (QoS)
-
Movilidad...
y muchas más que podéis leer en este estupendo tutorial.
¿Y como experimentamos con nuestro Linux...? pues realmente nos lo ponen fácil... primero tenemos que asegurarnos que nuestro núcleo soporta IPv6. Lo normal es que no esté habilitado, así que compilamos el núcleo de la manera que estemos acostumbrados, acordándonos de activar el soporte de IPv6, el cual lo encontraremos en el apartado de "networking options". También es interesante activar todo lo de iptables para IPv6, para poder ampliar nuestro cortafuegos y que pueda filtrar tráfico IPv6. Una vez compilado el núcleo, lo instalamos y rearrancamos el ordenador con el nuevo núcleo. Para ver si funciona correctamente la parte de IPv6 podemos hacer
$ /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:C0:F6:98:44:ED
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2c0:f6ff:fe98:44ed/10 Scope:Link
...
donde podemos ver que ya hay una dirección inet6 asomando por el interfaz. El formato de la dirección es diferente al que estamos acostumbrados y se explica en el tutorial anteriormente indicado.
También debemos instalar (en el caso de Debian) los paquetes iproute e iputils-ping.
Para poder enviar y recibir tráfico a la red IPv6, debemos de tener una dirección IP válida, y alguien que nos encamine el tráfico. Para ello vamos a usar el portalv6 al que me refería al principio del artículo. Para usar los servicios de este portal, nos debemos registrar con una dirección de correo válida. En unos minutos nos envían la clave por correo y al ser usuarios registrados ya tenemos acceso a todo el portal. Pinchamos en el enlace al tunnel brocker, donde nos volverá a pedir un registro (yo usé los mismos datos que en el anterior registro) y podremos indicar el sistema operativo que usamos (Linux, *BSD,...).
Una vez registados ya podemos acceder al servicio de tunnel brocker, pinchamos en el enlace de "crear tunel", donde nos va a pedir algunos datos como nuestra dirección IPv4, el sistema operativo... y nos mandan al correo la configuración que debemos ponerle a nuestro sistema para que funcione. Realmente fácil.
En mi caso, para mi distribución Debian, me indicaron que...
# Add the following lines to /etc/network/interfaces
# and your tunnel will come up automaticaly on boot
# or just type ifup JulHer
auto JulHer
iface JulHer inet6 v4tunnel
address 2001:800:40:260C::1088:2
netmask 126
endpoint 194.179.25.50
gateway 2001:800:40:260C::1088:1
En el caso de un Linux genérico, se levantaría el mismo túnel con la secuencia de comandos
#!/bin/sh
/sbin/modprobe ipv6
/sbin/iptunnel add sit1 remote 194.179.25.50
/sbin/ifconfig sit1 up
/sbin/ifconfig sit1 add 2001:800:40:260C::1088:2/126
/sbin/route --inet6 add default gw 2001:800:40:260C::1088:1
En mi caso, después de añadir al /etc/network/interfaces las líneas correspondientes, hago un ifup JulHer y parece que funciona. Para comprobarlo hago un ping a mi gateway:
$ ping6 -n 2001:800:40:260C::1088:1
PING 2001:800:40:260C::1088:1(2001:800:40:260c::1088:1) from 2001:800:40:260c::1088:2 : 56 data bytes
64 bytes from 2001:800:40:260c::1088:1: icmp_seq=1 ttl=255 time=90.9 ms
64 bytes from 2001:800:40:260c::1088:1: icmp_seq=2 ttl=255 time=88.5 ms
64 bytes from 2001:800:40:260c::1088:1: icmp_seq=3 ttl=255 time=92.0 ms
64 bytes from 2001:800:40:260c::1088:1: icmp_seq=4 ttl=255 time=90.4 ms
--- 2001:800:40:260C::1088:1 ping statistics ---
4 packets transmitted, 4 received, 0% loss, time 3023ms
rtt min/avg/max/mdev = 88.576/90.492/92.005/1.261 ms
Vaya... funciona. Aquí me encontré con el problema de que sólo funcionaba al gateway... si quería ir más allá pues no sabía por donde enrutar el tráfico. No sé la razón por la que no pone correctamente la ruta por defecto, así que se la puse a mano con el comando
/sbin/route --inet6 add default gw 2001:800:40:260C::1088:1
y a partir de ahí ya sale sin problemas:
$ ping6 -n www.ipv6.elmundo.es
PING www.ipv6.elmundo.es(2001:800:400:10::71) from 2001:800:40:260c::1088:2 : 56 data bytes
64 bytes from 2001:800:400:10::71: icmp_seq=1 ttl=56 time=144 ms
64 bytes from 2001:800:400:10::71: icmp_seq=2 ttl=56 time=115 ms
64 bytes from 2001:800:400:10::71: icmp_seq=3 ttl=56 time=115 ms
64 bytes from 2001:800:400:10::71: icmp_seq=4 ttl=56 time=120 ms
--- www.ipv6.elmundo.es ping statistics ---
4 packets transmitted, 4 received, 0% loss, time 3034ms
rtt min/avg/max/mdev = 115.082/123.839/144.938/12.357 ms
Una vez que tenemos conectividad IPv6, podemos navegar por webs que sirven su contenido en la red IPV6. En la web del portalv6 nos muestran algunas, entre ellas una muy interesante donde se indexan, por dominio, un montón de páginas.
En fin, hay otros sitios donde buscar conexión IPv6 gratuita, como en freenet6, y seguramente muchos otros que yo no conozco.
En un próximo artículo investigaremos un poco sobre ip6tables, para montar un cortafuegos sencillo que sea capaz de filtrar el tráfico IPv6 para evitarnos sorpresas.