[LAC-TF] Configuracion de Rele 6to4 en Linux

JORDI PALET MARTINEZ jordi.palet at consulintel.es
Fri Jun 8 11:14:20 BRT 2007


Hola a todos,

Esta informacion proporciona los pasos necesarios para configurar un equipo
Linux como Rele 6to4.

Para continuar, necesitas disponer de una direccion IPv4 publica en dicho
equipo, tu propio prefijo IPv6 (en este caso proporcionado por LACNIC), y
transito IPv6.

El equipo Linux (recomendamos 2.6.x o una version superior) debe de tener
habilitado soporte IPv6 y routing.

Si necesitas ayuda adicional para solicitar tu prefijo IPv6 a LACNIC, no
dues en hacernoslo saber, y si es preciso podemos incluso revisar el
formulario de solicitud.

Igualmente, poemos ayudaros a verificar el resto de la configuracion IPv6
del equipo Linux, asi como en la obtencion de transito IPv6 (nativo o con
tuneles), bien sea de tu upstream o, alternativamente, si esto no es
posible, podemos proporcionarte transito IPv6 sin coste, a traves de otras
redes.

Saludos,
Jordi


Detalles de la configuracion ejemplo
=====================================

El ejemplo que mostramos asume que la direccion publica IPv4 en la interfaz
WAN del Linux, es 192.1.2.3. Debes de reemplazar dicha direccion con la
informacion correcta según el diseño de tu red, al igual que en el caso de
otros paremetros usados por el ejemplo.

Tambien es preciso comprender como calcular la direccion IPv6 6to4 para tu
equipo. Esta se calcula a partir de la direccion IPv4 y el prefijo IPv6
6to4.

El prefijo IPv6 6to4 es 2002::/16, utilizando los primeros 16 bits (los mas
significativos) 16 bits. A partir de ahí, los bits 17 a 48 son la notacion
nibble de la direccion IPv4. Asi, para nuestro ejemplo seria:

192 = c0
1 = 01
2 = 02
3 = 03

Por tanto:
2002:c001:0203::/48

Usaremos la primera direccion disponible en ese preijo para la interface
WAN: 2002:c001:0203::1/128

Also, the anycast address for 6to4 is: 192.88.99.1

En el siguiente texto, se usan ambos, los comandos genericos como ejemplos
concretos.


A) Configuracion de tunel 6to4 usando "ip" y dispositivo de tunel dedicado
===========================================================================

Crear un nuevo dispositivo de tunel (se debe especificar un TTL porque el
valor por defecto es 0):

    # /sbin/ip tunnel add tun6to4 mode sit ttl <ttldefault> remote any local
<localipv4address> 

    # /sbin/ip tunnel add tun6to4 mode sit ttl 80 remote any local 192.1.2.3
 
Levantar la interfaz

    # /sbin/ip link set dev tun6to4 up

Añadir la direccion local 6to4 a la interfaz (nota: es muy importante que la
longitud del prefijo sea 16!)

    # /sbin/ip -6 addr add <local6to4address>/16 dev tun6to4

    # /sbin/ip -6 addr add 2002:c001:0203::1/16 dev tun6to4


B) Mostrar los tuneles existentes
==================================

  # /sbin/ip -6 tunnel show [<device>]
 
Ejemplo:

  # /sbin/ip -6 tunnel show
  sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
  sit1: ipv6/ip remote 195.226.187.50 local any ttl 64

 
C) Mostrar las rutas a tuneles
================================

  # /sbin/route -A inet6

Ejemplo (salida filtrada para mostrar solo las rutas a traves de la interfaz
virtual de tunel sit0):

  # /sbin/route -A inet6 | grep "\Wsit0\W*$"
  ::/96      ::               U   256  2  0  sit0
  2002::/16  ::               UA  256  0  0  sit0
  2000::/3   ::193.113.58.75  UG    1  0  0  sit0
  fe80::/10  ::               UA  256  0  0  sit0
  ff00::/8   ::               UA  256  0  0  sit0


D) Configurar la ruta del prefijo 6to4
=======================================

Como hemos visto en el paso C) deberia de haber una ruta para el prefijo
2002::/16 a traves de la interfaz de tunel 6to4.

Si esta ruta no existe, entonces:

  # /sbin/ip -6 route add 2002::/16 dev tun6to4 metric 1


