Transmisión de datos. Redes IPV6

Anuncio
1. Introducción
1. Introducción
Desde que surgió la idea de conectar dos ordenadores entre sí, se fueron presentando algunas necesidades de
tipo funcional para poder llevar a cabo esta soñada tarea que revolucionaría el mundo de las comunicaciones.
Pero antes de conectar los dos ordenadores había que definir una serie de normas, a modo de lenguaje
universal para que todo los ordenadores se entendieran entre sí. De este modo surgieron los primeros
estándares para desarrollar un protocolo para la comunicación de ordenadores, de cuya evolución surgió el
actual IP.
En el año 1973, la DARPA inició un programa de investigación de tecnologías de comunicación entre redes
de distintas características, que se basaba en la transmisión de paquetes de información. Para comunicar las
redes se desarrollaron varios protocolos: el protocolo de Internet y los protocolos de control de transmisión.
Posteriormente estos protocolos se englobaron en el conjunto de protocolos TCP/IP.
En el año 1980, se incluyó en el UNIX 4.2 de BERKELEY, lo que ayudó a su distribución por todo el mundo,
ya que este sistema operativo se distribuía libremente por las Universidades de todo el mundo y fue lo que ha
contribuido de una forma notable a su actual desarrollo. En el año 1983 nació Internet, que también utiliza
este protocolo para la interconexión de redes.
Además de su inteligente forma de distribución, algunos motivos como la independencia del fabricante, su
capacidad de soportar múltiples tecnologías y su capacidad de funcionar en máquinas de cualquier tamaño,
ayudaron al desarrollo de este protocolo que es el estándar en Estados Unidos desde el año 1983. Cuando este
protocolo se desarrolló se marcaron una serie de objetivos como la independencia de la tecnología usada en la
conexión a bajo nivel y arquitectura del ordenador, lo que permite la conectividad universal a través de la red.
Cuando la versión actual de este protocolo se desarrolló, no se tuvieron en cuenta todas las posibilidades
reales que este nuevo medio de comunicación podía ofrecer, por otra parte muchas de ellas eran inimaginables
en aquellos días, por lo que resulta lógico que no se tuvieran en cuenta. En las fechas actuales, es tal el
desarrollo de Internet en el mundo que la antigua versión de IP se está quedando pequeña y para determinadas
actividades y servicios resulta bastante pobre, por lo que se estaba haciendo necesario una revisión de este
protocolo para no limitar las enormes posibilidades que la conexión global del planeta nos puede ofrecer. Es
por este motivo por lo que se pensó hacer una nueva versión de este protocolo, para adaptarse a los nuevos
tiempos: Renovarse o morir y una vez que se vieron todas las posibilidades (y el dinero) que ofrecía Internet,
resultaba muy duro tener que morir.
En los sucesivos apartados de este trabajo se muestran los principales aspectos de Ipv6 y cuáles son las
características que hacen de él un protocolo compacto, robusto que le convierten en el protocolo estándar del
nivel de red para un futuro a corto plazo, mejorando infinitamente a su predecesor.
2. Antecedentes
La capa de red en Internet es un conjunto de subredes o AS (Autonomous System o Sistema Autónomo)
interconectados. Lo que mantiene unida la red de Internet es el protocolo de Internet, IP. A diferencia de los
anteriores protocolos existentes este se diseñó para soportar una interconexión de redes. Su trabajo es
proporcionar un transporte de datagramas adecuado desde el origen a su destino sin importar el nivel de red
que exista por debajo, aunque sean muy diferentes las redes interconectadas.
2.1. Evolución del protocolo IP.
1
2.1.1. Estructura de los datagramas IP
El datagrama IP más general consta de una cabecera de 20 bytes, a veces con una parte opcional, y una parte
de texto. El formato de cabecera es:
• El campo versión lleva a cabo el registro para ver a quien pertenece el datagrama. Dado que la
longitud de la cabecera no es fija se incluye el campo IHL, para indicar la longitud en palabras de 32
bits.
• El campo tipo de servicio TOS: permite al host indicar a la subred que tipo de servicio quiere.
Indicando con ello la confiabilidad y la velocidad. Por ejemplo para transferencia de datos de vídeo o
audio interesa una entrega de datos rápida más que precisa. Para la transferencia de archivos es más
importante, la transmisión sin errores que una transmisión rápida.
El mismo campo contiene un campo de precedencia; tres indicadores: D, T, R, y dos bits no usados. Este
campo es una prioridad de 0 a 7. Los tres bits indicadores permiten especificar el retardo (delay), el
rendimiento (throughput), confiabilidad (reliability). Estos campos permiten a los enrutadores o routers tomar
decisiones sobre enlace por satélite de alto rendimiento y alto retardo, o escoger bajo rendimiento y poco
retardo. Actualmente los enrutadores ignoran este campo.
• El campo longitud total: nos indica la longitud de todo el datagrama; tanto la cabecera como los datos.
La longitud máxima es de 65.535 bytes.
• El campo identificación: es necesario para identificar a qué datagrama pertenece el fragmento recién
llegado. Todos los fragmentos de un datagrama llevan el mismo identificador, en el caso que el
datagrama haya sufrido fragmentación.
• El campo Flags (banderas): está relacionado con la fragmentación, sabemos si lo que recibimos es un
trozo de un datagrama o todo uno. Consta de tres bytes, uno de ellos es DF (don´t fragment) es una
orden que indica a los enrutadores que no fragmenten, porque el destino es incapaz de juntar y
aunarlas. El bit DF el transmisor sabe que llegará en una pieza.
• El campo desplazamiento de fragmento: Indica que lugar ocupa dentro de la fragmentación. Todos los
fragmentos del datagrama deben tener un múltiplo de 8 bytes, excepto el último, es una unidad de
fragmentación elemental.
• El TTL (time to live): es un contador que sirve para la vida del paquete, permite una vida alrededor de
255 segundos debe disminuirse en cada salto, en la práctica cuenta los saltos. Cuando el contador
llega a 0, el paquete se descarta y se envía un mensaje a la estación. Se evita la explosión de paquetes,
de esta manera.
• El campo identificador de protocolo: indica la capa de transporte a la que debe entregarse. TCP es una
posibilidad pero también está UDP, etc.
• Secuencia de verificación de cabecera: verifica tan sólo la cabecera, es posible detectar errores
generadas por ejemplo por palabras de memoria erróneas en un router. La secuencia de verificación
de cabecera debe comprobarse en cada salto debido que algunos campos como el TTL y para detectar
el fallo.
• La dirección de origen y destino: indica el número de red y el número de la estación.
• El campo de opciones: Se creó para que se incluyeran mejoras, permitir probar nuevas ideas y
asignación de bits de cabecera. Las opciones son de longitud variable, se rellena a veces para que sea
múltiplo de 4 bytes. Las opciones actuales ofrecidas son:
Opción
Descripción
2
Seguridad
El grado de importancia del datagrama
Encaminamiento estricto desde el origen
Indica el camino que se va a seguir.
Encaminamiento libre desde el origen
Lista de los routers por los que pasa.
Registrar o grabar la ruta
Cada router pone su dirección IP.
Marcar el tiempo
Cada router pone su dirIP. y su marca de tiempo.
• La opción seguridad indica como de secreta es la información, por ejemplo visto en clase que interesa que
ciertos datos desde EEUU lleguen a la India sin pasar por Irak.
• La opción de encaminamiento estricto desde el origen da la trayectoria que sigue el paquete, es un conjunto
de dir_IP. Se utiliza para especificar una ruta en concreto sobre las demás posibles debido que es un tráfico
de emergencia por ejemplo, a veces se utiliza para hacer medidas en el tiempo.
• La opción encaminamiento libre desde el origen; el paquete debe pasar pon unos puntos en específicos pero
se le permite para o pasar por otros routers. Esto es muy útil cuando las consideraciones políticas o
económicas obligan a pasar por ciertos países.
• La opción registrar ruta indica a los routers que añadan su dirección su IP al campo opción, esto permite a
los administradores encontrar fallos en los algoritmos de encaminamiento. Al establecer primeramente
ARPANET, ningún paquete pasaba por más de 9 routers, por lo que 40 bytes eran más que suficientes para
el campo de opción. Actualmente es muy poco.
• La marca de tiempo es como la opción registrar la ruta sólo que aquí se pide que además de registrar la
dir_IP del router, se añada la marca del tiempo en el momento que le llega el paquete, es un número de 32
bits. Esta opción también es usada para la detección de fallos en los algoritmos de encaminamiento.
2.1.2. IPv6
Debido al auge sufrido en Internet en los últimos años, el IPv4 quedó obsoleto a causa de ciertos problemas.
IETF (Internet Engineering Task Force) comenzó a trabajar en 1990 en una versión nueva del IP, debido
principalmente a que el número de direcciones disponibles en el IPv4 era pequeño a causa de la gran
demanda.
Los objetivos que debería cumplir el nuevo protocolo eran:
• Manejar miles de millones de estaciones o host, aún con espacio de direcciones suficiente.
• Reducir las tablas de encaminamiento.
• Simplificación de la cabecera para que el protocolo sea más sencillo y se pueda procesar más rápido.
• Proporcionar una mayor seguridad de los datos, la cual, la anterior versión, no podía garantizar a este nivel.
Para ello se utiliza una verificación de autenticidad y confidencialidad.
• Prestar más atención al TOS especialmente con datos en tiempo real.
• Ayudar al multicast, permitiendo la especificación de alcances.
• Posibilitar que una estación sea móvil sin que con ello tenga que cambiar de dirección.
• Permitir que el protocolo evolucione.
• Permita pruebas a escala global, 6bone será comentado más adelante.
• QoS en internet: servicios integrados y diferenciados.
• El nuevo protocolo podría convivir con la antigua versión.
Para conseguir un resultado óptimo IETF pidió proyectos en el RFC 1550. Una propuesta fue ejecutar el TCP
sobre CLNP, que con sus direcciones de 160 bits habría solucionado el problema del acotamiento de las
direcciones. De entre todas las propuestas se escogió en 1993 la de Deering y Francis, llamada ahora SIPP
(Simple Internet Protocol Plus, protocolo simple de Internet mejorado, y se le dio la asignación de IPv6(el
IPv5 estaba siendo usado como protocolo experimental de flujos en el tiempo real).
El IPv6 cumple los objetivos impuestos bastante bien, pero en general no es compatible con el IPv4 pero lo es
con los demás protocolos de Internet, tales como: TCP, UDP en el caso de RIP, ICMP, IGMP, OSPF, BGP Y
3
DNS.
El IPv6 tiene direcciones más grandes que el IPv4, son de 16 bytes de longitud, lo que resolvía el problema
entonces existente, así prácticamente se daba una capacidad ilimitada de direcciones IP.
Con el IPv6 se consigue una simplificación en la cabecera, que contiene solamente 7 campos frente a los 13
del IPv4. Este cambio permite a los routers procesar los paquetes mucho más rápido que con antiguas
versiones, mejorando así el rendimiento.
Se mejora también las opciones, campos que antes eran obligatorios ahora son opcionales, es más sencillo
para los routers haciendo caso omiso a las que no van dirigidos a ellos.
IPv6 mejora la seguridad, de los datos, asegurando un tráfico seguro e importante. Las verificaciones de
autenticidad y la confidencialidad permiten esta mejora.
Se presta más atención al TOS (type of service) en esta nueva versión. El IPv4 tiene un campo de 8 bits
dedicado a este asunto, pero el crecimiento esperado en el tráfico de multimedia requiere mucho más.
2.1.3. Evolución de cabecera de IPv4 a IPv6
Vamos a ver un resumen y comentarios entre las diferencias entre las cabeceras del IPv4 y IPv6. El campo
IHL se quitó porque la cabecera del IPv6 tiene una longitud fija.
El campo de protocolo se retiró porque el campo de siguiente cabecera indica lo que sigue a la última
cabecera de IP, por ejemplo un segmento de UDP o TCP.
Se retiraron todos los campos relacionados con la fragmentación, puesto que el IPv6 tiene un enfoque distinto
frente a la fragmentación. Cuando una estación manda un paquete de IPv6 demasiado grande, en lugar de
fragmentarlo, el router que es capaz de reenviarlo devuelve un mensaje de error. Este mensaje indica a la
estación que divida todos los paquetes antes de enviarlos a ese destino. Es más eficiente que la estación origen
fragmente los paquetes y los mande ya con un tamaño correcto, que hacer que el router los fragmente sobre la
marcha.
Por último el campo de secuencia de verificación de trama desaparece porque su cálculo disminuye las
prestaciones para la cual fue creada; con las redes fiables de hoy y el hecho que la capa de enlace y la de
transporte tengan ya sus propios campos respectivos a esta materia, la utilización de otra secuencia de
verificación de trama SVT, su comprobación empeoraba los costos y prestaciones.
Al tener en cuenta todo los problemas que debería solventar este protocolo, y considerando todas estas
características ha resultado un protocolo de capa de red compacto y robusto. Por tanto la meta del IPv6 es la
de conseguir una mayor rapidez y flexibilidad con bastante espacio de direcciones, y todos estos requisitos se
han cumplido.
2.2. Problemas despertados por la evolución del IPv6
Muchas de las decisiones tomadas para el IPv6 fueron tema de fuertes diferencias y controversias dentro del
mundo de las telecomunicaciones.
Se ha comentado ya, lo relacionado a la decisión de aumentar la capacidad de longitud de las direcciones, a 16
bytes, de longitud fija, la cual dio lugar a discusiones.
El límite de saltos también fue tema de pelea, unos querían meter un límite de 255 saltos, eso implicaba usar
4
un campo de 8 bits, era un error, pues actualmente las trayectorias más comunes apenas llegan a los 32 saltos,
se descarta que en el futuro aumente el número de saltos, pues empeoraría la capacidad de servicio y
aumentaría la probabilidad de error en la transmisión. Para todas estas disputas hubo una solución, que era que
todos los campos llevasen argumentos que les permitieran aumentar en tamaño si fuese necesario, lo que
llevaría a una cabecera aumentada en gran medida. También debe observarse que el campo número saltos fue
creado para que los paquetes no vaguen durante demasiado tiempo por ahí, por tanto 65.535 saltos expuestos
eran demasiados saltos, debido a que cada vez se hacen enlaces a mayor distancia, con lo que comunicarse de
un país a otro muy alejados entre si, apenas llevará media docena de saltos. Si se requieren más de 125 saltos
para llegar de origen a destino a sus pasarelas internacionales, es que algo está mal, los de 8 bits ganaron esta
partida.
Otro motivo de discordia fue el tamaño del paquete, la comunidad de las supercomputadoras quería paquetes
de más 64 Kbytes. Ya que cuando transmitían no querían ser interrumpidas sus transferencias cada 64 KB,
pero tenía un argumento en contra, el tamaño demasiado grande de los paquetes podría traer problemas
derivados de su excesiva longitud. Por ejemplo paquetes de tamaño de 1MB en una línea de transmisión de
1.5Mbps, el paquete bloqueará la línea durante 5 segundos, con lo que produciría un retardo notorio en la
transmisión. Se llegó a la conclusión de que el tamaño de los paquetes fuera de 64KB para paquetes normales,
pero utilizando la cabecera de extensión de salto por salto, se pueden construir jumbogramas o supertramas.
(Ver cabecera de opciones salto a salto).
Una tercera disputa fue la supresión de la SVT del IPv5, para algunos representaba un suicidio informático.
Quitarlo puede aumentar ciertamente la rapidez de procesado, pero pueden ocurrir por ello eventos
inesperados en la red. El argumento en contra de la SVT fue que a cualquier aplicación que verdaderamente le
importa la integridad de sus datos, de todos modos tiene que tener una SVT para el nivel de transporte, por lo
que tener otra en el IP (además de tener otra en el nivel de enlace) era excesivo. Además se comprueba que
SVT en el IPv4 era demasiado costoso su comprobación. El bando en contra de la SVT ganó la partida y no
tiene.
Las estaciones móviles fueron tema también de discusión. Si una computadora portátil volara a otro lado del
mundo, ¿podría utilizar en el destino la misma dir_IP de IPv6 ó debe de utilizar otros métodos diferentes?. Las
estaciones móviles crean asimetría en el sistema de encaminamiento, por lo que una computadora pequeña
puede escuchar a un router estacionario grande pero que dicho router no le llegue la señal débil de la
computadora. Para ello algunas personas propusieron un reconocimiento explícito de las estaciones móviles
en el IPv6, pero no se llevó a cabo.
Era evidente la necesidad de un protocolo que proporcionase un nivel de seguridad superior al que ofrecía
IPv4. Existían serias controversias en cómo implementar este servicio debido a los problemas que plantean las
leyes en contra del cifrado en ciertos países. Otros puntos de discusión eran qué algoritmos utilizar y si había
que implementarlo en el nivel de red o en un nivel superior. El resultado final fue la solución aportada por
IPv6 que veremos con mayor profundidad en el apartado dedicado a la seguridad.
Donde no hubo problemas fue en el tránsito del IPv4 a IPv6, ya que todos eran conscientes que ese paso no
podría ser inmediato, se hicieron islas en un principio para el IPv6 comunicadas por túneles (iniciativa 6bone).
A medida que vaya aumentando el uso del IPv6 de irán incrementando esas islas. Tarde o temprano todas esas
islas se habrán integrado e Internet habrá sido convertida por completo al formato de IPv6, pero debido a la
extensión del IPv4 deberán convivir ambas durante algún tiempo.
3. IPV6
El protocolo IP en su versión 6 (llamado IPv6 o IPng), surge como un sucesor de la versión 4, que pronto se
quedará corta debido al crecimiento exponencial de Internet, como ya hemos explicado en el apartado
anterior.
5
A continuación volvemos a recordar los cambios que introduce IPv6 respecto a su anterior versión IPv4, de
forma resumida:
1.− Expansión de las capacidades de direccionamiento.
IPv6 incrementa el tamaño de las direcciones de 32 bits (IPv4) a 128 bits, para soportar más niveles en la
jerarquía de direccionamiento, un número mayor de nodos direccionables, y un sistema de autoconfiguración
de direcciones. Se añade un nuevo tipo de dirección, la llamada anycast, de forma que es posible enviar un
paquete a cualquier nodo entre un grupo de ellos.
2.− Simplificación de la cabecera.
Algunos campos de la cabecera del IPv4 son eliminados o pasan a ser opcionales, tanto para reducir el coste
de procesamiento como el tamaño de la cabecera.
3.− Mayor flexibilidad para extensiones y nuevas opciones.
En IPv6 no existe un campo opciones, como tal. (ver el apartado datagrama IPv6). La gestión de opciones se
realiza por un campo siguiente cabecera ( next header), eliminando así las limitaciones de tamaño en la
cabecera, e introduciendo una gran flexibilidad en el desarrollo de nuevas opciones.
4.− Capacidades de control de flujo.
Se añaden capacidades que permiten marcar los paquetes que pertenezcan a un determinado tipo de tráfico,
para el cual el remitente demanda una calidad mayor a la especificada por defecto o servicios en tiempo real.
5.− Capacidades de autenticación y privacidad de datos.
IPv6 provee extensiones para soportar autenticación, e integridad y confidencialidad de datos.
Por lo demás, IPv6 mantiene la filosofía de IPv4 en cuanto a que ofrece un servicio de datos basado en
datagramas no fiable, no orientado a conexión, etc. (ver apartado anterior). Cuando al desarrollar las
características más importantes de IPv6 nos encontremos con alguna diferencia con respecto a IPv4 la
expondremos en mayor profundidad.
A continuación estudiaremos la composición del datagrama IPv6 y la función de cada uno de sus campos,
excluyendo los dedicados a direccionamiento y seguridad, que se tratarán en los siguientes apartados.
3.1. Formato de los datagramas IPv6
La unidad de datos de protocolo (PDU) de IPv6 tiene el siguiente aspecto:
Figura 1. Forma general de una PDU de IPv6
Como puede apreciarse en la figura, el paquete (como se suele llamar a la unidad de datos de protocolo)
consta básicamente de una cabecera de 40 octetos (aparecen ya las primeras diferencias con IPv4, puesto que
la cabecera del mismo tenía una extensión de 20 octetos) y un campo para la PDU del nivel superior
(Transport−level PDU, PDU del nivel de transporte). Los campos extension header (cabeceras extendidas)
6
pueden existir o no, y se trata básicamente de otras cabeceras que proporcionan una información adicional a la
suministrada por la cabecera principal. Se definen las siguientes cabeceras extendidas:
• Cabecera de opciones Salto a Salto (Hob−by−hop options header): Define opciones especiales que
requieren procesado hop−by−hop (salto a salto).
• Cabecera de Encaminamiento (Routing header): Proporciona una ruta extendida, similar al
encaminamiento de fuente de IPv4.
• Cabecera de Fragmetación (Fragment header): Contiene información de fragmentación y
reensamblado.
• Cabecera de Verificación de Autenticidad (Authentication header): Permite la autenticación e
integridad del paquete.
• Cabecera de carga útil cifrada de seguridad (Encapsulating security payload header): permite
privacidad.
• Cabecera de Opciones de Destino (Destination options header): Contiene información adicional a
examinar por el nodo destino.
El estándar de IPv6 recomienda que cuando se utilicen múltiples cabeceras extendidas, éstas aparezcan en el
siguiente orden:
• Cabecera IPv6. Siempre debe aparecer primero, obligatoriamente.
• Hop−by−hop options header.
• Destination options header: para las opciones que han de ser procesadas por el primer destino que
aparece en el campo de dirección de destino de IPv6 más los subsiguientes destinos listados en la
routing header.
• Routing header.
• Fragment Header.
• Authentication header.
• Encapsulating security payload header.
• Destination options header: para las opciones que sólo tiene que procesar el destino final del paquete.
Por medio de estas cabeceras extendidas, IPv6 consigue hacer de una forma más eficiente lo que IPv4
pretendía implementar con el campo opciones que seguía a la cabecera IPv4. Éste es un campo no demasiado
estandarizado (de hecho tiene longitud variable) que se usa en IPv4 para cosas como grabar en él una ruta,
hacer encaminamiento de fuente, etc.
IPv6 por contra utiliza múltiples cabeceras para éstas funciones, y tiene la ventaja que ya están definidas tanto
su orden como su función, Además estas cabeceras utilizan para facilitar la tarea del nodo el campo de
próxima cabecera. La cabecera IPv6 y cada cabecera extendida tiene un campo (próxima cabecera) en el que
se indica el tipo de la cabecera que sigue a continuación. Si la próxima cabecera es una cabecera extendida,
entonces este campo contiene el identificador de tipo de esa cabecera; en otro caso (cuando ya no hay más
cabeceras), este campo contiene el identificador de protocolo del protocolo de nivel superior que esté usando
IPv6 (que generalmente será un protocolo de nivel de transporte), usando los mismos valores que el campo de
protocolo de IPv4.
Podemos apreciar esto en el siguiente ejemplo, en el que el protocolo de nivel superior que está utilizando IP
es TCP. Por tanto, la PDU del nivel superior consiste en una cabecera TCP seguida de un bloque de datos de
aplicación:
7
Figura 2. Paquete IPv6 con todas las cabeceras extendidas.
A continuación estudiaremos cada una de las cabeceras por separado, exceptuando las cabeceras extendidas
Encapsulation security payload header y Authentication header, que veremos en el apartado de seguridad.
3.1.1. Cabecera IPv6.
Tiene longitud fija: 40 octetos, mientras que la cabecera de IPv4 tenía solo 20 octetos. Sin embargo el número
de campos en IPv6 es menor (ocho contra doce), por lo que los routers tienen que procesar menos datos por
cabecera, con lo que en teoría se aumenta la velocidad de encaminamiento. Estos son los campos que
podemos encontrar en una cabecera de IPv6, como se aprecia en la figura 3:
8
Figura 3. Cabecera IPv6
• Versión (Version) (4 bits): Número de la versión de IP; el valor es 6.
• Prioridad (Priority) (4 bits): Valor de prioridad. Abordaremos este tema más adelante.
• Etiqueta de flujo (Flow label) (24 bits): Puede utilizarse por un host para etiquetar aquellos paquetes
que requieren un especial manejo dentro de la red por parte de los routers, como veremos más
adelante.
• Longitud de carga útil (Payload length) (16 bits): Longitud del resto del paquete IPv6 exceptuando la
cabecera, en octetos. Es decir, es la longitud total de las cabeceras extendidas más la PDU del nivel de
transporte (a esta porción del paquete es lo que llamaremos carga útil).
• Próxima cabecera (Next header) (8 bits): Como ya hemos mencionado, identifica el tipo de la
cabecera inmediatamente siguiente a la cabecera principal.
• Límite de Saltos (Hop limit) (8 bits): El número restante de saltos permitidos para este paquete. El
número máximo de saltos es elegido por la fuente, y ésta pone este campo a ese valor máximo. Este
número se decrementa en uno por cada nodo que atraviesa el paquete. El paquete se descarta si el
límite de saltos llega a cero. Esta es una simplificación de la idea del campo TTL (time−to−live,
tiempo de vida) de IPv4. La idea original de este campo era llevar la cuenta del tiempo que esta el
paquete en la red, pero el esfuerzo extra que implicaba llevar la cuenta de intervalos de tiempo en
IPv4 no añadían una ventaja significativa al protocolo. De hecho los routers IPv4, como norma
general, tratan el campo TTL como un campo de límite de saltos. Por ello IPv6 ya parte de esta idea:
identificar el tiempo de vida de un paquete con el número de saltos que da dentro de la red, sin dejar
espacio a complicadas contabilizaciones de intervalos temporales.
• Dirección Origen (Source address) (128 bits): La dirección del origen del paquete. Nótese que las
direcciones son de 128 bits, no de 32 bits como eran en IPv4. Más adelante veremos esto con mayor
profundidad, en el capítulo de direccionamiento.
• Dirección Destino (Destination address) (128 bits): La dirección del destino deseado del paquete.
Esta dirección puede no ser de hecho la del destino último del paquete, si una cabecera de
encaminamiento está presente, como veremos más adelante.
3.1.1.1. Campo de prioridad
Este campo consta de 4 bits que permiten a la fuente identificar la prioridad de un paquete a transmitir
respecto a otros paquetes de la misma fuente. De hecho, este campo permite identificar dos prioridades
distintas en cada paquete. En primer lugar, los paquetes se clasifican como parte de un tráfico para el cual la
fuente esta ofreciendo control de congestión o no; en segundo lugar a cada paquete se le asigna uno de los
ocho niveles de prioridad relativa dentro de cada clasificación anterior (con 4 bits tenemos de 0 a 15 etiquetas
de prioridad. Las 8 primeras se referirán al primer tipo de tráfico, y las otras al segundo).
9
a) Tráfico con Control de Congestión: (Congestion−Controlled−Traffic) − se refiere al tráfico para el cual
la fuente reacciona a la congestión; un ejemplo es TCP. Veamos lo que esto significa. Si existe congestión en
la red, los segmentos TCP tardarán un tiempo mayor que el habitual en llegar a su destino. Como
consecuencia de esto los asentimientos de éste también se retrasarán. Según aumenta la congestión, se hace
necesario descartar los paquetes en algún punto de su camino: el descarte puede hacerse por un router cuyo
buffer se haya desbordado o puede hacerse en una red individual, cuando un nodo de conmutación dentro de
la red se congestiona. Ya sea un segmento de datos o bien un asentimiento, el efecto es que la unidad TCP de
la fuente no recibe el asentimiento de su segmento transmitido. Entonces TCP responde retransmitiendo el
segmento y disminuyendo el flujo de segmentos que genera (para aliviar la congestión).
La naturaleza del tráfico con control de congestión es tal que se acepta una cantidad variable de retardo en el
recorrido de los paquetes, e incluso que esos paquetes lleguen fuera de orden. IPv6 define las siguientes
categorías de tráfico con control de congestión, en prioridad decreciente (de 7 a 0):
• Tráfico de control de Internet (Internet control traffic): Es el tráfico más importante a distribuir,
especialmente en momentos de alta congestión. Por ejemplo protocolos de encaminamiento como
OSPF (Open Shortest Path First) y BGP necesitan recibir actualizaciones referentes a las condiciones
de tráfico para que puedan ajustar sus rutas para intentar evitar la congestión. Los protocolos de
gestión como SNMP (Simple Network Management Protocol) necesitan ser capaces de informar de la
congestión a las aplicaciones de gestión de la red, realizar una reconfiguración dinámica, alterando los
parámetros necesarios para hacer frente a esa congestión.
• Tráfico Interactivo (Interactive traffic): Después del tráfico de control de Internet, es el tráfico más
importante, como las conexiones en línea usuario−a−host. La eficiencia para el usuario depende
críticamente de la velocidad de respuesta de sus sesiones interactivas, por lo que el retardo debe
minimizarse.
• Transferencia de muchos datos atendidos (Attended bulk transfer): Son aplicaciones que pueden
involucrar la transferencia de gran cantidad de datos; durante éstas, el usuario como norma general
está esperando a que se complete la transferencia. Esta categoría se diferencia del tráfico interactivo
en que el usuario es consciente de que se producirá un considerable retardo en llegada de los datos
que solicitó durante un diálogo interactivo. Un buen ejemplo de esto es la transferencia de ficheros
(FTP, File Transfer Protocol). Otro ejemplo puede ser el conocido protocolo de transferencia de
hipertexto (HTTP, Hypertext Transfer Protocol), que soporta la interacción servidor−Navegador
Web.
• Transferencia de datos desatendididos (Unattended data transfer): Son aplicaciones que el usuario
inicia pero que no se espera que se atiendan inmediatamente. Como norma general, el usuario no
espera a que se complete la transferencia, sino que realiza otras tareas. El mejor ejemplo de este tipo
de tráfico es el correo electrónico.
• Tráfico de relleno (Filler traffic): Es tráfico que de tratará en segundo plano, cuand ya se hayan
entregado otras formas de tráfico. Como ejemplo podemos citar los mensajes USENET.
• Tráfico no caracterizado (Uncharacterized traffic): Si la aplicación del nivel superior no le entrega a
IPv6 información sobre la prioridad de un tráfico, entonces este es asignado a este valor de prioridad
mínimo.
Así por ejemplo, el estándar de IPv6 da el 1 para las noticias, 4 para FTP y 6 para conexiones Telnet, porque
el retardo en estos casos es de algunos segundos y apenas es perceptible, aunque no el retardo de Telnet si lo
es.
b) Tráfico sin control de congestión (Non−Congestion−Controlled Traffic) − Es tráfico para el cual se desea
una tasa de transmisión de datos constante, así como un retardo también constante, o al menos con una
variación relativamente pequeña en ambos. Los ejemplos más claros de este tipo de tráfico son las
reproducciones de video y/o audio en tiempo real, para los cuales no tiene sentido retransmitir los paquetes
descartados. Es más, es importante que se mantenga un flujo de entrega cercano a lo constante. Para este tipo
10
de tráfico se permiten también ocho niveles de prioridad, que van desde el nivel con prioridad más baja, 8 (en
el que más se permite descartar) al de prioridad mayor (menos descartes). En general, el criterio que se sigue
es determinar cuanto afectan los paquetes perdidos a la calidad del tráfico recibido. Por ejemplo al sonido de
baja fidelidad, (como la voz de una conversación telefónica) se le asignará una alta prioridad, debido a que la
pérdida de unos pocos paquetes es apreciable en la línea en forma de clicks y zumbidos. En el otro lado está
una señal de video de alta fidelidad, que contiene una considerable cantidad de redundancia, y probablemente
no se aprecie tanto la pérdida de algunos paquetes; por ello a este tráfico se le asigna una prioridad
relativamente baja.
Es necesario hacer notar que no existe una relación entre las prioridades del tráfico con control de congestión
y las del tráfico sin control de congestión. Las prioridades son relativas sólo dentro de cada categoría.
3.1.1.2. Campo de etiqueta de flujo
El estándar IPv6 define un flujo (flow) como una secuencia de paquetes enviados desde un particular origen a
un particular destino (ya sea unicast o multicast), secuencia para la cual la fuente desea un tratamiento
especial por parte de los router que intervienen en la comunicación entre origen y destino. Un flujo está
unívocamente determinado por la combinación de la dirección de fuente y una etiqueta de flujo de 24 bits
distinta de cero. De este modo, todos los paquetes que formen parte del mismo flujo tienen asignada la misma
etiqueta de flujo por parte de la fuente.
Desde el punto de vista de la fuente, un flujo será típicamente una secuencia de paquetes generados desde una
aplicación de la fuente y que requieren los mismos servicios de transferencia. Un flujo puede constar de una
conexión TCP única o incluso múltiples conexiones TCP; un ejemplo de este uso de múltiples conexiones
TCP es una aplicación de transferencia de ficheros, que debería tener una conexión de control y múltiples
conexiones de datos. Una sola aplicación puede generar un flujo único o múltiples flujos. Nuevamente un
ejemplo del uso de múltiples flujos es una conferencia multimedia, la cual debería tener un flujo para el
sonido y otro para las ventanas gráficas, cada uno de los cuales tiene distintos requisitos de transmisión en
cuanto a la tasa a la que van los datos, el retardo, la variación del retardo, etc.
Desde el punto de vista del router, un flujo es una secuencia de paquetes que comparten ciertos atributos, que
afectan al modo en el que el router manejará esos paquetes. Estos atributos incluyen el camino, reparto de
recursos, requisitos de descarte (cuando debe descartar esos paquetes y cómo), cuenta, y atributos de
seguridad. El router puede tratar los paquetes que pertenecen a diferentes flujos de formas muy dispares, entre
lo que se incluye almacenarlos en buffers de diferentes tamaños, darles diferente prioridad a la hora de
reencaminarlos por la red o solicitando para ellos diferentes calidades de servicio de las subredes.
La etiqueta de flujo no tiene un significado especial; en vez de ello la forma especial de manejar los paquetes
de ese flujo debe declararse de otra forma. Por ejemplo, una fuente podría negociar o solicitar de los routers
un trato especial en cuanto al tiempo, por medio de un protocolo de control, o a la vez que se transmite por
medio de cierta información en una de las cabeceras extendidas del paquete, como por ejemplo la cabecera de
opciones salto a salto. Ejemplos de tratos especiales requeridos para ciertos flujos pueden incluir la petición
de alguna clase de calidad de servicio distinta de la predefinida y de alguna forma de servicio en tiempo real.
En un principio, todos los requisitos de un usuario hacia un flujo particular podrían definirse en una cabecera
extendida e incluirse en cada paquete. Si se desea dejar el concepto de flujo abierto a la posibilidad de incluir
un extensa variedad de requisitos, este diseño desembocaría en cabeceras muy grandes en los paquetes. La
alternativa adoptada por IPv6 consiste en la etiqueta de flujo, en la cual los requisitos para un flujo se definen
de forma previa al comienzo del flujo, y se asigna una única etiqueta de flujo al mismo. En este caso, el router
debe guardar la información acerca de los requisitos negociados para cada flujo.
Las siguientes reglas se aplican a la etiqueta de flujo:
11
• Los hosts o routers que no soporten o reconozcan el campo de etiqueta de flujo deben poner ese
campo a cero cuando originan un paquete, saltarse ese campo sin cambiarlo cuando lo que hacen es
reencaminar por la red un paquete e ignorar ese campo cuando reciben un paquete.
• Todos los paquetes que se originan en la misma fuente con la misma etiqueta de flujo (y que ésta sea
distinta de cero, obviamente) deben tener la misma dirección de destino, dirección de fuente,
prioridad, los mismos contenidos de la cabecera de opciones salto a salto (si esta cabecera está
presente) y los mismos contenidos de la cabecera de encaminamiento (si está presente). La intención
es que el router pueda decidir como encaminar y procesar el paquete simplemente examinando la
etiqueta de flujo en una tabla, sin examinar el resto de la cabecera.
• La fuente asigna una etiqueta de flujo a un flujo. Pueden elegirse nuevas etiquetas de flujo de forma
(pseudo−) aleatoria y uniforme en el rango 1 a 224 -p; 1, sujeto a la restricción que nos dice que una
fuente no puede reutilizar una etiqueta de flujo para otro flujo nuevo mientras siga existiendo el flujo
actual.
Este último punto requiere una explicación algo más profunda. El router debe mantener la información acerca
de todos los flujos activos que pueden pasar por él, presumiblemente en alguna clase de tabla. Para que los
paquetes puedan reenviarse por la red de una manera eficiente y rápida, el acceso a la información de esa tabla
debe ser eficiente. Una alternativa es tener una tabla con 224 (sobre 16 millones) de entradas, una para cada
etiqueta de flujo; esto implica una carga de memoria innecesaria en el router. Otra alternativa es tener una
entrada en la tabla por cada flujo activo, incluir la etiqueta de flujo que le corresponde a cada entrada,
obligando de este modo al router a buscar por la tabla entera cada vez que llega un paquete. La consecuencia
es que se produce un excesivo procesado en el router. En lugar de esto, la mayoría de los routers se diseñan
para utilizar una tabla de tamaño moderado en la que cada entrada se obtiene aplicando un función sobre la
etiqueta de flujo. Esta función puede ser simplemente la identidad sobre los bits menos significativos de la
etiqueta (unos diez o doce), es decir, coger los bits menos significativos, o bien puede ser algún tipo de
cálculo sobre los 24 bits de la etiqueta. A partir del resultado de aplicar esa función sobre cada etiqueta de
flujo obtenemos la entrada a la tabla donde se guarda la información de ese flujo. En cualquier caso la
eficiencia de este sistema como norma general depende de que las etiquetas de flujo se distribuyan
uniformemente sobre su rango; de ahí el tercer requisito indicado anteriormente.
3.1.1.3. Direcciones
(Ver apartado de direccionamiento en IPv6).
12
3.1.2. Cabeceras extendidas
Figura 4. Cabeceras extendidas
3.1.2.1. Cabecera de Opciones Salto a Salto
Lleva información adicional que, si está presente, debe ser examinada por cada router a lo largo del camino
que recorre el paquete. Esta cabecera consiste en (ver figura 4−a):
• Próxima cabecera (Next Header): Identifica el tipo de la cabecera inmediatamente siguiente a ésta.
• Longitud de la Cabecera Extendida (Header extension length): Longitud de esta cabecera en unidades
de 64 bits, sin incluir los primeros 64 bits.
• Opciones (Options): Un campo de longitud variable que consta de una o más definiciones de
opciones. Cada definición está formada por tres subcampos:
• tipo de opción (type opcion) (8 bits): identifica la opción.
• Longitud (length) (8 bits), que especifica la longitud del campo de datos de opción en octetos.
• Datos de opción (option data), que consiste en la especificación de la opción (longitud variable).
En realidad son los cinco bits menos significativos del campo tipo de opción los que se usan para especificar
una opción particular. Los dos bits más significativo indican la acción que debe llevar a cabo un nodo que no
reconoce el tipo de opción, como sigue:
00 -p; Sortear esta opción y continuar procesando la cabecera.
01 -p; Descartar el paquete.
10 -p; Descartar el paquete y mandar un ICMP (Internet Control Message Protocol) de Parameter Problem
(problema con los parámetros), Código 2, esto es un mensaje a la dirección origen del paquete señalando el
tipo de opción no reconocido.
11 -p; Descartar el paquete y, solamente si la dirección destino del paquete no es una dirección multicast (esto
es, a varias máquinas, ver direccionamiento), mandar un ICMP Parameter Problem, Código 2, (mensaje a la
dirección origen del paquete, señalando el tipo de opción no reconocido).
13
El tercer bit más significativo indica si el campo de datos de opción puede cambiar (1) o no (0) en el camino
recorrido entre el origen y el destino. Los datos que pueden cambiar deben excluirse del análisis de
autenticación que se verá posteriormente.
Estas convenciones para el campo de opción de tipo también pueden aplicarse a la cabecera de opciones de
destino.
En el estándar IPv6 sólo una opción está completamente especificada: la opción de los llamados jumbogramas
(jumbo payload option). Esta opción es utilizada para enviar paquetes IPv6 con cargas útiles mayores que 216
(65536) octetos. El campo datos de opción de esta opción es de 32 bits, e indica la longitud del paquete en
octetos (excluyendo la cabecera principal). En estos paquetes el campo de longitud de carga útil de la cabecera
IPv6 (la principal) debe ponerse a cero, y no tiene que haber cabecera de fragmentación. Los jumbogramas
tienen una longitud de hasta 4GB, que permiten transferencias más eficientes con pocas interrupciones en la
comunicación. Con ello se facilita la transmisión de grandes paquetes de vídeo y permite que IPv6 pueda
hacer el mejor uso posible de la capacidad de cualquier medio de transmisión (como puede ser por ejemplo
fibra óptica, un medio óptico, medios que por norma general tienen gran capacidad, y en los que interesa que
el tamaño del paquete sea mucho mayor para aprovechar mejor las características de los mismos, como se
indicó anteriormente).
3.1.2.2. Cabecera de fragmentación
A diferencia de IPv4, en IPv6 la fragmentación sólo puede hacerse en los nodos origen, y no a lo largo de los
nodos de la red. Esto tiene la ventaja evidente de que al no fraccionarse los paquetes en la red éstos no se
pierden y se evita que un nodo tenga que almacenar muchos fragmentos, y todos los demás problemas
derivados de la fragmentación en la red.
Obviamente para realizar la fragmentación desde el nodo fuente, éste deberá implementar un algoritmo
descubridor de caminos (algoritmo de encaminamiento) que le permita conocer cual es la unidad de
transmisión máxima (MTU) más pequeña de todas las subredes a lo largo de ese camino entre el nodo origen
y el nodo destino. Es decir, el algoritmo le permite saber cual es la MTU del cuello de botella del camino
(aquel punto donde la MTU es la más pequeña y se van a dar los problemas de fragmentación). Una vez que el
nodo fuente sabe esto fragmentará sus paquetes IPv6 como se requiera (con el tamaño de la MTU hallada)
para cada destino. Otra posibilidad es que el nodo origen limite todos los paquetes a 576 octetos, que es la
mínima MTU que debe soportar cada subred.
La composición de la cabecera de fragmentación puede apreciarse en la figura 4−b, y consta de :
• Próxima cabecera (Next Header) (8 bits): Identifica el tipo de la cabecera inmediatamente siguiente.
• Reservado (Reserved) (8 bits): Para uso futuro.
• Contador de fragmento (Fragment Offset) (13 bits): Indica la posición a la que pertenece la carga útil
de este fragmento dentro del paquete original. Se mide en unidades de 64 bits. Esto implica que los
fragmentos (exceptuando el último) deben contener un campo de datos cuya longitud sea múltiplo de
64 bits
• Res (2 bits): Reservado para uso futuro.
• M Flag (1 bit): 1 = más fragmentos; 0 = último fragmento.
• Identificación (Identification) (32 bits): Tara de identificar unívocamente al paquete original. Todos
los fragmentos que pertenezcan a un mismo paquete deben tener igual el campo de identificación. El
identificador debe ser único para un paquete todo el tiempo que ese paquete permanezca en la
interred.
El algoritmo de fragmentación es el mismo que el que se utiliza en IPv4. Lo veremos de forma más extensa en
el apartado de fragmentación.
14
3.1.2.3. Cabecera de Encaminamiento
Esta cabecera contiene una lista de uno o más nodos intermedios por los que tiene que pasar el paquete en su
camino hacia el nodo destino. Todas las cabeceras de enrutamiento comienzan por un bloque de 32 bits
formado por cuatro campos de 8 bits, seguido de los datos específicos de encaminamiento dentro de un tipo de
encaminamiento dado, como se aprecia en la figura 4−c. Los campos de 8 bits son los siguientes:
• Próxima cabecera (Next header): Como ya hemos comentado varias veces, identifica el tipo de
cabecera que sigue.
• Longitud de la cabecera extendida (Header extension length): Longitud de esta cabecera en unidades
de 64 bits, sin incluir los primeros 64.
• Tipo de encaminamiento (Routing type): Identifica una cabecera de encaminamiento particular dentro
de las posibles variantes. Si un router no reconoce el valor del tipo de encaminamiento debe descartar
el paquete.
• Segmentos restantes (Segments left): Número de nodos indicados explícitamente del camino que
quedan por visitarse antes de alcanzar el destino final.
Además de esta definición de la cabecera de encaminamiento más general, el RFC 1883 define la cabecera de
encaminamiento Tipo 0 (ver figura 4−d). Esta cabecera incluye además de los cuatro campos de ocho bits, un
mapa de bits formado por24 bits riguroso/relajado. Esta forma de llamar a los bits quiere decir lo siguiente:
los 24 bits del campo se numeran de izquierda a derecha (desde el 0 al 23), donde cada bit corresponde a un
salto. Según esto, cada bit indica si el correspondiente próximo destino debe ser un vecino de la dirección
precedente (1= estricto, debe ser un vecino; 0 = relajado, no necesariamente debe ser un vecino).
Cuando se usa una cabecera de encaminamiento de tipo 0, el nodo fuente no coloca la dirección del destino
final del paquete en el campo dirección destino de la cabecera IPv6. En lugar de ello esa dirección es la última
dirección listada en la cabecera de encaminamiento (address [n] en la figura 4−d), y el campo correspondiente
de la cabecera principal IPv6 contiene la dirección destino del primer router por el que se desea que pase el
camino. La cabecera de encaminamiento no se examinará hasta que el paquete alcance el router señalado en la
cabecera IPv6. Si esta dirección es la dirección definitiva (porque no hay cabecera de encaminamiento o
porque se ha llegado a la dirección última de la misma) el router se queda con el paquete. En cambio si no es
la dirección definitiva el paquete IPv6 y la cabecera de encaminamiento son actualizados y el paquete es
reeenviado. La actualización consiste en colocar la dirección del próximo nodo a visitar en la cabecera IPv6 y
decrementar a su vez el campo de segmentos restantes de la cabecera de encaminamiento.
Los nodos IPv6 también tienen que quedarse con las rutas que sigue un paquete para devolver el paquete al
destino.
Teniendo en cuenta todo esto, veamos un ejemplo que aparece en R. Hinden, "IP Next Generation Overview,"
Connexions, Mar. 1995, en el cual tenemos dos hosts (H1 y H2) conectados por dos proveedores (P1 y P2)
que a su vez están conectados por medio de una red de tipo wireless (sin cable). A esta red sin cable la
llamaremos PR. En lo que sigue, las secuencias de direcciones se referirán con el siguiente formato:
SRC, I1, I2, ..., In, DST
donde SRC es la dirección listada en la cabecera IPv6, Ii es la i−ésima dirección intermedia y DST es la
dirección última. Recordemos que si no hay cabecera de encaminamiento, DST aparece en la cabecera IPv6,
mientras que si sí existe aparece en la última dirección de la misma. Nos hallamos en la situación en la que H1
manda paquetes a H2:
• No se usa cabecera de encaminamiento. H1 manda un paquete a H2 conteniendo la secuencia (H1,
H2). H2 responde con un paquete que contiene (H2, H1). En este caso, cualquier proveedor puede
15
utilizarse en cada trasferencia.
• H1 quiere que se cumpla una política según la cual todo el tráfico entre él y H2 sólo puede usar P1.
Para ello construye un paquete con la secuencia (H1, P1, H2) y dicta un encaminamiento estricto
(poniendo a 1 el bit correspondiente, como ya vimos). Esto asegura que cuando H2 responda a H1
utilizará la secuencia (H2, P1, H1) con encaminamiento estricto, debido a la política forzada por H1
de usar P1.
• H1 se convierte en móvil y cambia al proveedor PR. Podría mantener su comunicación con H2 (sin
romper ninguna conexión TCP) por medio de mandar paquetes con la secuencia (H1, PR, P1, H2).
Esto aseguraría que H2 cumpliera la política de usar P1 respondiendo con (H2, P1, PR, H1).
Este ejemplo ilustra las posibilidades que tiene IPv6 de seleccionar un proveedor particular, de mantener las
conexiones mientras se está moviendo y de encaminar paquetes a nuevas direcciones dinámicamente. Con ello
se aumentan las ventajas de IPv6 sobre IPv4, que no soportaba todas estas posibilidades, al menos
directamente sobre el paquete IP.
3.1.2.4. Cabecera de Opciones de Destino.
La cabecera de opciones de destino lleva información opcional que, en el caso de existir, sólo es examinada
por el nodo de destino del paquete. El formato de esta cabecera es el mismo que el de la cabecera de opciones
salto a salto (figura 4−a).
3.2. Fragmentación
El problema surge cuando se desea enviar un paquete que es demasiado grande para ser manejado por alguna
de las redes que se encuentran entre el origen y el destino de una comunicación. En estos casos nos veremos
obligados a dividir el paquete en paquetes más pequeños, esto es, fragmentar el paquete original. Así cada uno
de los fragmentos podrá ser manejado sin problemas por las redes intermedias.
Los principales problemas asociados a la fragmentación son los siguientes:
• Sobrecarga
Al necesitarse más cabeceras para los fragmentos, aumenta el número de datos que se transmitirán, lo cual
supone una carga extra y tiempo que no utilizamos para transmitir datos útiles.
• Pérdida de fragmentos
Si se pierde uno de los paquetes fragmentados puede ser necesaria la retransmisión de todos los fragmentos.
Es por ello que, en la medida de lo posible, debe evitarse la fragmentación.
3.2.1. Fragmentación en IPv6
Una de las diferencias entre IPv4 y IPv6 es que en este último tan sólo la máquina origen puede fragmentar un
paquete. Los routers que se encuentren a lo largo del camino no lo harán. Es una buena solución de cara a
liberar al router de la carga de trabajo requerida por el proceso de fragmentación para que pueda atender un
mayor número de datagramas por unidad de tiempo. Con esta medida se intentan solventar los problemas de
los routers convencionales, en los que el uso de CPU puede alcanzar el 100% si fragmenta muchos de los
datagramas que recibe.
Desde este nuevo punto de vista de IPv6, el proceso de fragmentación y reensamblado se lleva a cabo extremo
a extremo, sin intervención de nodos intermedios.
16
IPv6 requiere que todos los nodos y routers tengan un MTU (unidad máxima de transferencia) de 576 bytes o
superior. Esto hace que sea menos probable la fragmentación. De esta forma, antes de enviar un datagrama, el
origen lo divide para que cada fragmento sea menor que el MTU. Se recomienda que los nodos IPv6
implementen el denominado Path MTU Discovery ([RFC 1191]) para poder aprovechar las ventajas de las
rutas con un MTU superior a 576 bytes.
Cuando llega a un router un paquete IPv6 demasiado grande, se descarta y se devuelve un mensaje ICMP
(protocolo de control de mensajes de Internet) del tipo Datagram Too Big al origen con información del
máximo MTU que se puede utilizar. Con esta información, el host de origen sabrá que en futuros intentos
deberá dividir el paquete en fragmentos más pequeños.
3.2.1.1. Cabecera de fragmentación (Fragment Header)
Si no queda otro remedio que utilizar la fragmentación, se debe utilizar una cabecera de extensión
denominada cabecera de fragmentación de manera que podamos dividir el paquete en el origen y
reensamblarlo correctamente en el destino.
Esta cabecera maneja la fragmentación de una manera similar a la del IPv4. La cabecera contiene el
identificador del datagrama, el número de fragmento y un bit que indica si seguirán más fragmentos, de forma
que, como se ha comentado anteriormente, es el destino final el encargado del proceso de reensamblado.
La cabecera de fragmentación se identifica con el valor 44 en el campo de siguiente cabecera (Next Header)
de la cabecera anterior, y tiene el siguiente formato:
Los campos de mayor interés son:
• Offset indica el desplazamiento del fragmento respecto al origen del datagrama original. Con este
dato se podrá conocer en que posición hay que colocarlo a la hora de reensamblar.
• El byte M indica si habrá más fragmentos o si, por el contrario, se trata del último fragmento de un
datagrama.
• Para cada paquete fragmentado, el nodo origen genera un valor de identificación que ha de ser
diferente que el de otros paquetes fragmentados enviados anteriormente (al menos en un tiempo igual
al máximo tiempo de vida de un paquete) entre el origen y el destino.
Obsérvese que si fragmentamos un paquete, el tamaño del campo de datos se reduce a 528 bytes si nos
ponemos en el mejor de los casos (576 del MTU menos 40 de la cabecera IPv6 y 8 de la cabecera de
fragmentación).
¿Cómo se forman los fragmentos? El paquete original sin fragmentar consta de una parte fragmentable
(cabeceras de extensión que sólo se procesan en el nodo final, cabecera del nivel superior y datos) y la parte
no fragmentable (cabeceras de extensión que se procesan en los nodos intermedios). Los fragmentos se
forman dividiendo la parte fragmentable en partes de longitud múltiplo de 8 bytes (excepto la última, que
puede tener cualquier longitud) de forma que cada paquete fragmentado se componga de:
• La parte no fragmentable del paquete original
• Una cabecera de fragmentación
• El fragmento
3.2.2. Reensamblado
17
Se entiende por reensamblado la reconstrucción del paquete original a partir de sus fragmentos. Si todo
funciona según lo esperado, en el destino los fragmentos son reensamblados correctamente obteniendo el
paquete original. Para reensamblar los fragmentos se combinan los que tengan el mismo valor en los campos
identificador, dirección origen, dirección destino y protocolo.
Sin embargo a continuación se citan algunas situaciones en las que se pueden producir errores y el paquete no
se reensamblará correctamente en el destino:
Cuando pasan sesenta segundos tras la recepción del primer fragmento y no se han recibido suficientes
fragmentos para completar el reensamblado, la operación se abandona y los fragmentos recibidos hasta ese
momento se descartan. Si se ha recibido el primer fragmento, se envía un mensaje ICMP de tipo Time
Exceeded al origen.
Ya que la longitud de todos los fragmentos excepto el último ha de ser múltiplo de 8 bytes, si se recibe un
fragmento que no cumple ese requisito y no es el último fragmento (el byte M toma el valor 1), es descartado
y se envía un mensaje ICMP del tipo Parameter Problem al origen.
Al obtenerse un fragmento cuya longitud y offset son tales que la longitud del paquete reensamblado supera
los 65535 bytes (corresponden con la máxima carga útil de IP), se descarta el fragmento y se envía un mensaje
ICMP de tipo Parameter Problem al origen.
3.3 Direcciones y encaminamiento en IPv6
3.3.1. Direcciones en IP Versión 6
3.3.1.1. Problemática y evolución hacia IPv6
Con el protocolo IPv4, cada máquina presente en la red dispone de una dirección IP de 32 bits. Ello supone
más de cuatro mil millones de máquinas diferentes. Esa cifra, no obstante, es muy engañosa. El número
asignado a un ordenador no es arbitrario, sino que depende de una estructura más o menos jerárquica (en
especial, pertenece a una red), lo cual ocasiona que se desperdicie una enorme cantidad de direcciones. En
1.993 fue claro que con el ritmo de crecimiento sostenido de Internet hasta aquel momento exponencial), el
agotamiento del espacio de direcciones era casi inminente, si se seguían utilizando las direcciones con formato
IPv4.
Con IPv6, el número de direcciones diferentes se ha multiplicado de una manera exagerada. Teóricamente, es
posible tener 2128 direcciones diferentes. Este numero quiere decir que se podrían llegar a tener 665.5703
793.3482 866.9431 898.599 direcciones por metro cuadrado en toda la Tierra, aunque si siguieran una
jerarquía, este numero decrece hasta 1564 direcciones por metro cuadrado en el peor caso o tres trillones
siendo optimistas.
El cambio más significativo en las direcciones respecto a IPv4 ha sido que, ahora, se refieren a un interfaz y
no a un nodo, aunque como cada interfaz pertenece a un nodo, es posible referirse a estos mediante su
interfaz.
El tipo específico de direcciones IPv6 es indicado por los primeros bits de la dirección. El campo de longitud
variable que incluye estos primeros bits es llamado Format Prefix (FP). Esto soporta la asignación directa de
proveedores de direcciones, direcciones de uso local y direcciones multicast. El espacio está reservado para
direcciones NSAP, direcciones IPX, y direcciones de interconexión neutral. El resto del espacio de
direcciones está sin asignar para utilizaciones futuras. Estas pueden ser utilizadas para la expansión del uso
existente (por ejemplo, proveedor adicional de direcciones, etc.) o nuevos usos (por ejemplo., localizadores
separados e identificadores).
18
El espacio de direcciones está dividido en NSAP, IPX, unicast basado en proveedor (provider), geográfico,
direcciones de ámbito local y direcciones multicast. Esto es sólo el 15% de todo el espacio de direcciones. El
resto está reservado para usos futuros.
3.3.1.2. Direccionamiento en IPv6
Las direcciones IPv6 son asignadas a interfaces, no a nodos. Cuando un nodo tiene más de un interfaz, el nodo
puede direccionarse mediante la dirección de cualquiera de sus interfaces. Además, un interfaz puede tener
asignada una o más direcciones, con dos excepciones :
• Un conjunto de interfaces puede tener asignada una sola dirección IPv6, esta agrupación elimina la
posibilidad de que cada uno de los interfaces que comparten una dirección pueda tener asignada
cualquier otra.
• Los routers pueden tener interfaces sin dirección asignada en enlaces PPP (Point to Point Protocol,
Protocolo Punto a Punto). Los interfaces de enlaces PPP no necesitan dirección IP si no son origen o
destino de datagramas IPv6.
3.3.1.3. Representación de direcciones
Existen 3 formas para representar direcciones IPv6 mediante cadenas de texto:
• La forma más indicada es mediante la estructura x:x:x:x:x:x:x:x, donde los valores x son los valores
en hexadecimal de cada bloque de 16 bits de la dirección.
Ejemplos:
FEDC:BA09:6543:1234:FDCE:7564:BA98:7651
1080:0:0:0:8:800:200C:417A
• El segundo método permite agrupar largas series de 0's, para hacer más legibles las direcciones, el uso
de "::" indica múltiples grupos de 16 bits a 0.
Ejemplos:
1080:0:0:0:8:800:200C:417A podría representarse como 1080::8:800:200C:417A
FF01:0:0:0:0:0:0:43 podría representarse como FF01::43
Sólo puede usarse "::" una vez en una dirección.
• El tercer método resulta el más indicado para representar direcciones IPv6 que contengan direcciones
IPv4, los 2 últimos bloques de 16 bits se representan como 4 bloques de 8 bits mostrando sus valores
en decimal, como en IPv4.
Ejemplos:
0:0:0:0:0:0:13.1.68.3 ó ::13.1.68.3
0:0:0:0:0:FFFF:129.144.52.38 ó ::FFFF:129.144.52.38
19
Los diferentes tipos de direcciones son especificados por los bits de mayor peso de la dirección. Cada tipo
tiene asignado un prefijo, de longitud variable para cada tipo. Esto se asigna por medio de la máscara IP.
3.3.1.4. Tipos de direcciones
En el IPv6 existen tres tipos básicos de direcciones:
• Direcciones unicast: Están dirigidas a un único interfaz en la red. Actualmente se dividen en varios
grupos, y existe un grupo especial que facilita la compatibilidad con las direcciones de la versión 4.
• Direcciones anycast: Identifican a un conjunto o grupo de interfaces de red. El paquete se enviara a
cualquier interfaz que forme parte del conjunto. En realidad son direcciones unicast que se encuentran
asignadas a varios interfaces. Un paquete IPv6 con una dirección destino anycast es encaminado a uno
y sólo uno de los interfaces identificados por la dirección. El paquete será encaminado al interfaz más
cercano, de acuerdo con las técnicas de medida de distancia de las estrategias de enrutamiento.
• Direcciones multicast: Identifican a un conjunto de interfaces de la red, de manera que cada paquete
es enviado a todos y cada uno de ellos individualmente.
No existen direcciones broadcast en IPv6 (ver Direcciones especiales), su función es realizada por las
direcciones multicast.
3.3.1.5. Direcciones Unicast
Existen múltiples formatos de dirección unicast. Un nodo en Internet puede tener mayor o menor
conocimiento de la estructura de las direcciones, dependiendo del papel que juegue en Internet. Como
mínimo, un nodo considerará una dirección IPv6 como un identificador sin estructura interna.
Usando el valor de la máscara IP, pueden indicarse prefijos de red de longitud variable:
Prefijo de red Identificador de interfaz
n bits (128−n) bits
Los nodos pueden tener un conocimiento más profundo de la jerarquía de direcciones, dependiendo del papel
que desempeñen en la jerarquía de enrutamiento.
Ejemplos de direcciones unicast :
− Direcciones MAC (IEEE 802) para redes locales.
Prefijo de grupo Identificador de Identificador de
subred interfaz
n bits (80−n) bits 48 bits
Siendo `Identificador de interfaz' la dirección MAC del interfaz. Para redes locales que no usen direcciones
MAC, se pueden utilizar otros tipos de direcciones del nivel de enlace.
− Para sistemas que requieran por su tamaño más niveles de jerarquía, la dirección puede dividirse en
múltiples niveles, por ejemplo :
20
Identificador Identificador Identificador Identificador
de grupo de área de subred de interfaz
g bits a bits s bits (128−g−a−s) bits
− Para direcciones basadas en proveedor, tenemos la siguiente estructura :
010 Id. registro Id. proveedor Id. suscriptor Id.
Intra−Suscriptor
3 bits n bits m bits s bits (125−n−m−s) bits
Esta estructura refleja la jerarquía: un registro asigna las direcciones de un grupo de proveedores de servicios
(p.e. backbones o redes regionales), que asignan direcciones a sus suscriptores (p.e. Sites o campus
universitarios), etc.
3.3.1.5.1. Direcciones especiales unicast
• Dirección 0:0:0:0:0:0:0:0 : Esta dirección no puede ser asignada a ningún nodo. De hecho, indica la
ausencia de dirección. Puede usarse, por ejemplo, como dirección origen al inicializar nodos, antes de
que éstos conozcan su propia dirección IP. En ningún caso podrá aparecer como dirección destino.
• Dirección 0:0:0:0:0:0:0:1 : Dirección del bucle local. Puede ser usada por un nodo para enviarse un
datagrama a él mismo. En ningún caso podrá aparecer como dirección origen. Un datagrama enviado
a la dirección de bucle local no saldrá al medio. Puede ser usada, por ejemplo, para comunicación
entre los procesos de un nodo.
3.3.1.5.2. Direcciones unicast IPv6 conteniendo direcciones IPv4
Existen dos formas de codificar direcciones IPv4 en direcciones IPv6.
La primera se usa en nodos que puedan gestionar ambos protocolos, tanto IPv6 como IPv4. Las direcciones se
codificaran de la siguiente forma:
Todo a 0's Todo a 0's Dirección IPv4
80 bits 16 bits 32 bits
La segunda forma se usa para representar las direcciones de nodos que sólo soporten IPv4, antes de la
conversión de IPv6 a IPv4, el datagrama llevará una dirección con la siguiente estructura:
Todo a 0's Todo a 1's Dirección IPv4
80 bits 16 bits 32 bits
3.3.1.5.3. Uso local de direcciones unicast IPv6
Existen dos tipo de direcciones IPv6 de uso local. Estos tipos son el enlace local (Link−Local) y el grupo local
(Site−Local).
21
La estructura de dirección enlace local es la siguiente:
1111111010 Todo a 0's Identificador interfaz
10 bits n bits (118−n) bits
Las direcciones de enlace local son usadas para direccionar un sólo enlace, para diferentes propósitos, como
autoconfiguración de direcciones, descubrimiento de vecinos, o cuando no existe un router.
La estructura de dirección grupo local es la siguiente:
1111111011 Todo a 0's Identificador Identificador
de subred de interfaz
10 bits n bits m bits (118−n−m) bits
Las direcciones Site−Local se usan en grupos de redes que no disponen de una conexión a Internet, no
necesitando un prefijo de dirección para su direccionamiento en Internet. En el momento en que el grupo se
conecte a Internet, el prefijo de Site−Local será sustituido por un prefijo que identifique al grupo en la
estructura global de Internet.
3.3.1.6. Direcciones anycast
Una dirección IPv6 unicast es una dirección asignada a un grupo de interfaces, con la particularidad de que un
paquete con una dirección unicast es llevado a sólo un interfaz, que será el mas cercano según las técnicas de
medida de distancia en las estrategias de enrutamiento.
Las direcciones anycast usan los mismos formatos definidos para direcciones unicast, con la diferencia de que
el campo identificador de interfaz estará todo a 0's.
Prefijo de subred Todo a 0's
n bits (128−n) bits
Una dirección anycast no podrá nunca aparecer como dirección origen en un paquete IPv6, ni podrá ser
asignada a ningún host. Las direcciones anycast sólo podrán ser asignadas a un router.
3.3.1.7. Direcciones multicast
Una dirección IPv6 multicast identifica a un conjunto de nodos. Un nodo puede pertenecer a cualquier número
de conjuntos multicast. Las direcciones multicast tienen la siguiente estructura :
11111111 Flags Ámbito Identificador de grupo
8 bits 4 bits 4 bits 112 bits
• Flags:
Este campo ocupa 4 bits, los tres bits de mayor peso. Deben ser inicializados a 0. El cuarto bit indica si la
dirección es fija o no.
22
4º bit a 0 La dirección es fija.
4º bit a 1 La dirección NO es fija (transición).
• Ámbito.
Este campo ocupa 4 bits, e indica el ámbito del grupo multicast. Los valores son:
0 Reservado 8 Organización local
1 Nodo local. 9 Sin asignar
2 Enlace local. A Sin asignar
3 Sin asignar B Sin asignar
4 Sin asignar C Sin asignar
5 Site local D Sin asignar
6 Sin asignar E Global
7 Sin asignar F Reservado
• Identificador de grupo.
Este campo ocupa 112 bits, e identifica al grupo en el ámbito indicado, sea fijo o de transición. Las
direcciones fijas tienen un significado independiente del ámbito que se indique.
3.3.1.8. Autoconfiguración de direcciones
Los datos de las redes son cada vez más complejos, y la necesidad de eliminar algunas dificultades convierte
al "Plug and Play" (servicio inmediato) en algo cada vez más imprescindible. El usuario no tiene que conocer
en detalle la arquitectura de la red, ni saber configurar el software de red de su estación de trabajo. En el caso
ideal, cualquier usuario debería ser capaz de desembalar su nuevo ordenador, conectarlo a la red local y verlo
funcionar sin la necesidad para él de introducir informaciones de "especialista". Ciertas preocupaciones de
seguridad pueden limitar este nivel de transparencia de autoconfiguración de direcciones en algunos entornos,
pero los mecanismos deben existir para soportar cualquier automatización en el que el entorno local estaría de
acuerdo.
La primera exigencia de la operación "Plug and Play" es que una estación pueda ser capaz de adquirir una
dirección de manera dinámica, ya sea cuando está conectada la primera vez a una red, o cuando la estación
necesite ser reconfigurada por traslado o por que la identidad de la red ha sido modificada. Existen también
otras funciones que necesitan un entorno de "plug and play". La mayoría de ellas se deben hacer fuera del
protocolo IPv6, pero el protocolo de autoconfiguración de direcciones de una estación será ejecutado por
IPv6.
Una estación IPv6 puede autoconfigurar dos tipos de direciones :
− Direcciones de intra−enlace (intra−link scope address).
− Direcciones de inter−enlace (inter−link scope address).
23
Una dirección de intra−enlace es autoconfigurable en ausencia de encaminador, mientras que una dirección de
inter−enlace es autoconfigurable cuando un
encaminador está presente en el enlace.
Procedimientos de formación de las direcciones:
• Direcciones Intra−enlace:
Sólo existe una manera para formar una dirección de intra−enlace. Al inicializar la interfaz, una estación crea
su dirección de intra−enlace concatenando un prefijo de intra−enlace a una ficha ("token") que es única para
el enlace. Típicamente, la definición de una ficha es independiente de la capa de enlace. Por ejemplo, en el
caso de una estación conectada a una red IEEE 802, la ficha es la dirección IEEE 802 del interfaz.
• Direcciones Inter−enlace:
Existe dos maneras para crear una dirección de inter−enlace. En el primer mecanismo, una estación obtiene su
dirección de inter−enlace concatenando un prefijo de red indicado por un "Router Advertisement" a una ficha
única por enlace. El otro mecanismo disponible para las estaciones es utilizar el protocolo de configuración
dinámica de las estaciones para IPv6 (Dynamic Máquina Configuration Protocol − DHCP). La elección del
protocolo a utilizar es propuesta por el encaminador, y la elección es configurable por el administrador del
sistema.
El primer proceso de formación de la dirección de inter−enlace conviene para entornos donde ninguna gestión
administrativa es deseable. Este protocolo está concebido especialmente para permitir una configuración
sencilla de las direcciones. DHCPv6 es un protocolo más complejo que permite una asignación flexible de
direcciones bajo el control del administrador del sistema. Este protocolo necesita sobre todo un gestor de
sistemas (servidor y bases de datos) importante.
3.3.2. Encaminamiento
3.3.2.1.Planteamiento del problema y evolución
Internet representa el ejemplo paradigmático de las redes de datagramas o no orientadas a la conexión. En ella
cada fragmento (paquete) de información es transmitido por la red de manera no fiable y sin mantener vínculo
alguno, ni siquiera de orden, con el resto de los paquetes de la unidad de información intercambiada. Para que
esto pueda ser así, cada paquete contiene en su interior (más explícitamente en su comienzo o cabecera) la
identificación de su origen junto con la de su destinatario. Esta faceta del protocolo IP presenta la ventaja de
facilitar la interconexión de subredes de diferente tecnología y es sin duda una de las claves del éxito de la
Internet como red de redes en contraposición con otras tecnologías orientadas a la conexión como X.25 o
ATM, basadas en el concepto de circuitos virtuales o canales fiables que asigna la red para la comunicación
entre extremos de manera ordenada e íntegra.
El protocolo IP gobierna la estructura y la transmisión de los datagramas a través de los nodos de la red, sean
éstos sistemas finales (ordenadores, con un punto de conexión a red) o intermedios (routers, con más de un
punto de conexión). El recurso quizá más valioso de entre los que posee la red Internet es su espacio de
direcciones o el conjunto de todos los identificadores que pueden ser asignados a los puntos de conexión a red
y que está estrechamente ligado al concepto administrativo de encaminamiento.
El encaminamiento en la Internet se lleva a cabo bajo la suposición que todos los equipos que tienen
identificadores con una misma parte de red son miembros de una misma unidad topológica sujeta a una
estructura administrativa única, lo que permite inferir que el encaminamiento interno es homogéneo y
24
completo. El resultado de todo esto es que todos los equipos de la red son vistos desde el exterior como un
único elemento de cara al encaminamiento, lo cual reduce en gran manera la cantidad de información que
deben mantener, almacenar y procesar los equipos encaminadores o routers. La parte de red de una dirección
se denomina prefijo, y se utiliza para representar diferentes estructuras topológicas mediante la sintaxis
`direccion IP (32−bits) − tamaño del prefijo'. Esto indica qué parte de la dirección es significativa en
términos de encaminamiento. Se implementa mediante máscaras de red. Es importante resaltar la diferencia
entre los procedimientos de encaminamiento internos a un dominio o intra−dominio, de los que ése dominio
tiene respecto a los demás con los que tiene conexión directa o indirecta (inter−dominio). Existe una jerarquía
de encaminamiento que se refleja en la mayor o menor generalidad de los prefijos empleados para anunciar el
dominio.
IPv4 comenzó a dar síntomas de saturación en los routers de los backbones. Aumentó de forma explosiva el
número de prefijos que los routers habían de mantener en sus tablas, llegándose a alcanzar los límites físicos
impuestos por la capacidad de memoria y de proceso.
Esto llevó a una modificación de los protocolos exteriores de encaminamiento para soportar prefijos de red
variables. Este método se conoce como CIDR (Classless Inter−Domain Routing) y consiste en la agregación
de prefijos que son adyacentes para dar lugar a prefijos menores (y por tanto más generales), con lo que se
reducía el número de entradas en las tablas de los routers.
Se realizó también el experimento de dividir una red en multitud de pequeñas subredes. Los resultados fueron
alentadores, por lo que dicha técnica podría utilizarse para ampliar de nuevo el tiempo de vida de IPv4.
Para entender bien el problema hay que tener en cuenta que el periodo de tiempo en el que los fabricantes
duplican la capacidad de proceso de sus equipos y la de sus memorias es de aproximadamente dos años. La
capacidad de los routers que deben mantener en sus tablas una información completa o full−routing sobre la
topología de la Internet (equipos conectados a los backbones principales o de dominios conectados a múltiples
proveedores − multi−homed −) se habría hoy día superado, con el colapso consiguiente de la Internet, si CIDR
no hubiese sido puesto en funcionamiento a primeros de 1994. Hay que tener en cuenta que hay más de
60.000 redes conectadas mientras que los equipos que soportan full−routing manejan del orden de los 30.000
prefijos, estando el límite de tecnología actual en torno a los 40.000 prefijos.
En cualquier caso, hay que entender que tanto CIDR como las políticas restrictivas de asignación de
direcciones son sólo medidas temporales, dirigidas a afrontar problemas concretos y que no resuelven (en
algunos casos hasta agravan) los problemas crónicos detectados en la Internet en gran parte debidos a su
tremendo éxito. Así, se han llegado a plantear iniciativas como la devolución de direcciones, la obligatoriedad
de cambiar de direcciones al cambiar de proveedor (en un mundo en el que los operadores telefónicos están
considerando introducir mecanismos para que esto no ocurra con el número de teléfono cuando se cambie de
compañía), la asignación dinámica de direcciones, el uso de traductores de direcciones (NAT) que
transformen un espacio privado de direcciones en otro perteneciente al proveedor, o incluso el cobrar una
cantidad elevada por cada prefijo (no perteneciente al espacio del proveedor) que un cliente desee que su
proveedor anuncie.
El encaminamiento propuesto permitirá la selección de proveedor por parte del origen así como la movilidad
mediante el empleo de cabeceras de extensión de
encaminamiento en la que se especifique un camino elegido (que será recorrido a la inversa al regreso)
mediante direcciones unicast o anycast.
La transmisión de información en tiempo real se podrá realizar mediante el empleo de dos campos en la
cabecera IPv6. La prioridad, que distingue los diferentes tipos de datagramas según la clase de servicio y la
etiqueta de flujo, que permite diferenciar y asignar distintos estados a distintos flujos originados por la misma
25
fuente.
La transición hacia IPv6 ha de hacerse de forma gradual, sin afectar a los servicios que se prestan en la
actualidad. En IPv6 el método propuesto se basa primordialmente en la coexistencia de ambos protocolos. Los
nuevos sistemas que vayan incorporando IPv6 (ordenadores y routers) deberán mantener asimismo la plena
capacidad de procesar paquetes IPv4. Para conectar las islas IPv6 que irán emergiendo mediante la
infraestructura Internet actual se emplearán técnicas de encapsulado (túneles IPv6) en los datagramas IPv4 de
forma similar a como funciona en la actualidad el Mbone. A medida que los routers vayan incorporando IPv6,
los túneles se irán desmantelando para dar paso a una infraestructura ya basada en IPv6.
3.3.2.2. Política de enrutado
Tradicionalmente los datagramas se han encaminado atendiendo a criterios técnicos tales como el minimizar
el número de saltos a efectuar, el tiempo de permanencia en la red, etc. Cuando la red pertenece a una única
organización eso es lo ideal, pero en el nuevo entorno económico en el que diferentes proveedores compiten
por el mercado las cosas no son tan simples. Es imprescindible que la fuente pueda definir por qué redes desea
que pasen sus datagramas, atendiendo a criterios de fiabilidad, coste, retardo, privacidad, etc.
En Internet, cada nodo tiene una tabla de encaminamiento que contiene información sobre otros nodos de la
red, de forma que los nodos pueden comunicar unos con otros referenciándose en la tabla. El encaminamiento
en IPv6 trata las direcciones de una red como un conjunto de identificadores, y cada red requiere una entrada
en la tabla de encaminamiento.
El problema reside, pues, en que la Internet crece. El encaminamiento se hace menos manejable con respecto
a la eficiencia y requerimientos de memoria a medida que aumenta el número de direcciones IP. Para el
objetivo de mantener la actual inversión en protocolos y aplicaciones de Internet, el encaminamiento de IPv6
es casi idéntico al de IPv4. Todo esto necesitará una transición muy controlada para que IPv6 sea operativo
con los algoritmos similares a los que se usan en IPv4 (RIP, OSPF, IDRP, BGP,etc), en versiones para IPv6.
Las diferencias fundamentales residen en la longitud de las direcciones: 128 bit, en lugar de 32, lo que permite
más niveles de jerarquía para reducir el tamaño de la tabla de encaminamiento y, como consecuencia, más
eficiencia con menos memoria. También extensiones de encaminamiento que soportan nuevas funcionalidades
de encaminamiento. Esto permite varias características nuevas:
• Selección de proveedores: Una opción que permite a la máquina origen listar los nodos intermedios
necesarios para alcanzar el destino. Esta opción viene en la base de la seguridad, prestaciones y coste.
• Máquinas móviles: También llamadas plug−and−play. Esta función permitiría conectar una máquina a la
red y poder alcanzar y ser alcanzada sin necesidad de configuraciones manuales. Las direcciones IP serían
automáticamente asignadas y las tablas adecuadas debidamente actualizadas.
• Redirección automática: El destino puede responder a la dirección origen invirtiendo la secuencia de
direcciones, eliminando asi el proceso de encaminamiento.
3.3.2.3. Tipos de Máquinas y Encaminadores
Para entender el modelo de transición, es necesario conocer las diversas clases de máquinas y encaminadores.
En el modelo existen cuatro tipos:
• Nodos solamente IPv4 (IPv4−only−nodes)
Estos son máquinas y encaminadores que solamente reconocen IPv4.
• Nodos IPv6/IPv4 (IPv6/IPv4−nodes)
26
Los encaminadores y máquinas de esta categoría tienen tanto IPv4 como la pila de protocolos de IPv6.
Además tienen mecanismos como tunelado IPv6−sobre−IPv4. (IPv6−over−IPv4 tunneling) Estos nodos
pueden interoperar directamente tanto con nodos IPv4 como IPv6, pero para una comunicación con nodos
solamente IPv4 tienen que ser configurados con unas direcciones IPv6 compatibles con IPv4.
• Nodos solamente IPv6 (IPv6−only−nodes)
Son máquinas y encaminadores que solamente conocen IPv6.
• Encaminador traductor de cabeceras IPv6/IPv4 (IPv6/IPv4−header−translating−router)
Estos encaminadores traducen paquetes de IPv6 a paquetes de IPv4 y viceversa.
3.3.2.4. Renumeración de routers
Un cambio en proveedores significa un cambio en direcciones. Se evitan cambios manuales por ser
indeseados y generar errores. Para ello existen mecanismos de expiración de direcciones en IPv6. Se usa un
Prefix Control Operation (PCO) para cambiar el prefijo en distintas maneras. Los mensajes ICMP de cambio
de numeración de router es enviado a todos los routers dependientes.
3.3.2.5. Mejoras
La gestión de Multicasting y Anycasting (IGMP) ha pasado a formar parte del nuevo ICMP. Para acelerar el
cálculo del encaminamiento y atender las necesidades de las aplicaciones en tiempo real, cada datagrama
puede contener un "identificador de flujo". Esos identificadores son, en cierta medida, equivalentes al
concepto de circuitos virtuales, pero se trata de unos circuitos virtuales "suaves" que pueden ser desde
ignorados hasta completamente vinculantes, según el diseño del sistema. Ello da un juego enorme. Éste es uno
de los conceptos más novedoso e importante de IPv6.
3.4. Seguridad
Hasta hace pocos años, el uso de Internet estaba limitado a círculos técnicos, científicos y académicos. La
gran mayoría de las personas no tenían acceso a la red o ni tan siquiera habían oído hablar de Internet.
En nuestros días Internet tiene influencia sobre todos los sectores de la sociedad, permitiendo desde el envío
de correo electrónico hasta transacciones bancarias, pasando por todo tipo de compras, ventas, etc. servicios
impensables hace un par de décadas.
Es por ello que surge la necesidad de implementar mecanismos para transmitir datos de forma segura entre
máquinas. De esta manera evitaremos que cualquier persona pueda acceder, modificar, etc. la información
confidencial que viaja por la red como pueden ser claves, ficheros personales, números de tarjetas de crédito...
3.4.1. Servicios de Seguridad
Existen tres servicios básicos que un sistema de seguridad debe cubrir:
• Confidencialidad
Sólo el destinatario de una determinada información debe poder entenderla.
• Integridad
27
Un mensaje no puede ser alterado durante la transmisión entre dos máquinas.
• Disponibilidad
El usuario ha de poder utilizar los servicios que ofrece la red en cualquier momento, sin que estos puedan ser
degradados por un usuario ilegítimo.
Otras características deseables de un sistema de seguridad son ([RFC 1825]):
• Antirepudio
Una vez que un usuario realiza una acción, no puede negar el haberla realizado.
• Protección contra el análisis del tráfico
No debe ser posible monitorizar el flujo de información en una comunicación entre dos entidades.
Existen serias controversias acerca de dónde se deben situar los mecanismos de seguridad. Si estos se sitúan
en la capa de red, se convierten en un servicio estándar que todas las aplicaciones podrían utilizar. El
problema estriba en que una aplicación que pretenda ser segura no confiará en una implementación
posiblemente defectuosa de la capa de red y deberá implementar la seguridad a nivel de aplicación, es decir, la
aplicación destino descifrará lo que ha cifrado el origen.
3.4.2. Seguridad en IPv4
Hay dos opciones de seguridad en IPv4 que no han sido muy utilizadas y que muchos routers ignoran a la
hora de encaminar los paquetes. Estas opciones están basadas en dividir a los nodos, datagramas y enlaces en
cuatro diferentes categorías de seguridad. Un datagrama marcado con cierta categoría no debe ser enviado a
través de un router o un enlace que tenga una categoría de seguridad inferior.
Este método presenta una ventaja ya que puede ser utilizado en lugares donde el uso de algoritmos de
encriptado está regulado. Dos son las principales desventajas de este sistema de seguridad. En primer lugar,
debemos confiar ciegamente en que los routers intermedios procesen y encaminen los paquetes
correctamente. En segundo lugar, no proporciona los servicios básicos de seguridad descritos en el apartado
anterior.
3.4.3. Opciones de seguridad en IPv6
La necesidad de disponer de servicios de seguridad por debajo de la capa de aplicación hace de IPv4 un
sistema con ciertas carencias. El propósito de IPv6 es subsanar las mismas mediante dos opciones que
proporcionan servicios de seguridad de forma que puedan ser utilizadas conjuntamente con otras dependientes
de las necesidades de cada usuario en particular.
3.4.3.1. Cabecera de Verificación de Autenticidad (Authentication Header)
La cabecera de verificación de autenticidad ([RFC 1826]) es una cabecera de extensión que proporciona
autenticidad e integridad pero no confidencialidad a los campos de los datagramas IP que no cambian durante
el camino entre dos sistemas finales.
En una sesión de transferencia de datos segura, tanto el cliente como el servidor necesitan tener una clave que
sólo ellos conocen (el tema de los protocolos de intercambio de claves es un problema que no concierne a
IPv6). Cada comunicación tiene asignado un valor pseudo−aleatorio único denominado SPI (Security
28
Parameter Index) de 32 bits. Antes de enviar un paquete se crea una suma de comprobación basada en la
clave y combinada con el contenido del paquete. El valor de los campos que cambian durante la transferencia,
como el Límite de Saltos, se toman con valor cero a efectos del cálculo de la suma de comprobación.
MD5 se ha propuesto como algoritmo por defecto para el cálculo de sumas de comprobación, lo cual no
quiere decir que los usuarios no puedan definir sus propios algoritmos o utilizar otros como SHA o RSA, cada
cual con sus ventajas y desventajas.
El valor de la suma de comprobación se recalcula en el receptor y se compara para asegurar que todo ha ido
bien. Esta solución asegura que un paquete proviene del host indicado en el campo de la dirección origen y
garantiza que los datos en el paquete no hayan sido modificados durante el trayecto por un tercero.
Con esta medida evitamos, por ejemplo, que un usuario malicioso pueda configurar una máquina para que
genere paquetes con una dirección origen falsa, obteniendo ilícitamente acceso a una máquina, sus ficheros de
datos, passwords, etc.
Naturalmente, el proporcionar autenticidad a los datos incrementa el tiempo de proceso, pero proporciona un
nivel de seguridad muy elevado según [RFC1825]. Por lo tanto habrá que buscar un compromiso entre
seguridad y velocidad de procesado.
La siguiente figura muestra el formato de una cabecera de verificación de autenticidad:
Tres son los campos que merece la pena comentar:
• El campo de datos de autenticidad (Authentication Data) contiene el valor de la suma de
comprobación
• El campo de número de secuencia (Sequence Number) es un contador que se inicializa a cero cuando
se establece el SPI.
• El campo SPI
3.4.3.2. Cabecera de extensión de carga útil cifrada de seguridad (Encapsulating Security Payload Header)
Esta opción proporciona, a través del encriptado, la confidencialidad que no ofrecía la cabecera de
verificación de autenticidad para mensajes cuyo contenido no debe ser visible para cualquiera. Esta
confidencialidad se ve limitada si no combinamos el encriptado con la autenticidad de los datos.
El encriptado se basa en la cabecera de extensión de carga útil cifrada de seguridad (ESP). El algoritmo
DES−CBC (DES en modo de encadenamiento de bloque cifrado) se ha propuesto como estándar ([RFC
29
1829]) para el encriptado, aunque, al igual que ocurría con el algoritmo MD5 para el caso de la cabecera de
verificación de autenticidad, no es obligatorio. Este mecanismo, no obstante, probablemente no sea tan
exportable como la cabecera de verificación de autenticidad ya que hay países en los que existen leyes
estrictas en lo que se refiere al cifrado de datos.
En la siguiente figura podemos ver la estructura de una cabecera de este tipo:
El significado de los campos SPI y el número de secuencia (Sequence Number) es el mismo en el caso de la
cabecera de verificación de autenticidad.
El mensaje encriptado se incluye en el campo Payload Data. El uso de relleno (padding) esta justificado ya
que algunos algoritmos de encriptado como DES requieren que el texto original sea múltiplo de un cierto
número. Por ejemplo, el algoritmo DES opera con bloques de 64 bits ([RFC 1829]). El tamaño de la cabecera
ESP ha de ser múltiplo de 32 bits lo que significa que también en este caso puede ser necesario el relleno para
conseguirlo. Una tercera razón que justifica el relleno es que de esa forma se oculta el tamaño real del
mensaje.
Por defecto, el relleno se hace con enteros de la forma 1, 2, 3, y así sucesivamente. Si se usa este tipo de
relleno, el receptor lo comprueba. Se eligió este relleno por su sencillez y facilidad de implementación en
hardware, aunque proporciona un nivel de protección algo menor.
El campo de datos de autenticidad (Authentication Data) contiene la suma de comprobación de los datos. Es
opcional y se incluye sólo en el caso de que se haya elegido el servicio de autenticidad. Su longitud es
variable y depende del algoritmo que se haya elegido para su cálculo.
Tanto la cabecera de autenticidad como la ESP se pueden utilizar de dos formas diferentes:
• Modo tunel (tunnel mode)
En este caso el datagrama completo es autentificado/encriptado, añadiendole una nueva cabecera IP.
• Modo transporte (transport mode)
30
De esta manera, tan solo los datos son autentificados/encriptados, no así la cabecera.
Para facilitar la detección de falsos paquetes, la comprobación de autenticidad se lleva a cabo antes que el
desencriptado. Parece lógico ya que no nos interesan los paquetes cuyos datos puedan haber sido falsificados.
Es una buena característica el que la autenticidad esté separada del encriptado ya que de esta forma se puede
comprobar la autenticidad de los datos en países donde existen estrictas leyes que regulan el encriptado de
modo que está prohibido, limitado, o es demasiado caro utilizarlo (por ejemplo en Francia, Irak o los mismos
Estados Unidos).
Conforme evolucionan las computadoras, los algoritmos de encriptado que parecen irrompibles se vuelven
rompibles. Surge la preocupación de saber si los algoritmos por defecto son suficientemente seguros. Los
avances en criptografía han mostrado las debilidades de MD5, mientras que el algoritmo DES ya no es lo
suficientemente seguro como lo era cuando se creó en 1977. Este problema se soluciona dotando al usuario de
capacidad de remplazar estos algoritmos por otros que él elija.
4. Planes de introducción de IPv6
Vamos a comentar ciertos aspectos y características que se presentan a la hora de implementar el IPv6 sobre
diferentes tipos de redes.
En este tipo de redes hay que atender a diferentes aspectos:
La MTU (unidad máxima de transferencia), algo así como la longitud máxima para los paquetes en cada uno
de las diferentes redes. El tamaño de la MTU para paquetes de IPv6 es generalmente al igual que Ethernet (la
red de área local más extendida en la actualidad) de 1500 octetos o bytes. El tamaño puede ser reducido por
un router anunciante DISC el cual contiene una opción en el MTU, que especifica una MTU más pequeña si
fuera necesario, o puede tener esa información manuales que poseen cada nodo.
Si un router anunciante percibe en Ethernet que tiene una opción especificando una MTU de más de 1500
octetos, esa opción del MTU puede ser llevada a un sistema manejador para ser tratada, pero puede también
ser anulada o simplemente ignorada dicha opción.
Actualmente se están investigando diferentes caminos para soportar envíos en multimedia con una calidad
adecuada, dentro de redes tales como Internet. El objetivo es desarrollar recursos de interconexión de redes
desde conectores y routers a sistemas que pueden cumplir funciones en nombre flujos de corriente de sistemas
finales.
La evolución de varios procesamientos en multimedia desde sistemas finales a redes tienen un número de
ventajas implementadas con el IPv6.
IP sobre ATM
Este proyecto es investigando los problemas de funcionamiento del IPv6 a gran escala, servicios de redes de
ATM, incluyendo en el IP previsiones de QoS calidad y servicio.
La comitiva de Lancaser está en ello desde 1992, utilizando el IPv6 han desarrollado dicha tecnología por toda
Gran Bretaña.
Mobile IPv6
El proyecto RASCAL está investigando que características pueden ser usadas para construir móviles
31
adaptados a sistemas capaces de manejar Internet desde dichos portátiles, sea cual sea su situación y el medio
en el que se encuentre ofreciendo una calidad de servicio óptima.
Implementaciones de IP en diferentes compañías:
• Apple Computer y Mentat Inc.
En Octubre de 1995 Networld+interOp sacó a la luz un prototipo de implementación del IPv6 sobre Apple
Open Transport. La demostración dejaba patente una flexibilidad del entorno de Open transport, con actuales
aplicaciones de IPv4, tales como Fetch (buscador), Nestcape, y Web*Star llevado a cabo sobre soporte de
IPv6, y enseñó los beneficios basados en la arquitectura conseguida, con una codificación más fácil. La
demostración también incluyó pruebas básicas de interoperacionalidad, con implementaciones del prototipo
de IPv6 pertenecientes a DEC y HP usando Ping y Telnet. Apple y Mentat continuarán trabajando juntos para
asegurar una oportuna disponibilidad de IPv6 para MacOS una vez que el estándar haya sido completado.
• BSDI
Está trabajando en una implementación en IPv6. Está participando en el proyecto 6bone, que incluirá IPv6 en
sus primeros servicios de Internet, todo esto se llevó a cabo alrededor de 1998.
• COMPAQ COMPUTER CORPORATION
Ha implementado versiones de IPv6 en Alpha Tru64 UNIX Alpha OpenVMS.
La implementación Tru64 UNIX soporta estaciones específicas para IPv6 y también puede cumplir como un
router. Sus implementaciones se han desarrollado principalmente en 6bone y proporcionan Tru64 UNIX a los
usuarios con kits binarios.
• BULL SA
Es soporte de sus máquinas AIX432 y ahora AIX 433. Contienen implementaciones de estación /router para
IPv6, basadas en fuentes de DYADE(GIE INRIA−Bull) y también contiene IPSEC con IKEv6.
4.1. 6BONE
El 6bone es una extensión independiente del proyecto IPng del IETF (Internet Engineering Task Force) que
surgió como resultado de la creación de los protocolos IPv6 que en un futuro, esperemos que muy cercano,
sustituirá al actual protocolo de red de Internet IPv4. El 6bone es un proyecto en el que colaboran Norte
América, Europa y Japón.
Una parte esencial para la transición entre IPv4 y IPv6 es el desarrollo de una cierta infraestructura que
permita transportar paquetes de IPv6 sobre Internet. Al igual que ocurre con la red backbone de IPv4, el
backbone de IPv6 estará compuesto por una serie de proveedores de servicios de Internet (ISP) y las redes de
usuarios, todo ello debidamente interconectado. Pero hasta que todos los protocolos de IPv6 estén lo
suficientemente comprobados y depurados, IPv6 no podrá sustituir a IPv4. Por este motivo, se necesita alguna
manera de transportar paquetes de IPv6 de una forma organizada para comprobar su funcionamiento, para lo
que se creó 6bone.
6bone es una red virtual implementada sobre la actual red basada en IPv4 que permite el encaminamiento de
paquetes IPv6. Esta red está compuesta por islas que están adaptadas para soportar paquetes de IPv6, las
cuales están interconectadas por enlaces punto a punto virtuales, denominados túneles. En la siguiente figura
se representa este esquema. En RedIRIS hay instalados dos routers y un sistema final, mientras que en la
32
Universidad de Murcia sólo hay un sistema final. Esta red tiene como vecina a la holandesa SURFNET y, a
partir de ahí, se encuentra con el resto de 6bone.
El problema que surge a la hora de hacer la transición entre IPv4 e IPv6 es cómo transformar Internet sin
interrumpir la existencia de la red operativa. Esta transición debe hacerse de una forma gradual y debe
permitir la coexistencia durante un buen periodo de tiempo de ambas tecnologías y se ha planificado hacer en
dos fases. Al término de la primera habrá tanto host y routers de IPv6 y al término de la segunda sólo debe
haber host y routers de IPv6. Para realizar esta transición, se utilizan cuatro tipos de encaminadores y
máquinas:
1. Nodos solamente IPv4 (IPv4−only−nodes)
Estos son máquinas y encaminadores que solamente reconocen IPv4.
2. Nodos IPv6/IPv4 (IPv6/IPv4−nodes)
Los encaminadores y máquinas de esta categoría tienen tanto IPv4 como la pila de protocolos de IPv6.
Además tienen mecanismos como tunelado IPv6−sobre−IPv4. (IPv6−over−IPv4 tunneling), por lo que estos
nodos pueden interoperar directamente tanto con nodos IPv4 como IPv6, pero para una comunicación con
nodos solamente IPv4 tienen que ser configurados con unas direcciones IPv6 compatibles con IPv4.
3. Nodos solamente IPv6 (IPv6−only−nodes)
Estos son máquinas y routers que solamente conocen IPv6.
4. Router traductor de cabeceras IPv6/IPv4 (IPv6/IPv4−header−translating−router)
Estos routers traducen paquetes de IPv6 a paquetes de IPv4 y viceversa.
Por otra parte, se utilizan túneles que consisten en introducir los paquetes de comunicaciones IPv6 en
paquetes de datos de la red actual, y de este modo se hace uso de la red sin afectarla en absoluto. Uno de los
requisitos para el tunelado es que el comienzo y los extremos del túnel sean nodos IPv6/IPv4 con direcciones
compatibles con IPv4. La idea del tunelado es que los paquetes IPv6 son introducidos en el campo de datos de
un paquete IPv4 y enviados a través de áreas de red de IPv4, con la característica de que el extremo es un
nodo IPv6/IPv4 que se encarga de desencapsular el paquete. Hay dos tipos de tunelado:
a) Tunelado Automático (Automatic Tunneling)
El tunelado automático es utilizado entre dos máquinas IPv6/IPv4. Es "end−to−end". Puede también utilizarse
si un router va a enviar un paquete IPv6 a una máquina IPv6/IPv4 que esté conectado a la misma área de red
de IPv4. Es importante que el extremo del túnel sea la máquina de destino.
b) Tunelado Configurado (Configured Tunneling)
El tunelado configurado se utiliza si la máquina de destino es diferente a la del extremo del túnel. En este
caso, la dirección de destino para la cabecera de IPv4 (p.e: la dirección del endpoint del túnel) no podría ser
simplemente mapeada de la dirección de destino IPv6. El endpoint del túnel tiene que ser configurado en el
nodo IPv6/IPv4.
Con el paso del tiempo, se espera que 6bone desaparezca por acuerdo de todas las partes, para ser sustituido
por ISP y redes de usuario que permitan el transporte de datagramas de IPv6.
33
6bone está enfocado para adquirir una experiencia temprana en esta arquitectura de comunicaciones,
obteniendo conocimientos en todos los aspectos de ella: routing, DNS, uso de aplicaciones De hecho, el deseo
prioritario es incluir el mayor número de ISP y redes en 6bone para facilitar la transición a IPv6 y, además,
colaborar en el desarrollo de los programas y protocolos.
Actualmente, el 6bone está formado por más de 500 sites repartidos en 42 países diferentes, y todos ellos
están registrados en una base de datos (6bone Registry). En España hay 8 sites (CESCA, ENCOMIX,
REDIRIS, REDIRIS−HQ, TELDAT, Univ. Murcia, Univ. Valencia, Univ. Valladolid). Cada site 6bone debe
mantener las entradas relevantes en el registro, concretamente los siguientes campos deben aparecer para
todos los sites, pNLA y pTLA:
• IPv6−site : Descripción del site
• Inet6num : Prefijo de su delegación.
• Mntner : Información de contacto para el mantenimiento del site o personal de administración.
Se pueden incluir otras entradas a voluntad de los sites, tales como descripción de la política de
encaminamiento, personas, tareas, etc. El Mntner tiene que hacer referencia a una tarea o una persona, pero no
es necesario que estén en el registro. Se pueden almacenar como cualquier campo del registro de Internet
ARIN, APNIC, ).
Para ver la estructura de esta red virtual, es interesante ver cómo suscribirse a esta red, ya que, al mismo
tiempo se hace un repaso de todos los componentes necesarios para estar conectado y las características que
estos deben tener.
El primer paso consiste en unirse a la lista 6bone. Este paso es muy sencillo, ya que sólo hay que enviar un
mensaje a [email protected], diciendo que deseas suscribirte. El equipo mínimo que se necesita es un
dispositivo que actúe como router y otro que haga el papel de host. Aunque en teoría es posible que la misma
máquina cumpla estas dos funciones, se recomienda que sean distintas para ayudar a obtener conclusiones en
un entorno local.
Sobre los routers que se deben usar no existe ninguna recomendación específica, tan sólo se dice que sea un
dispositivo dedicado exclusivamente a esta tarea, ya sea una estación de trabajo o un router real. En la
actualidad se está trabajando sobre estos temas y diversas compañías están desarrollando routers para IPv6 y
diversas implementaciones para utilizar las estaciones como routers. También es necesario que el router
soporte RIPng o BGP4+ (Border Gateway Protocol)
No olvidemos que lo que se pretende es transmitir paquetes de una interfaz a otra, donde hay (en un lado) una
estación que soporta IPv6 y una conexión a una subred que permite acceder a Internet usando un tunel al
6bone para transportar los paquetes de IPv6. Todas estas tareas se pueden realizar con sólo un interfaz, pero
no se hace así porque resulta mucho más costoso y complicado depurar y controlar y puede resultar un
problema bastante serio cuando el tráfico se multiplica en uno de los interfaces.
En lo que se refiere a las estaciones de trabajo, por ahora la mayoría de ellas son variantes de UNIX, pero
también hay implementaciones en Windows 95/98 y Windows NT/2000.
Llegados a este punto, conocemos las características de los routers y de las estaciones de trabajo, pero para
formar parte de 6bone hay que elegir un site al que conectarse, ya sea un pTLA (pseudo TLA 6bone backbone
transit) o pNLA (pseudo NLA non−backbone transit). Con esto lo que se consigue es configurar un tunel
basado en IPv4 desde el router IPv6 al punto de entrada al 6bone que se encargará de transportar los paquetes.
En principio se puede elegir cualquier punto de acceso al 6bone para que sea este el que soporte la conexión,
pero se han considerado unas ciertas reglas prácticas para establecer este camino sobre IPv4, ya que esta ruta
34
no está bajo nuestro control. Por ejemplo, si elegimos nuestro pTLA en Nueva Zelanda, nuestros paquetes de
IPv6 seguirán cualquier ruta basada en IPv4 que exista desde aquí hasta Nueva Zelanda y desde allí ya
seguirán una ruta hasta su destino final. Esto no parece muy lógico, y más si tenemos en cuenta que tenemos
otros puntos de acceso más cercanos (físicamente), por lo que la ruta que seguirán (que no es controlada por
nosotros) será más pequeña.
Por tanto, se debería buscar un punto de acceso al 6bone que esté lo suficientemente cerca teniendo en cuenta
los caminos de IPv4 en Internet. Para encontrar ese punto, tan sólo hay que mirar el registro 6bone, del que ya
se comento algo anteriormente, y usar la lista del 6bone pTLA junto con pings y traceroutes de IPv4. Con la
lista de 6bone y pTLA conseguimos un vínculo entre el nombre del pTLA con su entrada en el Registro de
6bone. Los pTLA's se encuentran en una lista con su país o estado (en EEUU). Por lo tanto, alguien en
Oklahoma puede usar MERIT/US−MI (que cubre el medio del país), por lo tanto debería ir a la entrada de
Merit en el registro 6bone y obtener un túnel IPv4 y sacar su dirección IPv4 mediante ping y traceroute.
Esta tarea se puede realizar varias veces hasta dar con el pTLA óptimo, pero requiere obtener varias entradas
en el registro.
Una vez que se obtiene una pequeña lista de todos los posibles pTLA/pNLA a los que conectarse mediante un
túnel, usando la dirección de contacto en el registro (uno de los campos que es obligatorio) se solicita la
conexión directamente vía e−mail. Una vez que nos confirman la conexión, ya formamos parte de 6bone y
podemos pasar a otras tareas. La primera de ellas es actualizar el registro de 6bone con nuestra información,
para que se nos pueda asignar una dirección y el resto de los registrados en el 6bone puedan contactar con
nosotros para tratar de solucionar problemas y hacer consultas.
Como ya se comentó antes, los campos que se deben crear para introducir una entrada en el registro son:
IPv6−site y person. En este último se da información de la persona que se encargará de todas las tareas
relacionadas con 6bone. Estos campos de información se crean mediante un archivo de texto y se envía a
auto−[email protected]. Además de estos dos campos, hay que solicitar a Bob Fink que cree un campo mntner
para nosotros donde se de la información de contacto.
Llegados a este punto, sólo falta que nos proporcionen la dirección IPv66. Para esto, sólo hay que contactar
con el pTLA/pNLA que soporta la conexión para pedirle que te asigne una dirección IPv6. La característica
más importante de esta dirección es que están totalmente determinada por el proveedor/punto de acceso al
6bone. Consta de un prefijo de 48 bits que depende de la topología y especifica de forma jerárquica la ruta de
nuestro site al 6bone. El resto de los 80 bits se usan para especificar otras direcciones, no siendo necesario
justificar este espacio como se debe hacer para el caso de una dirección IPv4. Resumiendo, tenemos un campo
de 16 bits para usar como indicador de una subred y otro de 64 para determinar las estaciones y router de esas
subredes. Esto significa que con un podo de esfuerzo se pueden soportar hasta 65000 subredes distintas, cada
una con todos los sistemas finales que se quieran. La única limitación en este número de sistemas finales está
en la limitación de espacio físico y en la limitación del número de estaciones que se pueden conectar al medio
físico de esa subred.
Con esta dirección, el proveedor del 6bone (pTLA/pNLA) creará el campo inet6num que faltaba en nuestra
entrada del registro de 6bone para completar los campos obligatorios.
Ahora, el proveedor de 6bone se encargará de trabajar con nosotros para configurar el túnel para alcanzar el
site. Esta información se debe añadir al campo de ip6−site para constatar que se ha hecho así. Estas
especificaciones se usan para averiguar la topología de la red, para construir esquemas de la red para
comprobar la fiabilidad, accesibilidad y comportamiento, por lo que es importante que estén actualizadas.
Para que todo funcione, además, es necesario tener un servidor de nombres que establezca las equivalencias
entre los nombres y las direcciones IPv6. En la actualidad, todavía no existe un servidor DNS para IPv6, por
35
lo que para hacerlo funcionar se implementa sobre un DNS de IPv4, de forma que el sistema que soporta IPv6
está ligado a la información de IPv4. Sin embargo, algunas de las implementaciones de DNS ya empiezan a
soportar IPv6 (bind8 y bind9).
Para definir las extensiones del DNS para soportar IPv6, existen algunos documentos (RFC1886,
Draft−ietf−IPngwg−dns−lookups−06 y RFC1912). Los dos primeros se encargan de definir el
direccionamiento para IPv6, ya que no existe ninguna implementación disponible en la actualidad (bind9 lo
hará, pero todavía está bajo desarrollo). Por otra parte, el RFC 1912 proporciona una serie de
recomendaciones para instalar DNS sobre IPv4, insistiendo particularmente en la necesidad de crear ficheros
de la zona local para minimizar la carga de los servidores del root. Para crear este fichero, se deben crear
varias zonas: Una para los nombres de dominio válidos y las direcciones a las que enviarlo, otra (u otras) para
los enlaces de la zona local y sus nombres correspondientes y, si fuera necesario, otra/s zonas si el site usa
direcciones de organización local. De una forma análoga a la explicada en este RFC se hará para IPv6.
La plataforma recomendada para ejecutar DNS con IPv6 es BIND 8.2.2−P5, aunque algunas versiones
anteriores también se pueden usar. Pero se recomienda 8.2.2−P5, porque es el código distribuido actualmente,
porque IPv6 hace uso de actualizaciones dinámicas y otra serie de mejoras del protocolo DNS y por motivos
de seguridad, entre otros.
4.2. Futuro de IPv6
A pesar de los inconvenientes que puedan surgir a la hora de utilizar este protocolo o al cambiarlo por su
antecesor, se puede ver claramente que goza de una serie de ventajas que son de mucho mayor peso
específico, por lo que la ganancia en el cambio de IPv4 a IPv6 es muy elevada, sobre todo teniendo en cuenta
las actuales tendencias de los servicios ofrecidos a través de Internet y los servicios demandados por los
usuarios. Dichos servicios son muy complicados, aunque no imposibles de realizar con la actual versión de IP
(ya que cuando se ideó, por los años 60−70, las necesidades para la conexión de ordenadores eran otras) y
siempre con una calidad de servicio no demasiado aceptable, aunque depende seriamente de la carga de la red,
situación que debería tratar de evitarse en la medida de lo posible.
Las particularidades de IPv6 hacen que este protocolo sea lo suficientemente robusto como para soportar un
transporte de datagramas con las características requeridas para los servicios demandados.
Uno de los servicios más demandados es el de las comunicaciones en tiempo real, tanto para grandes
empresas (pueden ganar/perder mucho dinero por la falta de información), como para un usuario común que
busca conocer gente de otros lugares del planeta para conversar con ellos. En la actualidad existen
aplicaciones que necesitan realizar comunicaciones en tiempo real y para conseguirlo deben tener una serie de
recursos reservados en la red. El protocolo que se encarga de desarrollar y estandarizar una serie de
procedimientos de Internet para instalar para instalar y mantener esta reserva de recursos es el RSVP
(ReSerVation Protocol).
Este protocolo se utiliza para solicitar una determinada calidad de servicio de la red para una cadena de datos
de una aplicación llevando la solicitud por toda la red, visitando cada nodo por el que pasa la cadena de datos
y haciendo una reserva de recursos para esa cadena. Para hacer la reserva RSVP se comunica con dos
módulos de decisión locales: control de admisión y de política. El primero de ellos se encarga de determinar si
existen los suficientes recursos para soportar la QoS (calidad de servicio) y el segundo para ver si el usuario
tiene permiso administrativo para hacer la reserva.
Una característica de este protocolo es que llega hasta una gran cantidad de grupos de multidifusión porque
usa peticiones de reserva orientadas por el receptor que se combinan durante el camino de multidifusión. La
reserva para un único receptor no necesita viajar hasta el origen del árbol de multidifusión, sino que sólo viaja
hasta que se alcanza la rama reservada del árbol. Aunque el protocolo RSVP se ha diseñado específicamente
36
para aplicaciones de multidifusión, también puede hacer reservas de unidifusión. Además el diseño utiliza la
robustez de los algoritmos de encaminamiento actuales de Internet para determinar dónde debe llevar las
peticiones de reserva. RSVP funciona sobre IP, tanto IPv4 como IPv6 y suministra un transporte opaco para
los mensajes de control de tráfico y control de política, suministrando operaciones transparentes a través de
regiones que no lo soporten.
Por otra parte, como se comentó anteriormente, una de la características de IPv6 es que tiene la capacidad de
hacer direccionamiento multicast, es decir, el destino es un conjunto de computadoras, posiblemente en
múltiples localidades a las que se le entregará una copia del datagrama, siempre que empleen hardware de
multidifusión si están disponibles. Por tanto, esto mejorará la eficiencia del protocolo RSVP, respecto a la
utilización del protocolo IPv4, que no tiene esta posibilidad de hacer direccionamiento multicast (la tiene pero
con matices importantes). Por si fuera poco, la utilización de este tipo de direccionamiento multicast también
permite un encaminamiento más preciso para el tráfico de multidifusión, lo que permite reducir la congestión
de la red y mejorar la seguridad.
Una aplicación concreta (WebTalk) de estas comunicaciones en tiempo real es la posibilidad de mandar
mensajes a través de Internet para mantener una conversación, oyendo al interlocutor como si estuviese
hablando por teléfono. Esta aplicación es muy parecida a los más conocidos chats o talk, que consisten en
tener una conversación con otra u otras personas a través de Internet, en tiempo real y por escrito, aunque se
diferencia de éstos en que incorpora sonido, por lo que se parece aún más a los sistemas telefónicos actuales,
con la diferencia de que la transmisión de los datos se hace a través de Internet. Al igual que los chats o talk
antes mencionados, sólo se necesita para tener un navegador de www y suficiente memoria, pero al incorporar
sonido es necesario tener una tarjeta de sonido.
Otro de los servicios que se ofrecen es la videoconferencia a través de Internet, a pesar de que la transmisión
de imágenes en movimiento es problemática porque saturan la red.
La Universidad de Cornell (New York) ha desarrollado un programa gratuito (CU−Seeme) que permite la
transmisión de videoconferencia en las que pueden participar varias personas. Aunque RedIris ha recortado en
España la posibilidad de crear sesiones con esta aplicación porque están totalmente incontroladas y colapsan
la red.
La mejora con respecto IPv4 para este tipo de servicios es muy importante, ya que IPv6 permite tratar todos
los paquetes pertenecientes a la videoconferencia como un flujo de paquetes eliminando considerablemente el
retardo de procesamiento, al tener que procesar sólo el primer paquete del grupo. Si a esto le añadimos que
etiquetando los paquetes con una cierta prioridad podemos conseguir que se descarten datagramas que no
añaden nueva información, y con ello conseguimos no colapsar la red, esto nos da como resultado una tasa de
transmisión prácticamente constante con un retardo muy pequeño, lo que lo hace ideal para las
videoconferencias.
También se puede afirmara con toda rotundidad que IPv6 ayuda a mejorar los servicios tradicionales que
ofrece IPv4. Las características de la nueva versión de IP, hacen que estos servicios que se ofrecen sean
mucho más seguros, por ejemplo, en la transmisión de datos, mayor velocidad en los elementos audiovisuales
y mejor forma en su contenido.
Además de mejorar los servicios existentes, IPv6 ha creado un nuevo mercado de productos sobre la red de
redes, como la difusión de canales de televisión vídeo bajo demanda y telecontrol. En lo que se refiere a la
difusión de canales de televisión, tiene la ventaja de contar con una serie de clientes fijos. La idea en la que se
basa es la de tener los host de Internet un canal de difusión de televisión y vídeo, permitiendo que los nuevos
televisores tengan conexión directa a Internet. Hoy día es un hecho que la diferencia entre un ordenador y un
televisor es cada vez menor. Si a eso le añadimos que los costos de transmisión, control y adquisición son más
bajos que los medios actuales de transmisión para televisión y que una empresa puede ofrecer sus servicios
37
alrededor del mundo sin tener que invertir en canales de comunicación, se puede afirmar con seguridad que
llegará un momento en el que se sustituirán las antenas por un cable de fibra óptica, por el que además
circularán otro tipo de señales de otras comunicaciones. De hecho, el gobierno de los Estados Unidos tiene
previsto tener cableados todos los hogares de su territorio con fibra óptica en un breve espacio de tiempo. Por
otra parte, en Europa se avanza más lentamente y en España se calcula que para el presente año esté cableado
algo menos del 50% del territorio nacional, siendo muy optimistas. En el momento en que llegue este cable a
todos los hogares, desaparecerán todos los demás: el teléfono, el de la electricidad y el de las ondas de
televisión, para convertirse en uno grande y único, lo que permitirá la transferencia de informaciones en muy
poco espacio de tiempo, lo que supondrá un importante ahorro económico.
El otro de los mercados que toma fuerza con IPv6 es el mundo del tele−control. Este servicio consiste en tener
control diario sobre los equipos electrónicos como equipos de iluminación, equipos de calefacción, motores y
toda clase de equipos que se puedan controlar mediante switches tanto analógicos como digitales. Este
mercado es grande y requiere soluciones simples y robustas a muy bajo costo, por lo que la potencia del
pay−back en el control por redes sobre IPv6 es el medio para alcanzar este servicio, pero tampoco podría ser
muy rentable este mercado si no fuera por la mejora en la seguridad que ofrece IPv6, de la que ya se habló con
la suficiente extensión anteriormente.
Recientemente, ha empezado a generar interés un lenguaje que amplía las posibilidades del HTML: el Virtual
Reality Modeling Language (VRML). Este lenguaje permitirá introducir las páginas web en el mundo de las
imágenes tridimensionales. Esta herramienta tiene mucha importancia ya que en un futuro no muy lejano el
www será el elemento integrador de todas las aplicaciones de Internet como lo es ya del ftp o del Gopher.
Pero las aplicaciones que van apareciendo llevan una componente multimedia que www tiene que saber
interpretar, por esto se ha desarrollado VRML y es aquí donde entra en juego IPv6, ya que ofrece mejoras
importantes en la transmisión de información audiovisual y multimedia.
5. CONCLUSIONES
En los últimos años hemos vivido una serie de cambios en el mundo de las Telecomunicaciones que han
hecho de Internet una herramienta imprescindible en la vida moderna.
Pero el éxito de Internet ha sido un arma de doble filo, porque a la par que iba creciendo, se ha hecho cada vez
más necesario un nuevo protocolo cuya introducción no es nada sencilla. Estamos hablando de IPv6.
La introducción de IPv6 ha sido mucho más gradual de lo inicialmente previsto. El problema principal es que
IPv6 es incompatible con la actual versión de IP. Para utilizar el nuevo protocolo, los administradores de red
deberán cambiar el software de protocolos en todos los dispositivos conectados; no sólo hosts, sino también
routers y servidores de DNS. Este cambio ha de ser gradual, no se puede dar de un día para otro.
A pesar de esas y otras dificultades, las posibilidades que nos ofrece este nuevo protocolo eran impensables
hace apenas un par de décadas. Abarcan desde el manejo eficiente de sistemas en tiempo real
(videoconferencias, telefonía bajo IPv6, canales de TV, vídeo bajo demanda) hasta telecontrol, pasando por
compras, ventas, etc. Se puede llegar a pensar en un futuro en el que casi todo sistema que se comunique
opere bajo el protocolo IP.
Del mismo modo que se pensaba que IPv4 iba a ser un fracaso y el tiempo ha demostrado que no era así, es
muy difícil vislumbrar que es lo que ocurrirá si IPv6 se llega a poner definitivamente en marcha.
En resumen, IPv6 ofrece una notable mejoría respecto a IPv4. Cuando este último se desarrolló, se cubrían las
necesidades de las redes académicas, científicas y militares en que se utilizaba, y a las que tan sólo una
minoría tenía acceso. Con el boom de Internet la versión actual de IP se queda pequeña por lo que se hace
necesario crear IPv6 que, al igual que IPv4, se ha desarrollado para cubrir las necesidades actuales, pero en un
38
futuro, ¿Pasará lo mismo con IPv6?
6. BIBLIOGRAFÍA
Las principales fuentes de información utilizadas son:
[1] A.S. Tanenbaum. Computer Networks. Prentice−Hall. Tercera edición. EE.UU. 1996
[2] http://www.cs−IPv6.lancs.ac.uk/IPv6/documents/papers/stallings
[3] http://www.dtek.chalmers.se/~d1buj/xjodbsrapport.pdf
[4] http://www.isa.eup.uva.es/Docs/Proyectos/CATV_Internet/dos/2−3.html
[5] http://www.vc.ehu.es/wuagacaj/manual/internet/int−global/futuro.html
[6] http://www.6bone.net/6bone_hookup.html
[7] http://www.cs−ipv6.lancs.ac.uk/ipv6/6Bone/Whois/bycountry.html
[8] http://www.faqs.org/rfcs/rfc1883.html
[9] http://aurora.rg.iupui.edu/doc/rfc/rfc−html/rfc2402.html
[10] http://www.rediris.es/rediris/boletin/41−42/ponencia6.html
[11] http://www4.uji.es/~al019803/Tcpip.htm
[12] http://www.ipv6.org/
1
IPv6 Transmisión de datos
1
1
39
M
0 8 16 29 31 32
MF
OFFSET
RESERVADO
SIGUIENTE CABECERA
IDENTIFICACIÓN DEL DATAGRAMA
40
41
Descargar