Ir al contenido principal

Conexión a Internet IPv6 a través de 6to4

Hoy en día la mayor parte de los usuarios accedemos a Internet utilizando el protocolo IPv4, ya que utilizamos una conexión a un Proveedor de Servicios de Internet (ISP) que nos proporciona una dirección IPv4 pública y el acceso a un router conectado a esta red. Para acceder a Internet IPv6 de forma nativa hace falta exactamente lo mismo, un ISP que nos proporcione una dirección global IPv6 (o mejor aún un segmento de direcciones globales), aunque actualmente esto es poco frecuente ya que hay pocos ISP que den acceso nativo a IPv6 (http://www.sixxs.net/faq/connectivity/?faq=native).

En esta entrada se explica una de las formas que hay actualmente para conectarse a Internet IPv6 a través de una dirección IPv4 pública utilizando un mecanismo que se denomina 6to4, además se verá cómo configurar todos los equipos de la red local con una dirección IPv6 pública formando lo que se denomina una isla IPv6 y conectarlos a Internet IPv6 a través de radvd. Todo el desarrollo se va a realizar en Debian GN/Linux y se supone cierta familiaridad con la termininología de IPv6, para una introducción a la carcaterísticas de las direcciones IPv6 véase Direccionamiento IPv6 básico de este mismo blog.

¿Qué es 6to4?

Hay varios mecanismos de conexión a Internet IPv6 desde un equipo conectado a Internet IPv4 y aunque tienen algunas diferencias se basan fundamentalmente en encapsular un datagrama IPv6 dentro de un datagrama IPv4 y enviarlo a un equipo conectado a las dos redes que lo “suelte” en Internet IPv6. Para entender el funcionamiento de 6to4 es necesario explicar previamente los elementos que intervienen:
  • A toda dirección IPv4 le corresponde un segmento /48 de direcciones IPv6 con el siguiente formato: 2002:XXXX:YYYY:/48 donde XXXX:YYYY son los 32 bits de la dirección IPv4 en formato hexadecimal. Por ejemplo, a la dirección IPv4 pública 80.22.1.14 le corresponde el segmento de direcciones IPv6 2002:5016:10e/48, dentro del cual puede crear 2^16 subredes con 2^64 equipos en cada subred (!). Todas las direcciones IPv6 con el prefijo 2002::/16 se conocen como direcciones 6to4.
  • La dirección 192.88.99.1 es una dirección IPv4 reservada para los encaminadores que pasan los datagramas entre Internet IPv4 e Internet IPv6 (6to4 relay routers). Esta dirección además es anycast, por lo que existen varios encaminadores repartidos por el mundo que realizan esta función de retransmisión entre las dos redes.
  • Existe una dirección IPv6 reservada para los mismos encaminadores para realizar el proceso inverso y que es la 2002:c058:6301:: (dirección 6to4 asociada a la 192.88.99.1)
Describamos de forma breve el proceso de conexión a un equipo de Internet IPv6 utilizando 6to4, tomando como ejemplo un equipo con la dirección IPv4 pública 80.22.1.14 que se conecta al servidor web http://www.kame.net (accesible tanto desde Internet IPv4 como de Internet IPv6, en el segundo caso veremos la “dancing kame”) y que se presenta en la siguiente imagen:
6to4

  • A la dirección 80.22.1.14 le corresponde el segmento de direcciones 6to4 2002:5016:10e/48, en particular se le asocia la primera dirección de este segmento 2002:5016:10e::1/128
  • Para hacer una consulta al servidor web de http://www.kame.net en IPv6, se realiza una consulta DNS tipo AAAA, que nos da como resultado la dirección 2001:200:0:8002:203:47ff:fea5:3085
  • Se construye un datagrama IPv6 con destino a la dirección anterior, pero se encapsula dentro de un datagrama IPv4 con destino a la dirección 192.88.99.1
  • Se envía el datagrama a través de Internet IPv4 hasta el encaminador de retransmisión 6to4 (6to4 relay router) más cercano en términos de enrutamiento
  • Cuando el datagrama llega al encaminador 6to4, éste lo desencapsula, comprueba la dirección IPv6 se destino y se lo envía a ésta
  • El servidor de http://www.kame.net recibe la petición desde la dirección 2002:5588:4fd9::1/128 y responde a la misma
  • El datagrama llega al encaminador de retransmisión 6to4 más cercano, ya que por el prefijo 2002::/16 se sabe que se trata de una dirección 6to4.
  • El encaminador de retransmisión 6to4 recibe el datagrama IPv6 con destino a 2002:5588:4fd9::1/128 y lo encapsula dentro de un datagrama IPv4 con destino a la dirección 80.22.1.14
  • El datagrama llega a la dirección 80.22.1.14 que puede ver la respuesta del servidor web http://www.kame.net

Configuración 6to4 en Debian

Conectar un equipo con Debian a Internet IPv6 mediante el mecanismo 6to4 es tan sencillo como añadir un nuevo elemento en el fichero /etc/network/interfaces (wiki.debian.org/DebianIPv6), en el caso del ejemplo anterior sería:
auto tun6to4
iface tun6to4 inet6 v4tunnel
 address 2002:5016:10e::1 
        netmask 16              
 gateway ::192.88.99.1
 endpoint any
 local 80.22.1.14
Si levantamos ahora el dispositivo tun6to4, Internet IPv6 será accesible a través del mecanismo 6to4:
# ifup tun6to4
$ ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8001::68) 56 data bytes
64 bytes from 2a00:1450:8001::68: icmp_seq=1 ttl=56 time=106 ms
64 bytes from 2a00:1450:8001::68: icmp_seq=2 ttl=56 time=99.5 ms
64 bytes from 2a00:1450:8001::68: icmp_seq=3 ttl=56 time=102 ms

