Ir al contenido principal

Accediendo a Internet IPv6

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.
En la siguiente imagen se muestra la asignación que he recibido:



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.

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.

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

Comentarios

Publicar un comentario

Entradas populares de este blog

Instalando Moodle con Docker

En este blog ya hemos hablado en varios artículos sobre la tecnología de contenedores, pero hasta ahora nos habíamos centrado en LXD . En este artículo vamos a explicar cómo podemos instalar Moodle en menos de un minuto (dependiendo de la velocidad de descarga que se tenga, se puede alargar un poco más) usando contenedores. Acerca de Moodle No voy a explicar que es Moodle ni como instalarlo desde cero, para eso existe en Internet multitud de tutoriales. Lo que sí quiero comentar es que para instalar Moodle hace falta un servidor web con PHP . Además requiere que PHP tenga instalado una serie de componentes adicionales. Por otro lado, necesitamos tener instalado en el servidor un sistema de gestión de bases de datos relacional, ya que Moodle almacena la información en él. Normalmente se utiliza MySQL , MariaDB o PostgreSQL . También debemos crear una base de datos específica para Moodle con su respectivo usuario. Durante la instalación Moodle creará las tablas necesari

Analizando el protocolo HTTP

El objetivo de este artículo es el de explicar de forma práctica el funcionamiento del protocolo HTTP y entender el intercambio de datos que se realiza entre los servidores y los clientes web. Por otro lado, cubre la necesidad de tener un texto en español que sirva de referencia a mis alumnos de Servicios en Red  a la hora de realizar la práctica de clase  HTTP-1 . La idea es ver de forma práctica el funcionamiento interno del protocolo HTTP . Para ello, vamos a utilizar un par de herramientas de la línea de comandos de Linux ( telnet y netcat ), con las que vamos a simular el comportamiento tanto del navegador como del servidor web. HTTP es un protocolo de la capa de aplicación, y como muchos otros protocolos de esta capa, está basado en texto. De hecho, los comandos que envía el navegador al servidor y sus respuestas se pueden leer perfectamente en inglés. Por defecto, HTTP utiliza el puerto 80 TCP y HTTPS  el puerto 443 TCP. Los ejemplos que vamos a ilustrar serán

ZFS, Primera parte

Cuando el año pasado instalé LXD y lo configuré por primera vez, me encontré que podía utilizar, de hecho se recomienda, el sistema de ficheros ZFS para albergar los contenedores. Posteriormente, cuando instalé Proxmox en el servidor de mi departamento, me encontré de nuevo con  ZFS . Anteriormente no le había prestado mucha atención a  ZF S , normalmente utilizo EXT4 o XFS , pero estaba claro que había una estrecha relación entre  ZFS  y los sistemas de virtualización. ZFS  es un sistema de ficheros desarrollado por Sun Microsystems  (creadores también del lenguaje de programación Java ), posteriormente la empresa fue adquirida por Oracle , actuales propietarios. OpenZFS  es la variante libre y posee una licencia de tipo  CDDL , que aunque es software libre, es incompatible con GPL . Por este motivo, el kernel de Linux no lo incorpora de serie. Sin embargo, los usuarios pueden instalarlo sin problemas ya que se encuentra en los repositorios de la mayoría de las distribucione