Probando IPv6 Parte 2

Continuamos con el howto para “engancharnos” a internet mediante IPv6.

Si hemos seguido el post anterior, ya deberíamos tener conectividadad IPv6 en nuestro router, aunque solo para el router (solo una IP). Después de una semana sin probemas, ya tenemos créditos (ISKs) suficientes para solicitar una subreda a sixxs.

Vamos a suponer que nos han asignado la subred 2001:b18:baba::/48. Una red local tiene una dirección de red de 64 bits (/64), quedando el resto de la dirección (los otros 64) para el direccionamente en la red local. Esto quiere decir que nos han asignado una subred con soporte para 65536 subredes locales. Más que sufiente, creo yo ;)

Asignar la IP al router

Vamos a crear el fichero /etc/hotplug.d/iface/20-ipv6. Se ejecutará cada vez que se levante una interfaz de red:

#!/bin/sh
[ "$ACTION" = "ifup" -a "$INTERFACE" = "lan" ] || exit
# Configuramos la IP del router (interfaz br0 normalmente) en la red 2001:b18:baba:0::/64
ifconfig `nvram get ${INTERFACE}_ifname` add 2001:b18:baba::1/64
# Enrutar el resto de la subred al interfaz lo, para que no vuelva al tunel ipv6
ip -6 route add 2001:b18:baba::/48 dev lo

NOTA: Mientras hacía este script, me di cuenta de un bug (no se si está resuelto en la ultima versión) en el que la variable $INTERFACE tiene datos erróneos si se usan rutas estáticas (nvram get lan_static_route). En caso contrario no afecta.

Le damos permisos de ejecución:

$ chmod +x /etc/hotplug.d/iface/20-ipv6

Anunciarnos como router para esta red local

En primer lugar, debemos habilitar el forwarding en IPv6. Añadimos esta línea a /etc/sysctl.conf

net.ipv6.conf.all.forwarding=1

Para anunciarnos como router, usaremos el paquete radvd.

$ ipkg install radvd

Configuración de /etc/radvd.conf:

interface br0
{
 AdvSendAdvert on;
 #AdvHomeAgentFlag off;
 prefix 2001:b18:baba::/64
 {
 	AdvOnLink on;
 	AdvAutonomous on;
 	#AdvRouterAddr off;
 };
};

Renombramos el script de inicio, para que se ejecute al arrancar el router:

$ cd /etc/init.d

$ mv radvd S51radvd.conf

Configuración de los equipos

Centos / Fedora / Debian / Ubuntu / <insert linux distro here>

Si tenemos el soporte IPv6 habilitado, no hay nada más que hacer. Comprobamos que el interfaz de red tiene asignada la IP, que estará formada por la parte de red que publica el router (2001:b18:baba:0), y por la dirección local (últimos 64 bits), que se genera automáticamente usando la MAC del interfaz.

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr XX:XX:2A:C1:2A:xx
          inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: 2001:b18:baba:0:2xx:xxff:fec1:2axx/64 Scope:Global
          inet6 addr: fe80::2xx:xxff:fec1:2axx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:48168847 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30696051 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2591639517 (2.4 GiB)  TX bytes:2256509837 (2.1 GiB)
          Interrupt:217 Base address:0xd000

Vemos que hay dos IP, una de ámbito local (Link) que se genera automáticamente para comunicaciones internas (dentro de la lan), y otra de ámbito global (Global) que es la que se ha asignado por el anuncio del router.

Comprobaciones:

$ ping6 ::1   # A la interfaz local
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=0 ttl=64 time=0.047 ms
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.054 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.053 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=0.057 ms--- ::1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.047/0.052/0.057/0.009 ms, pipe 2

$ ping6 2001:b18:baba:0:2xx:xxff:fec1:2axx  # A la IP del interfaz eth0
PING 2001:b18:baba:0:214:2aff:fec1:2axx(2001:b18:baba:0:2xx:xxff:fec1:2axx) 56 data bytes
64 bytes from 2001:b18:baba:0:2xx:xxff:fec1:2axx: icmp_seq=0 ttl=64 time=0.052 ms
64 bytes from 2001:b18:baba:0:2xx:xxff:fec1:2axx: icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from 2001:b18:baba:0:2xx:xxff:fec1:2axx: icmp_seq=2 ttl=64 time=0.055 ms
64 bytes from 2001:b18:baba:0:2xx:xxff:fec1:2axx: icmp_seq=3 ttl=64 time=0.057 ms
--- 2001:b18:baba:0:2xx:xxff:fec1:2axx ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.052/0.054/0.057/0.005 ms, pipe 2

$ ping6 2001:b18:baba:0::1   # Ping al Router
PING 2001:b18:baba::1(2001:b18:baba::1) 56 data bytes
64 bytes from 2001:b18:baba::1: icmp_seq=0 ttl=64 time=0.048 ms
64 bytes from 2001:b18:baba::1: icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from 2001:b18:baba::1: icmp_seq=2 ttl=64 time=0.053 ms
64 bytes from 2001:b18:baba::1: icmp_seq=3 ttl=64 time=0.056 ms
--- 2001:b18:baba::1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.048/0.052/0.056/0.007 ms, pipe 2

$ ping6 ipv6.google.com     # Ping a google, la prueba definitiva
PING ipv6.google.com(2001:4860:0:1001::68) 56 data bytes
64 bytes from 2001:4860:0:1001::68: icmp_seq=0 ttl=52 time=178 ms
64 bytes from 2001:4860:0:1001::68: icmp_seq=1 ttl=52 time=160 ms
64 bytes from 2001:4860:0:1001::68: icmp_seq=2 ttl=52 time=159 ms
64 bytes from 2001:4860:0:1001::68: icmp_seq=3 ttl=52 time=159 ms
--- ipv6.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 159.262/164.303/178.165/8.023 ms, pipe 2

Windows XP

Por defecto no viene activado el soporte para IPv6. Para instalarlo, abrimos una consola (cmd), y ejecutamos:

C:\> netsh interface ipv6 install
C:\> ipconfig

Acto seguido, ya deberíamos poder hacer los tests de ping del apartado anterior.

Windows (hasta la) Vista

Ya trae soporte de serie. El que lo tenga instalado que lo pruebe jejeje

Conclusión

Si hemos seguido estos pasos, ya tenemos nuestra red local con conectividad IPv6. Hay que tener en cuenta que todo el tráfico IPv6 pasará a través del PoP que nos hayan asignado, ya que estamos tunelizando todo este tráfico usando la red IPv4 de nuestro operador de ADSL o cable.

Algunos enlaces para probar:

  • http://ipv6.google.com: Nuestro buscador favorito
  • http://www.sixxs.net/misc/coolstuff/: Enlaces de interés y aplicaciones sobre IPv6 (tracker de bittorrent, servidor de noticias nntp, y más)
  • http://www.ipv6porn.com (The great IPv6 experiment):El último empujón (valga la redundancia ;)) para motivar la implantación de IPv6… no se si algún día verá la luz, pero seguro que más de uno se anima a seguir estos tutoriales jejeje
Escrito por julianjm el 20/11/2008. |
Tags: , ,

Leave a comment »

RSS feed for comments on this post. | TrackBack URI

XHTML ( Puedes usar estas etiquetas): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> .