6. ANÁLISIS DE MOVILIDAD EN EL PROTOCOLO DE INTERNET VERSIÓN 6 (MIPv6)
6.3. MOVILIDAD IPv6
6.3.2 Visión general de MIPv6
6.3.2.1 Actualización de uniones y reconocimientos
Es crucial para el nodo móvil asegurarse que tiene una unión con su agente home. Si la unión se pierde o el mensaje BU no es recibido el nodo móvil será inalcanzable si esta fuera de la red anfitriona. Por eso, un protocolo confiable está obligado a instalar una unión en el binding cache del agente home. El agente home necesita reconocer el mensaje BU enviado por el nodo móvil.
Fig. 124. Formato del mensaje BU.
Mobile IPv6 define una nueva cabecera de extensión de IPv6, la cabecera de movilidad. Esta es usada para llevar todos los mensajes de movilidad IPv6. Este contiene cuatro campos permanentes (incluidos en todos los mensajes): payload proto, header length, mobility header type y checksum.
El campo payload proto indica el tipo del siguiente encabezado.
El campo header length incluye la longitud de este campo de extensión de ocho octetos excluyendo los primeros ocho octetos.
El campo mobility header type es usado como un switch para indicar cual mensaje está incluido en el encabezado de movilidad. Cuando un BU se incluye en un encabezado de movilidad, se pone 5 en este campo. Cabe resaltar que como todos los encabezados de extensión, en el encabezado de movilidad
Payload proto
195
puede llevar otras opciones después del mensaje indicado por el campo MH type. El mensaje tipo 5 (BU) puede incluir también la opción de la dirección alternativa correspondiente después del mensaje BU.
El campo checksum incluye una suma de verificación para el encabezado de movilidad completo en adición del encabezado de IPv6. El cálculo de este es un poco diferente cuando la opción home address está incluida en el encabezado de opciones de destino.
En el campo de número de secuencia contiene un número entero de 16 bits usado para asegurar que guarde el valor del último número de secuencia usado por cada destino. Cuando el BU se envía a un destino en particular el número de secuencia aumenta. Este número representa un contador cíclico usado para permitir una ventana para el número de secuencia esperado. Esto es, ya que el espacio de secuencia es finito, es inevitable que no se repita. Sin embargo, este campo asegura que BU’s consecutivos sean recibidos en orden.
La bandera A indica si un reconocimiento es esperado para este BU. Cuando se envía el BU a un agente primario las banderas A y H se ponen para indicar si el BU fue enviado al agente primario (H) y si el reconocimiento es requerido (A).
La bandera L la usa el nodo móvil para indicar (cuando se pone) al agente primario, que su identificación de la interface de de la dirección de red local es la misma que está incluida en la dirección primaria. Así, el agente primario puede defender la dirección de red local mediante la creación del identificador de interface al ya conocido prefijo de red local.
La bandera K indica si el protocolo usado para establecer una asociación de seguridad entre el nodo móvil y su agente primario debe ser ejecutado cada vez que el nodo móvil se mueva. Si la bandera K esta borrada, el protocolo no sobrevivirá al movimiento, es decir, la asociación de seguridad necesitará ser restablecida cuando el nodo móvil obtenga una nueva dirección correspondiente.
El tiempo de vida es un campo de 16 bits que indica el tiempo de vida que se pide (en unidades de 4 segundos) para la entrada del binding cache creada por el receptor del BU. Cuando este valor es cero (0), indica una solicitud de borrado de entrada del binding cache para una dirección home. Una
196
entrada binding cache permanece valida por la duración del campo lifetime; si el nodo móvil no actualiza la entrada del BC, la entrada es eliminada después que expira el tiempo de vida.
Cuando el agente home recibe el primer BU del nodo móvil, acciona un DAD para las direcciones home del nodo móvil incluidas en el BU. Si el DAD falla, el nodo móvil es informado (cuando recibe el reconocimiento de la unión) y es deshabilitado para usar la dirección home. La detección de dirección duplicada es una herramienta útil para evitar colisiones de direcciones mientras el nodo móvil esta fuera. Por ejemplo, mientras el nodo móvil se mueve lejos de su red home, otro nodo puede llegar a la red home y formar una dirección que choca con la dirección home del nodo móvil. Aunque este escenario es poco probable (considerando la probabilidad de colisión para un identificador de interfase de 64 bits), el DAD detectaría este caso. Un caso más probable de colisión de dirección resultaría si la unión del nodo móvil ha expirado y no se ha actualizado por algún tiempo (por ejemplo, el nodo móvil es apagado). Durante este periodo, otro nodo puede visitar la red home del nodo móvil y crear una dirección que choca con la dirección home del nodo móvil.
Es importante mencionar que si no se acciona el DAD cuando el nodo móvil esta retirando un estrada del binding cache (cuando el lifetime se pone en cero). En este caso el nodo móvil comparte la red con el agente home; entonces el DAD puede causar un loop infinito porque tanto el nodo móvil como el agente home van a defender la misma dirección.
Después de una operación de DAD exitosa, y asegurándose que nada va a parar al agente móvil de aceptar la unión (eje. Formato de mensaje erróneo o falta de memoria) el agente home copia los contenidos del mensaje en una entrada existente de binding cache o crea una nueva si este fue el primer mensaje BU. Si una entrada binding cache existe, el agente home la actualiza con los contenidos del nuevo mensaje. Siendo así, un mensaje BU sobrescribe una existente, resultando en una sola entrada por dirección home.