Conexión a Internet IPv6 de toda la red local

Una de las ventajas más llamativas de utilizar 6to4 es que con cada dirección IPv4 pública es posible formar hasta 2^16 subredes con 2^64 hosts en cada una, teniendo todos los hosts direcciones IPv6 globales. Además utilizando ICMPv6 es posible que los equipos de la red local se configuren de forma automática, para lo que es necesario instalar en el equipo que actuará como router de la red local un programa denominado Router ADVertisement Daemon o radvd. Siguiendo con el caso anterior, supondremos que el equipo con dirección IP pública 80.22.1.14 es la puerta de enlace de la red local de direcciones privadas 192.168.1.0/24, por lo que actuará ahora como encaminador IPv6 de acuerdo con el siguiente esquema:
radvd
Instalamos en el equipo que va a actuar como encaminador el paquete radvd:
# aptitude install radvd
Editamos el fichero /etc/radvd.conf de la siguiente manera y lo modificamos para que tenga el siguiente contenido:
interface eth0 {
   AdvSendAdvert on;
   prefix 2002:5016:10e::/64
   {
        AdvAutonomous on;
        AdvOnLink on;
        AdvRouterAddr on;
        };
};
A continuación, configuramos la dirección IPv6 de la interfaz eth0 del equipo que va a actuar como router en el fichero /etc/network/interfaces:
auto eth0
   iface eth0 inet static
   address 192.168.1.1
   netmask 255.255.255.0
   iface eth0 inet6 static
   address 2002:5016:10e::1
   netmask 64
Bajamos y volvemos a levantar la interfaz de red para que se aplique la nueva configuración:
# ifdown eth0
# ifup eth0
Activamos el bit de forward en IPv6 añadiendo la siguiente línea al fichero /etc/sysctl.conf:
net.ipv6.conf.all.forwarding=1
# sysctl -p
Es necesario cargar manualmente el módulo ipv6 en el arranque para que el bit de forward de IPv6 se pueda activar al inicar la máquina de nuevo, por lo que hacemos:
# echo "ipv6" >> /etc/modules
Ahora se puede iniciar el demonio radvd encargado de facilitar la información de red IPv6 en la red local:
# /etc/init.d/radvd start
Y partir de ese momento cualquier equipo que se conecte a la red local se configurará de forma automática con una dirección IPv6 global con acceso a Internet IPv6. La dirección IPv6 de cada equipo (lo que se denomina una dirección stateless) se compondrá de un prefijo de 64 bits con la información de la red que facilita radvd más una identificación única del host de 64 bits que se obtiene de la dirección MAC de la interfaz de red.

ip6tables

La gran ventaja anterior también tiene el problema de que toda la red local es completamente accesible desde Internet IPv6, por lo que es recomendable inicialmente denegar el acceso a todos los paquetes que no sean respuesta a una petición nuestra, para lo que se utiliza el equivalente a iptables en IPv6, que se denomina ip6tables.
Terminar

Author original
Era para debial yo lo adapte a fedora!
 http://albertomolina.wordpress.com/2010/01/31/conexion-a-internet-ipv6-a-traves-de-6to4/

Comentarios

Entradas más populares de este blog

BBS - Boletin Board Sistem

Antes de que Internet fuera tan grande y Google todavía no existía! Teníamos los BBS Eran Personas que tenían sus computadoras prendidas con sistemas para recibir llamadas. Te contestaba por medio de tu modem Dial UP uff tenia un 9600 en ese tiempo y una 8086 con DOS me conectaba a FileGallery para poder pegar al Internet que tiempos... En Puerto Rico tuvimos 42 BBS de los que visite por Dial-UP http://bbslist.textfiles.com/787/ Ya casi no existen pero me gustaria algundia toparme con alguno de los sysop. BBS Existentes en Puerto Rico bbs.thewallbbs.com bbs.efectolinux.com tiene DIALUPy trabaja:)

DOH cloudflare dns on Mikrotik V7

Protecting home Internet connections from malware With home Internet usage on the rise, it’s never been more important to protect your family from dangerous and malicious sites. 1.1.1.1 for Families is built on top of the same site categorization and filtering technology that powers Cloudflare’s enterprise products. It uses Cloudflare’s Internet intelligence to filter content on your home Internet network.