Implementacion IPv6-6bone - COMO

Autor: Frank Santana
Fecha: 28/11/2001


Implementacion IPv6-6bone - COMO
Revision 0.20 Fecha 2001:11:28 A.D. 20:44 GMT-4

por Frank Santana (vizard)

Copyleft 2001

Este documento busca mostrar en idioma castellano, la manera de habilitar el soporte IPv6 y conectar al 6bone a traves de un pNLA o un pTLA, en
sistemas operativos como FreeBSD ySD

Ademas se referiran documentos y sitios web que puedan aportar material al area del IPv6 para otros sistemas operativos.

NO soy un guru en el area, solo que ya he hecho un par de cosas y quiero compartirlas con todos. Agradezco mucho a proyecto "IPv6 en UniNet" por
haberme ilustrado al respecto.
Cualquier sugerencia, insulto y demas, favor enviarla a mi correo ;)

Este documento no ofrece garantia alguna, asi que si un "enanito verde del bosque desconfigura su sistema", no me eche la culpa a mi =P

Permisos para copiar, distribuir y/o modificar este documento estan sujetos a la Licencia de Documentacion Libre de la GNU version 1.1 a
recientes publicaciones por la Fundacion de Software Libre

 

Tabla de contenido

1. Introduccion
1.1 Definicion
1.2 ¿Por qué es importante el IPv6?
1.3 ¿Como puedo probarlo?
1.4 ¿Donde encuentro aplicaciones listas para IPv6?
1.5 Requisitos
1.6 Datos a usar

2. FreeBSD
2.1 El Kernel
2.2 La Configuracion

3.SD
3.1 El Kernel
3.2 La Configuracion

4. Paquete GNU Zebra
5.1 Descripcion
5.2 La Configuracion

5. Referencias
5.1 Bibliografia

 

1. Introduccion

1.1 Definicion

IPv6 (tambien conocido como IP Next Generation), es el protocolo de comunicaciones basado en TCP/IP, desarrollado a partir de la necesidad de
aumentar la cantidad de direcciones IP disponibles para redes sobre Internet.

Este protocolo viene a reemplazar al actual TCP/IP (tambien conocido como IPv4), el cual a partir de principios de la decada de los 90's comenzo a revelar su antiguedad de 3 decadas, y mostrar que ya estaba llegando su fin. Con un maximo de direcciones disponibles de 2^32, este protocolo solo provee algo mas de 4 mil millones de direcciones para hosts con acceso directo a la red mundial.

La Internet Engineering Task Force o IETF, que es la organizacion encargada de estandarizar los protocolos para Internet, comenzo a trabajar en un nuevo substituto, y luego de varias pruebas se eligio al IPng como reemplazo. Desde entonces llamado IPv6, este nuevo protocolo promete ademas de la enorme cantidad de direcciones para redes, los siguientes beneficios:


Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb
the march group complaints
drug testing and students

-IPv6 modifica las direcciones de modo que ahora son de 128 bits, particionados en 64 para la red y 64 para el equipo (esto es, permite redes cada una con una cantidad -a los efectos practicos- infinita de equipos conectados)

-Ya que no solo crece la cantidad de direcciones, sino que tambien lo hace la cantidad de rutas en la actual InternetB. Este crecimiento limita a los routers de backbone y evita que se puedan alcanzar mejores velocidades.
IPv6 propone un mecanismo de agregacion estricta que evita ese crecimiento indiscriminado de entradas en las tablas de rutas.

-IPv6 reestablece el modelo de conexion entre extremos, quebrado por los NAT. Para salvar el problema de la falta de direcciones muchas organizaciones emplean sistemas de traduccion de direcciones llamados NAT. Estos sistemas evitan la conectividad directa entre equipos que esten tras un traductor. IPv6 permite eliminar los NAT, ya que dejan de hacer falta.

-Facilitar la administracion de las redes. IPv6 provee un conjunto de metodos que permiten la configuracion automatica de las redes (incluyendo la facilidad para renumerar las redes)
-Seguridad. IPSec es parte de las especificaciones de IPv6.

1.2 Por que‚ es importante el IPv6?

