Este artículo se lo quiero dedicar a mis alumnos de Redes Locales y Servicios en Red. Cada vez que explico algo relacionado con IPv6 en alguna de mis clases, siempre me preguntan que cuando podremos utilizar Internet con este protocolo. La respuesta es sencilla, cuando las operadoras de telecomunicaciones (ISP) que nos suministran el acceso a Internet quieran. En un artículo anterior ya abordé una primera aproximación a este protocolo, estuvimos viendo como eran las direcciones IPv6. En el artículo de hoy vamos a ver como podemos conectarnos a Internet con IPv6 si nuestro ISP no nos proporciona este tipo de acceso.
El panorama actual
Actualmente hay muchos países cuyas operadoras de telecomunicaciones ya proporcionan acceso a Internet IPv6 a sus ciudadanos. Si miramos la última encuesta, con fecha de 7 de noviembre, España aparece en el puesto 55 en proporción de habitantes que utilizan este protocolo, sólo el 2.38% de la población. Si lo comparamos con otros países, estamos en un puesto bastante lamentable. El ranking lo lidera Bélgica con un 58.14%, seguido de la India con un 52.49%. EE.UU. es el siguiente con un 42.11%. La lista se puede consultar en este enlace. Llama la atención comprobar como nuestros vecinos portugueses se encuentran en el puesto 12º y los franceses en el 15º. Alemania está el 4º seguido de Grecia, que ocupa la 5ª posición.
En España, que yo sepa a día de hoy, ninguna operadora proporciona acceso IPv6 a los ciudadanos. El uso es por parte de compañías de telecomunicaciones y universidades. Entonces, ¿cómo podemos probar Internet con IPv6 desde España? Utilizando un túnel que encapsule nuestro tráfico IPv6 dentro de paquetes IPv4. Dentro de nuestra LAN pueden convivir ambos protocolos (Dual-Stack). Pero los paquetes IPv6 que vayan destinados a equipos fuera de nuestra LAN, cuando lleguen a nuestra puerta de enlace (router), se transportarán por Internet dentro de paquetes IPv4 hasta llegar a un servidor/router que haga de pasarela entre ambas Internets. Tanto nuestro router como la pasarela se encargarán de encapsular y desencapsular los paquetes IPv6 dentro de paquetes IPv4.
IPv6 Tunnel Broker
Esta es la denominación que reciben las empresas que prestan este tipo de servicios. Para poder realizar las pruebas que aparecen en este artículo he utilizado el servicio gratuito que proporciona Hurricane Electric. Tras darnos de alta como usuario, Hurricane Electric nos permite crear hasta cinco túneles con ellos. La empresa te pide una serie de datos personales y tras confirmar el correo de verificación, ya podremos empezar a utilizar sus servicios.
Antes de comenzar tenemos que asegurarnos de que nuestro router tenga habilitado la respuesta a los paquetes ICMP_ECHO_REQUEST que nos lleguen desde Internet, o lado WAN. Es decir, que desde Internet nos puedan hacer ping a nuestra IPv4 pública. Para ello entramos en el router y lo verificamos. Lo normal es que se encuentre deshabilitado por defecto. Dependerá de cada router la forma de activar esta opción. En el caso de no saber como, siempre podemos consultarlo en Google ;-)
Si no se habilita esta opción no podremos seguir, ya que lo primero que hace este broker es comprobar si estamos conectados por medio de paquetes ICMP_ECHO_REQUEST. Una vez que hayamos creado el túnel podremos volver a desactivarla sin ningún problema.
Creando el Túnel
Para crear el túnel accedemos a la página del broker, nos identificamos y a continuación hacemos clic en el enlace Create Regular Tunnel, que se encuentra en el menú del lado izquierdo. Ahora aparecerá una pantalla nueva en la que nos pregunta la IPv4 pública que tenemos asignados, de hecho el sistema la detecta y nos la muestra directamente. Además nos pide que seleccionemos el servidor que queramos utilizar para que actúe de pasarela. Esta lista aparece clasificada por continentes y en cada continente aparecen las ciudades disponibles. Como no aparece ninguna ciudad de España, he seleccionado París, Francia.
Tras presionar el botón Create Tunnel, que se encuentra en la parte inferior de la página, tendremos el túnel creado. Ahora se nos muestran los datos necesarios para poder empezar a utilizar el túnel, que son:
- IPv4 del Servidor que hace de pasarela.
- IPv6 del Servidor que hace de pasarela.
- IPv4 de nuestro router, esta es la dirección pública que nos asigna nuestro ISP.
- IPv6 de alcance global que nos proporciona el broker.
- Prefijo IPv6 que nos asigna el broker.
Si se fija el lector, nos asignan una longitud de prefijo /64, es decir, tenemos para nuestra red ¡2⁶⁴ - 1 direcciones de hosts posibles! En Internet IPv4 hay 2³² direcciones teóricas posibles para el mundo entero. Si queremos, podemos pedir una longitud de /48, lo que nos proporcionaría la friolera de 2⁸⁰ - 1 direcciones de hosts.
Con estos datos ya podemos empezar a configurar nuestros equipos.
Con estos datos ya podemos empezar a configurar nuestros equipos.
Configuración
Ahora tenemos dos opciones, la primera consiste en configurar nuestro ordenador para que pueda utilizar el túnel. La segunda opción consiste en configurar nuestro router para que cualquier equipo de nuestra LAN pueda utilizarlo. Vamos a ver como proceder en ambos casos.Primera opción: sólo nuestra máquina
Lo primero que tenemos que hacer es abrir una terminal y a continuación ejecutar los siguientes comandos como root:# modprobe ipv6
Este comando carga en el kernel de Linux el soporte IPv6, en la mayoría de los casos no es necesario ya que por defecto suele venir.
# ip tunnel add he-ipv6 mode sit remote 216.xxx.xxx.42 local 192.168.1.24 ttl 255
Con este comando establecemos una interfaz de red, he-ipv6, que se encargará de nuestra parte del túnel hacia la pasarela. En este caso 192.168.1.24 es la dirección IPv4 que tiene asignado mi PC, es una dirección privada interna de mi LAN. 216.XX.XX.42 es la dirección IPv4 de la pasarela que me han asignado, el servidor de París.
# ip addr add 2001:470:xxxx:xxxx::2/64 dev he-ipv6
Este comando asigna la dirección IPv6, que nos ha asignado el broker, a la interfaz he-ipv6. Es una dirección IPv6 de alcance global.
# ip route add ::/0 dev he-ipv6
Este último comando se encarga de añadir, a la tabla de enrutamiento de nuestro ordenador, una nueva ruta para que todo el tráfico IPv6 se envíe por la nueva interfaz he-ipv6.
Hay que tener en cuenta que esta configuración estará operativa hasta que reiniciemos el equipo. Si la queremos tener permanente, habrá que añadirla a los ficheros de configuración de systemd (lo dejo como ejercicio para el lector).
Si nuestra IPv4 pública es dinámica, en el momento que nuestro ISP nos la cambie, habrá que actualizar el túnel.
Nota: He sustituido algunos valores por "x" para preservar la privacidad.
Segunda opción: configurando nuestro router
Esta opción es más difícil de describir porque dependerá del router que tengamos. Cada router tiene su propia interfaz y son diferentes. En mi caso es un router DLINK. Lo primero que hago es ir a la configuración IPv6 del router y selecciono la opción IPv6 in IPv4 Tunnel y a continuación relleno el formulario tal y como aparece en la siguiente imagen:
A la hora de establecer el DNS he usado los de Google, en vez del que proporciona el broker. Por otro lado, el router se tiene que encargar de asignar las direcciones al resto de los equipos de mi LAN, de modo que selecciono la opción SLAAC + Stateless DHCP.
Ahora los equipos de mi LAN reciben direcciones IPv6 de alcance global con el prefijo /64 que he configurado. Tanto mi PC, como mi smartphone y mi tablet han recibido una dirección de este tipo.
Ahora los equipos de mi LAN reciben direcciones IPv6 de alcance global con el prefijo /64 que he configurado. Tanto mi PC, como mi smartphone y mi tablet han recibido una dirección de este tipo.
Probando el acceso
Independientemente de si hemos utilizado la primera o la segunda opción, ya deberíamos tener acceso a Internet IPv6. Para probarlo podemos ejecutar desde la terminal el siguiente comando:
$ ping6 ipv6.google.com
PING ipv6.google.com(mad08s04-in-x0e.1e100.net) 56 data bytes
64 bytes from mad08s04-in-x0e.1e100.net: icmp_seq=1 ttl=56 time=55.5 ms
64 bytes from mad08s04-in-x0e.1e100.net: icmp_seq=2 ttl=56 time=60.2 ms
64 bytes from mad08s04-in-x0e.1e100.net: icmp_seq=3 ttl=56 time=54.4 ms
64 bytes from mad08s04-in-x0e.1e100.net: icmp_seq=4 ttl=56 time=79.9 ms
^C
--- ipv6.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 54.435/62.533/79.905/10.264 ms
Si queremos probar una IPv6 directamente, podemos ejecutar el siguiente comando para saber cual es la dirección del servidor anterior:
$ dig +short ipv6.google.com AAAA
ipv6.l.google.com.
2a00:1450:4003:809::200e
Y ahora probamos de nuevo con esta dirección:
$ ping6 2a00:1450:4003:803::200e
PING 2a00:1450:4003:803::200e(2a00:1450:4003:803::200e) 56 data bytes
64 bytes from 2a00:1450:4003:803::200e: icmp_seq=1 ttl=56 time=55.9 ms
64 bytes from 2a00:1450:4003:803::200e: icmp_seq=2 ttl=56 time=54.3 ms
64 bytes from 2a00:1450:4003:803::200e: icmp_seq=3 ttl=56 time=55.8 ms
64 bytes from 2a00:1450:4003:803::200e: icmp_seq=4 ttl=56 time=53.3 ms
^C
--- 2a00:1450:4003:803::200e ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 53.377/54.876/55.974/1.081 ms
También podemos utilizar el navegador para surfear la web IPv6 tal y como se muestra en la siguiente imagen:
Se puede apreciar que Google se cree que estoy en Francia porque la pasarela que he seleccionado está en París.
O acceder a la siguiente página, test-ipv6.com, para ver nuestro soporte IPv6:
Y esto es todo por esta semana. Espero que siguiendo esta guía el lector pueda también probar el acceso a Internet usando el protocolo IPv6.
@josrrp
le doy un like para que me apruebe jose en redes
ResponderEliminar