E) Configurar la conectividad IPv6
===================================

Dado que estamos configurando un rele 6to4, debe de existir conectividad
IPv6 (bien sea nativa o mediante tunel) a traves de un gateway IPv6 (para
nuestro ejemplo, usaremos 2001:7f9:1::1 como la direccion del GW). Tras
haber configurado una direccion IPv6 en la interfaz correspondiente, la ruta
por defecto ha de ser configurada:

Si nuestra interfaz IPv6 es eth0:

 Para configurar la direccion IPv6:

  # /sbin/ip -6 addr add 2001:7f9:1::2/64 dev eth0

 Para añadir la ruta por defecto:

  # /sbin/ip -6 route add 2000::/3 via 2001:7f9:1::1 dev eth0 metric 1


F) Configurar los anuncios del prefijo
=======================================
  
En algun punto de la red en la que esta conectado el Rele, tiene que haber
un dispositivo (tipicamente un router BGP) que anuncie el prefijo 2002::/16
a los peers IPv6.

Esto permitira que el trafico nativo IPv6 llegue a los nodos 6to4
(direcciones 2002::/16).

Al respecto de la alcanzabilidad IPv4 del rele, hay dos opciones:

1) Configurar la direccion IPv4 anycast (192.88.99.1) y anunciar el prefijo
anycast (192.88.99.0/24) a los peers IPv4.

2) Usar la direccion IPv4 publica.

Si se elige 1), todos los hosts 6to4 podran alcanzar el rele de forma
automatica, sin necesidad de ninguna configuracion manual.

Si se elige 2) es preciso algun tipo de anuncio adicional de la direccion
IPv4 (por ejemplo un FQDN-Fully Qualified Domain Name) de tal forma que sea
facilmente configurable en hosts que quieran usar dicho rele.

Esto permite a los nodos 6to4 (direcciones 2002::/16) llegar a los nodos
IPv6 nativos, a traves del rele.


G) Configuracion persistente
==============================

Si se desea que esta configuracion sea persistente, se puede utilizar un
script que se ejecute en el momento del arranque. La idea es que el script
ejecute todos los comandos requeridos para la configuracion deseada.

El siguiente ejemplo toma como argumento la direccion IPv4 publica del
hosts:

   #!/bin/sh

   IPV4=$1
   PARTS=`echo $IPV4 | tr . ' '`
   PREFIX48=`printf "2002:%02x%02x:%02x%02x" $PARTS`

   STF_IF="stf0"
   STF_NET6="$PREFIX48":0000
   STF_IP6="$STF_NET6"::1

   ip tunnel add tun6to4 mode sit ttl 64 remote any local $IPV4
   ip link set dev tun6to4 up
   ip -6 addr add $STF_IP6/16 dev tun6to4
   
   ip -6 addr add 2001:7f9:1::2/64 dev eth0
   ip -6 route add 2000::/3 via 2001:7f9:1::1 dev eth0 metric 1

Dependiendo de la implementacion, se puede tambien hacer alguna
configuracion en los ficheros de informacion de red.

 - Distribuciones Red Hat:

   Añadir IPV6TO4INIT=yes a /etc/sysconfig/network-scripts/ifcfg-if para la
interfaz con la direccion IPv4 local y añadir IPV6_DEFAULTDEV=tun6to4 a
/etc/sysconfig/network.

Tambien se puede configurar la ruta por defecto IPv6 si fuera preciso.

Los ejemplos de configuracion pueden variar para otras distribuciones de
Linux.


Anexo A: Eliminar el tunel 6to4 utilizando "ip" y el dispositivo de tunel
==========================================================================

Eliminar todas las rutas del dispositivo dedicado de tunel

    # /sbin/ip -6 route flush dev tun6to4
 
Desconectar la interfaz

    # /sbin/ip link set dev tun6to4 down
 
Eliminar el dispositivo de tunel

    # /sbin/ip tunnel del tun6to4







**********************************************
The IPv6 Portal: http://www.ipv6tf.org

Bye 6Bone. Hi, IPv6 !
http://www.ipv6day.org

This electronic message contains information which may be privileged or confidential. The information is intended to be for the use of the individual(s) named above. If you are not the intended recipient be aware that any disclosure, copying, distribution or use of the contents of this information, including attached files, is prohibited.






More information about the LACTF mailing list