El Internet Architecture Board (IAB) del IETF, ha preparado "El Caso IPv6" (http://www.ipv6.org/draft-iab-case-for-ipv6-06.txt), donde se especifica los puntos que hacen importante el cambio gradual del actual IPv4 al IPv6.

1.3 Como puedo probarlo?

Una vez se habilite el soporte para IPv6, ya sea siguiendo este COMO o cualquier otro, se estara en condiciones de conectar al 6bone, que es la red de pruebas para IPv6 que opera desde hace varios años, conectando redes IPv6, sobre el Internet IPv4 que todos conocemos.

1.4 Donde encuentro aplicaciones listas para IPv6?

Existe una gran variedad de sitios que ofrecen aplicaciones, parches y paquetes listos para funcionar bajo el nuevo protocolo. He aqui una pequeña lista:

ftp://ftp.kame.net/pub/kame/misc/
The KAME project.

ftp://ftp.kyoto.wide.ad.jp/IPv6/index.html
The WIDE project.

http://www.imasy.org/~ume/ipv6/
IPv6 patches and FreeBSD ports (ex. ftpmirro, fwtk, gkrellm, pidentd, tcpwrapper)

http://www2.kame.net/faq/fom.cgi?file=45
IPv6-ready applications/patches list maintained by the KAME project.

http://www.netbsd.org/packages/README-IPv6.html
IPv6-enabled applications available for installation on NetBSD

http://tipster6.ik.bme.hu/ipv6port/index.cgi?lang=en
An searchable and extensible IPv6 application and port database by the TIPSTER6 project in Hungary.

http://www.freebsd.org/ports/ipv6.html
Ports de FreeBSD con soporte IPv6

(son puras direcciones, no me voy a poner a traducir todo esto =P )


1.5 Requisitos

Para poder conectar al 6bone, es necesario contactar con algun pTLA o pNLA para que nos asigne un bloque de red IPv6, asi como un numero de sistema autonomo (ASN), ademas es requisito levantar una conexion con alguien que sirva de enrutador de paquetes hacia el 6bone.

En resumen los requisitos son:
1. Obtener un ASN y un bloque de direcciones IPv6.
La lista de pTLA esta en http://www.6bone.net/6bone_pTLA_list.html

2. Conseguir a alguien que le enrute los paquetes al 6bone.
Recuerde que Internet es una red de red, asi que debe conectar su red con las demas redes del 6bone.

3. Ambos, tanto nosotros como quien le sirve de enrutador, debemos
tener acceso directo a Internet, ya sea por direccion IP estatica, o por direccion dinamica. (un NAT no sirve)

Otro requisito para poder enrutar desde nuestra propia red hacia 6bone, es instalar un paquete que sirva para estos fines. En este COMO utilizaremos GNU Zebra, que se puede encontrar tanto en los ports de FreeBSD como en los deSD, ademas de su sitio en la Web http://www.zebra.org.

Aunque en la mayoria de las nuevas versiones de las distribuciones de BSD el soporte IPv6 viene integrado explicaremos como habilitarlo en caso de que no sea asi.


1.6 Datos a usar

Ya que no poseo ningun ip estatico, usare IP's privadas para hacer los ejemplos de configuracion, mi propio ASN y el de un amigo, ademas de mi propio bloque de red.

Prefijo IPv6 asignado: 3ffe:8260:123::/48

ASN de quien nos enruta: 46011
Direccion IPv4 de quien enruta:
Direccion IPv6 de quien enruta: 3ffe:8260:123:ffff::1

ASN nuestro 45341
Direccion IPv4 nuestra:
Direccion IPv6 nuestra: 3ffe:8260:123:ffff::2


2. FreeBSD

2.1 El Kernel

Si no saben como configurar el kernel en FreeBSD, haganse un paseito por el website de FreeBSD.org.

Las opciones a elegir son:
options INET6
pseudo-device gif 4

Compilar como manda t00R (el grande)

2.2 La Configuracion

Editando el archivo /etc/rc.conf, se añaden las siguientes opciones:

router_enable="YES"
rtadvd_enable="NO"

# Activa soporte enrutador y desactiva el paquete rtadvd

ipv6_enable="YES"
# Activa el soporte IPv6

ipv6_gateway_enable="YES"
# Activa el soporte de enrutador IPv6

network_interfaces="ed0 lo0 gif0"
# Enlista las interfaces a ser usadas (cambiar ed0 por la correspondiente a su interfaz de red)
# gif0 es la interfaz que utiliza el Generic Tunnel (osea el tunel)

ipv6_network_interfaces="lo0 ed0 gif0"
# Enlista las interfaces que usaran direcciones IPv6

gif_interfaces="gif0"
# Indica la interfaz a usar para el tunel

gifconfig_gif0=" "
# Configuracion del tunel IPv4

ifconfig_gif0="inet6 3ffe:8260:123:ffff::2 3ffe:8260:123:fff1::1 prefixlen 64"
# Configuracion del tunel IPv6

Luego se debe reiniciar el sistema para aplicar todos los cambios.


Pruebe con ping6 -n 3ffe:8260:123:ffff::1

PING 3ffe:8260:123:ffff::1(3ffe:8260:123:ffff::1) from 3ffe:8260:123:ffff::2 : 56 data bytes
64 bytes from 3ffe:8260:123:ffff::1: icmp_seq=0 hops=64 time=465.289 msec
64 bytes from 3ffe:8260:123:ffff::1: icmp_seq=1 hops=64 time=759.909 msec


3.SD

3.1 El Kernel

Para el Kernel deSD, en caso de ser necesario, se haria de misma manera que en FreeBSD.


3.2 La Configuracion

En /etc/rc.local se añaden las siguientes lineas:

ifconfig gif0 giftunnel
ifconfig gif0 inet6 3ffe:8260:123:ffff::2
route add -inet6 3ffe:8260:123:ffff::2 -prefixlen 64 3ffe:8260:123:ffff::1
route add -inet6 default 3ffe:8260:123:ffff::1
route6d

Para anunciar el enrutador a nuestra red local, se hace como sigue

Se edita /etc/hostname.ne3 ( donde ne3 se cambia por la interfaz de red)
inet 255.255.255.0 NONE
inet6 alias 3ffe:8260:123:1::1 64

En /etc/sysctl.conf se hace lo siguiente:

net.inet6.ip6.forwarding=1 # 1=Permit forwarding (routing) of packets
net.inet6.ip6.accept_rtadv=0 # 1=Permit IPv6 autoconf (forwarding must be 0)

Se debe reiniciar para que se apliquen los cambios.


4. Paquete GNU Zebra

4.1 Descripcion

GNU Zebra es el paquete de enrutamiento a usar para los ejemplos de las anteriores configuraciones, supongo que hay mas paquetes que hagan este trabajo, pero es el que uso ;) http://www.zebra.org

