A fines de los aos ochenta, cuando el uso de internet ya haba cumplido una dcada, se volvi evidente que las direcciones de 32 bits (direcciones IPv4) se hallaban en peligro de agotamiento debido al crecimiento exponencial de su uso. Debido a ello en 1996 la IETF desarroll y present el protocolo de internet versin 6 (IPv6), que utiliza direcciones de 128 bits, y tiene una capacidad de ms 3.4*10 38 direcciones, que es lo mismo que decir 4.8*10 28 direcciones por cada habitante del planeta. El nuevo protocolo es por mucho superior al IPv4,no solo por su mayor cantidad de direcciones, sino tambin por sus otras caractersticas: El encabezado fue diseado para ser lo ms simple posible, lo que hace que routers de mediana capacidad puedan procesar sus paquetes de forma eficiente. Enrutamiento y direccionamiento eficiente y jerrquico basado en la infraestructura de los distintos proveedores de intenet. Configuracin de redes dinmicas y estticas sin necesidad de un servidor DHCP. El protocolo puede soportar fcilmente la instalacin de nuevas caractersticas aadiendo encabezados de extensin detrs del encabezado IPv6 Repaso del direccionamiento IPv6 La caracterstica ms conocida de IPv6 es el tamao de sus direcciones de 128 bits. Al ser direcciones tan grandes son ms difciles de representar, ya que la tradicional notacin decimal puntuada de IPv4 no es demasiado prctica al producir direcciones muy grandes. Para la representacin de direcciones IPv6 se opt por utilizar 8 grupos de 16 bits en notacin hexadecimal, separando cada grupo mediante :, un ejemplo de direccin IPv6 sera: fe80:0000:0000:0000:0217:31ff:fe80:026b que si se representara en notacin decimal puntuada sera: 254.128.0.0.0.2.23.49.255.254.128.2.107 Como es lgico, en IPv6 se pueden quitar los ceros a la izquierda en cada grupo, por lo que la direccin anterior quedara: fe80:0:0:0:217:31ff:fe80:26b Adems se permite sustituir varios grupos de cero por ::, aunque slo una vez en cada direccin, para poder invertir el cambio: fe80::217:31ff:fe80:26b Al contrario que en IPv4, en IPv6 la parte de la direccin IP que corresponde a la direccin de host es fija y se corresponde con los ltimos 64 bits. Aunque tambin se utiliza la notacin CIDR para especificar bloques de direcciones IP. As, la direccin del ejemplo anterior debera estar especificada por: fe80::217:31ff:fe80:26b/64 que indicara que la direccin de red son los primeros 64 bits y la identificacin del host los 64 siguientes: Direccin de red: fe80:: Direccin de host: 217:31ff:fe80:26b El valor de la direccin de host no es aleatorio ya que se corresponde con la direccin MAC de la interfaz de red en formato EUI-64, que se puede obtener transformando la direccin MAC estndar en formato MAC-48. La direccin MAC de la interfaz anterior escrita en el formato habitual de 48 bits en hexadecimal es: 00:17:31:80:02:6b donde hay que separar los 16 bits del fabricante: 17:31 y los 24 bits de identificacin de la interfaz de red: 80:02:6b Para escribir ahora la direccin MAC de la interfaz de red en formato EUI-64 hay que hacer: 02:Fabricante:ff:fe:Identificacin interfaz o lo que es lo mismo: 0217:31ff:fe80:026b = 217:31ff:fe80:26b
Tipos de direcciones IPv6
Unicast: Direccin que identifica de forma nica a una interfaz. Multicast: Direccin que identifica a un conjunto de interfaces (normalmente pertenecientes a diferentes nodos). Un paquete que se enve a una direccin multicast es reenviado a todas las interfaces identificadas por esa direccin. Anycast: Direccin que identifica a un conjunto de interfaces (normalmente pertenecientes a diferentes nodos). Un paquete que se enve a una direccin anycast es reenviado a una de las interfaces identificadas por esa direccin (la ms cercana de acuerdo al protocolo de enrutamiento utilizado) Link-local: Una direccin que slo tiene el mbito (scope) de enlace y que puede utilizarse para alcanzar los nodos vecinos conectados en el mismo enlace. Todas las interfaces de red tienen una direccin unicast link-local. Unique local (ULA): Sustituyen a las direcciones site-local y son direcciones privadas no enrutables o enrutables a travs de unos pocos routers que cooperen. Global: Una direccin con un mbito sin lmite. Es de notar que en IPv6 no existe broadcast.
Breve historia de RIPng
Como ya se mencion, el futuro de las redes de computacin es el IPv6, y ya que las direcciones IPv6 son diferentes a las direcciones IPv4, todo lo que funciona con IPv4 debe cambiar para funcionar con IPv6. Esto incluye a los protocolos de enrutamiento, que intercambian informacin de direccionamiento. Para asegurar el futuro de RIP, una versin nueva compatible con IPv6 deba ser desarrollada. Esta nueva versin fue publicada en 1997, por G. Malkin y R. Minear en la RFC 2080, RIPng for IPv6. RIPng fue diseada para ser lo ms similar posible a la versin actual de RIP para IPv4, que vendra a ser RIPv2. De hecho, RFC 2080 describe a RIPng como el menor cambio posible a RIP para que funcione en IPv6; sin embargo y a pesar del esfuerzo, fue imposible definir a RIPng como una nueva versin del antiguo protocolo RIP, tal como si lo era RIPv2. RIP v2 es un nuevo protocolo, que era necesario debido al gran impacto de los cambios entre IPv4 e IPv6, en especial de los cambios de las direcciones de 32 bits a 128 bits, lo que requera de un nuevo formato de mensaje.
Definicin de RIPng
RIPng est pensado para permitir a los routers intercambiar informacin para computar rutas a travs de una red basada en IPv6.Es un protocolo de vector distancia (Definicin de RIPng segn RFC 2080)
Caractersticas especficas de RIPng
Aun cuando RIPng es un protocolo nuevo, se realiz un esfuerzo para que funcione como sus predecesores. Sus operaciones bsicas son las mismas, y utiliza el algoritmo general de Bellman-Ford y todas sus operaciones. RIPng tampoco introduce ninguna caracterstica especfica nueva si se la compara con RIPv2, exceptuando aquellas necesitadas para la implementacin de RIP en IPv6. A continuacin se citan las caractersticas de RIPng: Deja de usar definitivamente el protocolo UDP. Usa el nmero de puerto estndar 521. Los routers que utilizan el preotocolo RIPng escuchan a la direccin de multicast FF02::9 y mandan sus mensajes de actualizacin a esa direccin. Usa el algoritmo vector distancia para determinar una ruta ptima hacia el destino, usando la cuenta de saltos (hop count, nmero de routers entre un nodo de origen y uno de destino) como mtrica. Selecciona a la ruta con la mtrica ms baja como la preferida para enviar paquetes. Los routers configurados con RIPng intercambian informacin acerca de la disponibilidad de la red mediante mensajes de actualizacin de ruta. Opera dentro de un Sistema Autnomo (AS), que es un conjunto de routers y redes controladas por un nico administrador. Instala la mejor ruta en la tabla de enrutamiento Usa actualizaciones de envenenamiento en reversa y horizonte dividido para evita routing loops. Soporta el Simple Network Manager Protocol(SNMO) . Ayuda a una res IPV6 a entender la informacin IPv6
Formato del Mensaje RIPng
La siguiente figura detalla el formato de un protocolo RIPng
Comand.- Este campo especifica si el mensaje RIPng es de solicitud o si es de respuesta. Un 1 indica que es una solicitud, un 2 indica que es una respuesta. Versin.- Configurada en 1 (no en 6, ya que es la primera versin de RIPng.) Must Be Zero.- Campo reservado, su valor debe ser cero.
RTE(Routing table entry).-Tiene 20 bytes de tamao y especifica un destino IPv6 alcanzable. Su formato se muestra en la siguiente figura:
Prefijo IPv6.- Tiene 16 bytes y especifica si es una red IPv6 o si es una terminal IPv6 dependiendo de la longitud del prefijo Router tag.-Fue diseado para distinguir el origen de la ruta, esto es, si el prefijo advertido fue importado de otro protocolo de enrutamiento. Prefix lenght.- Especifica el nmero de bits significativos del campo de prefijo, de izquierda a derecha.Este nmero puede variar de 0 a 128. Si es cero se ignora.
Problemas con RIPng
La mayor ventaja de RIPng es que es un protocolo de enrutamiento simple y su implementacin es muy sencilla. Sin embargo, esta simplicidad causa una serie de problemas operacionales. El ms visible de estos problemas es su inhabilidad de detectar loops de enrutamiento en topologas ms complejas. Otro problema bastante serio es que puede converger lentamente en ciertas situaciones. Estos problemas son causados por el hecho de que los mensajes de actualizacin se envan cada 30 segundos. Pueden ser medianamente corregidos utilizando horizonte dividido,pero de todas maneras no es recomendable su uso en redes muy complejas.
Configuracin de RIPng
En esta seccin se mostrar la configuracin de una red de tres routers sencilla con RIPng.
Los bloques asignados estn escritos y para simplificar la configuracin se han dejado todos en /64.Paso 1: Configuramos las direcciones IP en cada interfaz de cada router.
Ahora los routers estn configurados solo con direccionamiento bsico. Lo siguiente que haremos ser habilitar la opcin de enrutamiento con el siguiente comando, que debe ser ingresado siempre an cuando solo quiera una ruta esttica:
R1(config)#ipv6 unicast-routing
R2(config)#ipv6 unicast-routing
R3(config)#ipv6 unicast-routing
Para habilitar RIPng solamente se debe ingresar a la interfaz de router que se desea publicar en el proceso RIP e ingresar el comando ipv6 rip identificador enable donde IDENTIFICADOR es un ID de proceso. Este valor puede ser un nmero o una palabra. A continuacin ingresaremos en todas las interfaces de R1, R2 y R3 para ingresar este comando. Note que la interfaz f0/1 de R1 y R3 no conectan con ningn otro router, pero sin embargo en ellas tambin se debe habilitar RIPng para que esas redes se publiquen
El nombre de proceso no debe ser el mismo en todos los routers. Como es un identificador local, puede ser el mismo o diferente en toda la red RIP y el enrutamiento funcionar igualmente. Sin embargo, es necesario que en el router, todas las interfaces pertenezcan al mismo proceso. RIPng ha sido optimizado para simplificar la configuracin en la declaracin de redes. En IPv6 si se quiere publicar una red es necesario ingresar a esa interfaz y habilitar el protocolo de enrutamiento requerido. No hay que declarar redes utilizando el comando network.