4.2 La Configuracion

Una vez instalado el paquete, se arrancan el servicio de bgpd y se conectar al puerto 2605 local via telnet

Escape character is '^]'.

Hello, this is zebra (version 0.92a).
Copyright 1996-2001 Kunihiro Ishiguro.

User Access Verification

Password:
ipv6-router> ena
Password:
ipv6-router# conf t

# Los passwords por defecto son "zebra", no hay necesidad de decir que eso debe cambiarse, o si? ;)

ipv6-router(config)# password nuevaclave
ipv6-router(config)# enable password otranuevaclave

# Ahora la configuracion:

ipv6-router(config)# router bgp 45341

ipv6-router(config)# ipv6 bgp neighbor 3ffe:8260:123:ffff::1 remote-as 46011

ipv6-router(config)# ipv6 bgp neighbor 3ffe:8260:123:ffff::1 interface gif0

ipv6-router(config)# ipv6 bgp neighbor 3ffe:8260:123:ffff::1 description Conexion 6bone

ipv6-router(config)# ipv6 bgp neighbor 3ffe:8260:123:ffff::1 next-hop-self


# Se guarda la configuracion

ipv6-router(config)# end
ipv6-router# write f

Ahora si nuestro enlace el 6bone ha hecho lo suyo, se puede ver lo que sigue

ipv6-router# show ipv6 bgp summary
BGP router identifier , local AS number 45341
1 BGP AS-PATH entries
0 BGP community entries

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
3ffe:8260:123:ffff:::01:37 Active

Para este momento ya se podria hacer:
# ping6 -n www.6bone.net

PING www.6bone.net(3ffe:b00:c18:1::10) from 3ffe:8260:123:ffff::2 56 data bytes
64 bytes from 3ffe:b00:c18:1::10: icmp_seq=0 hops=58 time=628.050 msec
64 bytes from 3ffe:b00:c18:1::10: icmp_seq=1 hops=58 time=720.533 msec

Con esto, ya esta hecha la conexion al 6bone. EnHorabuena !
Solo falta anunciar el nuevo enrutador a la red local, para esto se arranca el servicio "zebra" y se conecta al puerto local 2601 via telnet (recuerden lo que dijimos de los passwords)

ipv6-router(config)# interface ed0 (o su equivalente a la targeta de red)
ipv6-router(config-if)# ipv6 nd send-ra
ipv6-router(config-if)# ipv6 nd prefix-advertisement 3ffe:8260:123:1::/64

Con esto, los equipos con soporte IPv6, se autoconfiguraran y conectaran al 6bone con solo conectarse al mismo segmento que nuestro router, esto incluye a los hosts en una red privada.


5. Referencias y Agradecimientos

El Proyecto IPv6 en Hispanoamerica de COMPENDIUM-AR y UniNet, ademas de la UNAM de Mexico, y REUNA de Chile, han contribuido en gran manera a la investigacion y desarrollo del Protocolo de Nueva Generacion

Agradezco a Horacio Peña, de COMPENDIUM-AR, Rik van Riel, de Conectiva y NLO (nl.linux.org), a Cesar Olvera de la UNAM, y al grupo de trabajo de Linux.Org.Do (Tr0n)

5.1 Bibliografia

Durante la produccion de este material, tome prestado gran cantidad de informacion de los siguientes sitios y documentos

IETF site [http://www.ietf.org]
6bone site [http://www.6bone.net]
Poyecto IPv6 en Hispanoamerica de UniNet y su tutorial [http://www.uninet.edu/6fevu/text/isla6bone.html]
Proyecto IPv6 de la UNAM [http://www.ipv6.unam.mx]
Peter Bieringer's IPv6-HOWTO [http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO.html]
Microsoft Research IPv6 Implementation (MSRIPv6) [http://research.microsoft.com/msripv6/msripv6.htm]
Sun Microsystems Documentation site [http://docs.sun.com]


eldemonio.org El site BSD en Castellano Articles catalogue

Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

eldemonio.org v 4_2