IPv6 IPv6 La motivación de un nuevo protocolo IP se encuentra en el problema del vaciamiento de direcciones, el soporte de nuevas aplicaciones y los problemas de seguridad. El vaciamiento de direcciones: Limita crecimiento de Internet. Limita el ingreso de nuevos usuarios. Genera problemas de ineficiencia en el ruteo. Obliga al uso de NAT. La aparición de nuevas aplicaciones: Exige tiempos de respuesta apropiados. Exige mayor ancho de banda en la comunicación. Genera problemas de seguridad. Los problemas de seguridad: Originó la aparición de SSL, HTTPS, IPsec v4. No se ha estandarizado ninguna solución. IPv6 En los 90, IETF crea el Proyecto IPng. Fines de 1994 se publica una RFC ¨The recommendation for IP Next Generation¨ => IPv6. Agranda el espacio de direcciones a 128 bits, lo que significa un número total del orden de 1038 frente a 109 ofrecido por IPv4. A su vez IPv6 ofrece: Arquitectura jerárquica de direcciones basada en la agregación => Ruteo Facilidad para gestión/delegación de direcciones. Formato de Cabecera más simple => procesamiento rápido. Autoconfiguración => Obtención automática de IP. Computación Móvil => Siempre conectado. Seguridad en Datos => Autenticación y Cifrado. QoS y CoS => Tratamiento preferencial para aplicaciones multimedia e interactivas. Soporte tiempo real. Habilidad para comunicaciones end-to-end IPSec =>Es autenticación y cifrado IP a nivel de red. No se usa mucho excepto para tráfico entre routers de borde, en particuIar para tráfico BGP. Multicast y anycast. Migración posible desde IPv4, no son compatibles. IPv6 vs IPv4 NAT/CIDR • NAT redujo la necesidad de obtener muchas direcciones IP públicas, pero NAT no funciona bien cuando se debe ofrecer un gran número de servicios. Además, muchas aplicaciones tienen problemas para atravesar NAT. • El espacio de direcciones de IPv6 elimina la necesidad de NAT. • El gran nuevo espacio de direcciones permite asignación jerárquica que puede servir para facilitar el ruteo y la renumeración. • • Con IPv4, CIDR propuso una asignación más eficiente para el espacio restringido. • Con IPv6 la renumeración por cambio de proveedor es casi automática ya que el identificador de hosts se desacopla del identificador del proveedor de red. • Existen espacios separados para ISPs y hosts para dar eficiencia a operaciones de configuración y re-configuración. IPv6 hoy http://6lab.cisco.com/stats/ "This is one most important days in the history of the Internet. A pool of more than 4 billion Internet addresses has just been emptied this morning," said Rod Beckstrom, chief executive of the Internet Corporation For Assigned Names and Numbers (ICANN), at press conference today in Florida. February 3, 2011 IPv6 Argentina http://6lab.cisco.com/stats/search.php https://www.vyncke.org/ipv6status/detailed.php?country=ar&type= General Data IPv6 Deployment : 16.17% (Prefixes : 14.24% | Transit AS : 60.53% | Content : 48.24% | Users : 0.04%) Relative Index : 1.9 out of 10 Ipv6 Prefixes Ratio of routable IPv6 prefixes : 14.24% Ratio of allocated IPv6 prefixes / ratio of alive allocated IPv6 prefixes : 33.74% / 6.97% Transit AS IPv6 transit AS : 59.87% IPv6 enabled transit AS : 63.16% Content % of WEB Pages Available over IPv6 : 48.24% | number of sites: 49 / 500 In development/test : 0.03% (1/500) | Failing : 0.1% (3/500) | Not V6 enabled : 51.68% (447/500) Users Google Search / APNIC data : 0.04% / 0.01% Estimation : 13 K IPv6 users Direcciones IPv6 • Estructura Jerárquica de conexión a Internet. Las redes de acceso son las de menor jerarquía y existe una red troncal global en la jerarquía más alta. El esquema original (netid, hostid) genera que la cantidad de líneas de las Tablas de Ruteo aumente a medida que se asciende en la jerarquía. • En contraposición, en las redes de telefonía las direcciones presentan una estructura jerárquica de tipo regional que impacta de manera directa en la información almacenada en conmutadores: en determinado nivel todas las llamadas con el mismo prefijo se rutean de igual modo. A esta técnica se la conoce como agrupación de direcciones. • El ruteo CIDR intenta introducir una estructura similar para el esquema IPv4, lográndose de esta manera reducir el tamaño de las Tablas en la jerarquía de la red troncal. • Se pensó otorgar a IPv6 de una estructura jerárquica desde su concepción pero sin limitarla a un significado regional como en la red telefónica. Con IPv6, por ejemplo, el cambio de prefijo por cambio de proveedor es más sencillo dado que los identificadores de host ocupan los 64 bits menos significativos y pueden autoconfigurarse independientemente por el mismo host. Direcciones IPv6 ¿Por qué 128 bits? Algunos pensaban apropiadas las direcciones fijas de 64 bits. Este tamaño minimiza el overhead por paquete dando eficiencia al procesamiento por software. Otros consideraban que era mejor elegir direcciones de longitud variable hasta 160 bits, lo suficientemente grandes como para permitir autoconfiguración cuando se usan direcciones IEEE 802. Se pensaba que se podría comenzar con direcciones de menos de 64 bits y aumentarlas luego. Finalmente se acordó en direcciones fijas de 128 bits. Para su lectura, se considera la dirección de 128 bits dividida en bloques de 16 bits. A su vez, cada bloque tiene una representación hexadecimal, de 4 grupos de 4 bits. Direcciones IPv6 - Notación • 128 bits divididos en partes de 16 bits. A su vez los grupos de 16 bits tienen una representación hexadecimal cuando se los interpreta como 4 grupos de 4 bits. Ejemplo: 2031:0000:130F:0000:0000:09C0:876A:130B • Los ceros al comienzo de un campo son opcionales y pueden omitirse: 2031:0:130F:0:0:9C0:876A:130B • Los ceros en campos sucesivos se representan como “::” pero sólo una vez en la dirección: 2031:0:130F::9C0:876A:130B es correcto • 2031::130F::9C0:876A:130B no es correcto • Ejemplo. FEDC:BA98: 7654:3210:0000:0000:0000:0089 se puede escribir como FEDC:BA98: 7654:3210::89. • • Ejemplo. ::1 es loopback. Ejemplo. :: es no especificada. Direcciones IPv6 • Típicamente: prefijo de red de 64 bits / numeración de host de 64 bits. • La parte de host se puede generar automáticamente a partir de la dirección MAC de la interfaz o asignarse mediante DHCP o manualmente. • La dirección MAC ofrece la oportunidad de identificar equipo y/o usuarios. Por este motivo, se desarrolló la RFC 3041 para reducir la posibilidad de que la identidad de un usuario quedara atada permanentemente a una dirección IPv6. De este modo se conserva la posibilidad de anonimato de IPv4. • La RFC 3041 especifica un mecanismo mediante el cual strings de bits aleatorios variables con el tiempo se pueden usar como identificadores de interfaz para reemplazar las direcciones MAC fijas e identificables. • No hay Direcciones de Broadcast. • Las direcciones poseen campos con nombres específicos que conforman un prefijo que permite saber dónde se conecta una dirección determinada. Todas las interfaces poseen por lo menos una Dirección Unicast Link Local. Direcciones IPv6 - Tipos Existen tres tipos de direcciones en IPv6. Unicast: Identificador de una Interfaz única. Equivalente a IPv4. Existen global unicast address, link-local address, y unique local unicast address. Anycast: Identificador para un Conjunto de Interfaces (generalmente en distintos nodos). Un paquete con Dirección Destino Anycast se entrega a un dispositivo (cualquiera, generalmente el más próximo, según como lo considere el protocolo de ruteo) con sus Interfaces identificadas con esa dirección. Esto permite hacer backups: en caso de caída de determinados nodos, otros pueden ocuparse del tráfico en cuestión. Estas direcciones se toman del espacio Unicast. Multicast: Identificador para un Conjunto de Interfaces (generalmente en distintos nodos). Un paquete con Dirección Destino Multicast se entrega a todas las Interfaces que se identifican con esa dirección. Esto permite el desarrollo de aplicaciones que precisan de múltiples retransmisiones. Estas direcciones comienzan con FF00::/8 . IPv6 - Cabecera 20 40 IPv6 • Capacidad expandida de direccionamiento • Simplificación del formato de Header. • Soporte mejorado de extensiones y opciones. • Capacidad de etiquetado de flujos. • Capacidad de autenticación y encriptado. • Header 40 bytes. 4 8 20 16 8 8 40 128 128 Modificaciones Cabecera IPv6 • • • • • • • • • Pasamos de 12 campos 8 campos. Direcciones 32 bits 128 bits. Se elimina el checksum ya que el chequeo de errores ya se realiza a nivel de capa de enlace. Se quita así carga de procesamiento en routers. El mecanismo de fragmentación se modifica totalmente. En IPv6 los ROUTERS no fragmentan. De ser preciso, la fragmentación se realiza en origen y el re-ensamble en destino. Mecanismo Path MTU Discovery obligatorio. IPv4 Total Length Payload Length (16 bits) en IPv6 longitud de la carga que puede ser hasta 65.535 bytes o mayor => (0…0) con la opción "jumbo payload" en un header de extensión Hop-By-Hop. IPv4 Protocol Next Header (8 bits) en IPv6. En IPv6, en lugar de usar una cabecera de longitud variable, se utilizan una serie de cabeceras encadenadas, por eso desaparece el campo de opciones. En algunos casos el procesamiento de las mismas no se hace en ROUTERS, sino en los extremos. Indica el protocolo encapsulado. TOS Traffic Class en IPv6 (8 bits). IPv4 TTL Hop Limit (8 bits) en IPv6, de 8 bits. El Header IPv6 es de 40 bytes, doble que IPv4 pero con eliminación de campos redundantes, posibilidad de procesado rápido en ROUTERS, inclusive en hardware, por su alineación de 64 bits (nuevos procesadores). Modificaciones IPv6 – Traffic Class • Nuevo campo Traffic Class (8 bits) , también denominado Priority o Class. Sería equivalente a TOS de IPv4. Permite distinguir el tráfico con prioridad (multimedia, tiempo real), habilitando al nodo fuente a diferenciar paquetes que él mismo genera con diferentes niveles de prioridad. Los Routers identificarán los paquetes que pertenezcan a la misma Clase de Tráfico, a los que se dará la misma prioridad. Prioridad de 4 bits: 0-7: Se trata de aplicaciones menos sensibles a jitter (variación de retardo). 8-15: Aplicaciones que Tx secuencias en tiempo real. Por ejemplo audio y video. Son sensibles a jitter y por eso deben transmitirse con prioridad durante períodos de congestión. El video comprimido es más sensible que el audio a la pérdida de paquetes, por eso se le otorga mayor prioridad. Modificaciones IPv6 – Flow Level • Nuevo campo Flow Level (20 bits), para el manejo de tráfico con exigencias de tiempo real. Se relaciona con el concepto de CoS. El campo lo llena el nodo fuente para etiquetar una serie de paquetes que pertenecen al mismo flujo. Un flujo se identifica por DirFte/DirDest/FlowLevel y sus paquetes deben tratarse de la misma manera en los ROUTERS. Garantizado: Se garantiza para esta clase un retardo y un nivel máximo de variación de retardo, así como también BW. Se usa en aplicaciones que implican la reproducción de secuencias en tiempo real. Carga Controlada o Predictivo: No se proporcionan garantías estrictas, pero el flujo de paquetes obtiene un nivel constante de servicio similar a Best Effort con carga baja. Se usa en aplicaciones que implican secuencias de paquetes en tiempo real, pero pueden ajustar el volumen de datos generados al nivel del servicio ofrecido Best Effort: Se trata de aplicaciones basadas en texto. Flow Level va en 0 en este caso. Modificaciones IPv6 – Next Header • • • • • • El campo Payload Length (16 bits) se interpreta como entero sin signo que da el número de bytes en el datagrama IPv6 que siguen a los 40 bytes de header, es decir que incluye cualquier cabecera adicional (extensiones) El campo Next Header (8 bits) es un puntero a la cabecera siguiente, que puede ser de la capa de transporte o cabeceras de extensión. Actualmente existen varios tipos de cabeceras de extensión. Cuando están presentes, cada una comienza con un nuevo campo de cabecera siguiente, indicando el tipo de cabecera que viene a continuación. La última, por ejemplo, indica el tipo de cabecera de protocolo de transporte que sigue a continuación. Las cabeceras sucesivas no se examinan en ROUTERS, excepto que el campo Next Header sea 0, en cuyo caso el proceso es ¨hop by hop¨. Las cabeceras tienen información de ruteo, fragmentación, opciones de destino, autenticación, cifrado, etc.. El campo Hop Limit (8 bits) tiene el mismo significado que TTL en IPv4. Cabeceras de Extensión IPv6 La regla es colocar los headers de manera secuencial. Primero los que sean más importantes para nodos intermedios y luego los que importan en destino final. O sea que, durante el procesamiento no es necesario mirar cada header de extensión. El primero dirá qué acción siguiente necesita ser tomada. Así se mejora notablemente la eficiencia. Cabeceras de Extensión IPv6 Cabeceras de Extensión IPv6 • Existen 6 tipos de Cabeceras: Opciones salto a salto: Define una serie de opciones, para ROUTERS visitados en el camino. Jumbogramas. Opciones de Destino: Define opciones que deben ser examinadas sólo en el destino final. Ruteo: Define un método para que el nodo fuente especifique el camino que debe seguir el paquete. Tipo definido similar a “loose” de IPv4. Fragmentación: Información para re-ensamble en destino. Autenticación: Información para verificación de la fuente en destino. Encapsulado de seguridad de datos: Información para descifrado en destino Opciones de Destino: Información opcional para uso en destino. Movilidad. No hay más headers. Se apunta con el valor Next Header = 59. Las cabeceras comienzan con un código Next Header, luego viene un campo Next Header Length y a continuación los datos de la cabecera. Las cabeceras que cargan Opciones, codifican las mismas en formato TLV (Type, Length, Value). El tipo de cabecera de extensión está indicado en el campo previo al de Cabecera Siguiente. Así se invoca el decodificador apropiado para la cabecera. Opciones (Hop-by-Hop o Destination) Opciones Si se usa Hop-by-Hop se identifica en la cabecera IPv6 con el campo Next Header = 0 y se coloca al comienzo de todas las cabeceras de extensión, ya que se debe procesar en cada nodo que enrute el datagrama. Podría ser por que se estuvieran transportando Jumbo frames o mensajes RSVP. La opción Jumbo Payload se usa en el caso de datagramas con carga mayor a 65.535 bytes (jumbogramas). En este caso, el campo en el Payload Length en el Header principal va en 0. Permite datagramas de hasta 4 Gbytes. Destination se coloca al final de las cabecera. Se identifica con el valor Next Header = 60. Se usa para transportar información adicional sólo necesaria en destino. Cabeceras de Extensión IPv6 - Routing Similar a las opciones de ruteo de origen (flexible y estricto) de IPv4. El campo Next Header = 43 en la cabecera que la apunte. Esta cabecera consta de los siguientes campos: Next Header (8 bits) / Longitud Cabecera de Extensión (interpretado como múltiplo de 8 bytes) / Routing Type (por ejemplo 0 es flexible) / Segments Left (8 bits) / Listado de Direcciones Cabeceras de Extensión IPv6 Fragmentación Los cambios en el mecanismo de fragmentación se idearon para mejorara el tiempo de procesamiento en routers: Se incrementó MTU Default: En IPv4, la MTU mínima que tanto routers como enlaces físicos debían ser capaces de manejar era de 576 bytes. En IPv6 se duplica este valor que pasa a ser 1280 bytes. De esta forma se mejora la relación de overhead . Eliminación de Fragmentación en Ruteo: En IPv6, sólo la fuente puede fragmentar, con lo cual debe tener en cuenta la menor MTU en la ruta antes de Tx. El re-ensamble se realiza en destino. Path MTU Discovery: Mecanismo para determinar la menor MTU en un camino. Realimentación de mensaje de error por tamaño de MTU: Si los routers se vieran forzados a fragmentar, deben descartar el datagrama. Con ICMPv6 se permite avisar a la fuente sobre el problema con dichos datagramas. Retiro de campos de Fragmentación en la Cabecera: Sólo se incluye una Cabecera de Extensión cuando es necesario. Esta incluye una bandera MF, un campo de FO y un campo de identificación. Cabeceras de Extensión IPv6 Fragmentación El mecanismo de realimentación se utiliza en el descubrimiento del path MTU. La fuente Tx un datagrama según el valor MTU de su propio link físico, si este datagrama continúa sin errores, sabrá que puede seguir con este mismo valor para futuros datagramas a ese destino. Si recibe un mensaje ICMPv6 Packet Too Big, intenta nuevamente con un tamaño menor. Una desventaja de este mecanismo es el problema potencial de la existencia de más de una ruta entre fuente y destino o la variación de la ruta original. Path MTU Discovery es un mecanismo estático que se debe repetir toda vez que se reciba algún mensaje ICMPv6 Packet Too Big. La Cabecera de Fragmentación se identifica con el valor Next Header = 44 en la Cabecera Principal. Sus campos, procesados en destino, son: Next Header / Reserved 8-bit / Fragment Offset 13-bit ( en unidades de 8 bytes) / Reserved 2-bit / M flag (1 = more fragments, 0 = last fragment) / Identification 32 bits. Cabeceras de Extensión IPv6 Fragmentación Se consideran dos partes en un paquete: • No fragmentable: Incluye el Header principal del datagrama original y cualquier header de extensión que precise estar presente en cada fragmento: Hop-By-Hop Options, Routing. • Fragmentable: Datos y demás header de extensión (Authentication, Encapsulating Security Payload y Destination Options. • Fragmentar es crear una serie de fragmentos que contengan: Parte No Fragmentable / Fragment Header / Parte Fragmentable. • Cada fragmento debe tener una longitud múltiplo de 8 bytes. Cabeceras de Extensión IPv6 - Fragmentación Cabeceras de Extensión IPv6 - Autenticación Es uno de los protocolos más importantes en IPSec, ideado para proveer autenticación a todo o una parte de los contenidos de un datagrama. Se calcula un Header (AH) según el contenido del datagrama. La parte del datagrama que se usa para el cálculo y el lugar donde se coloca la cabecera, depende del modo (Túnel o Transporte) y la versión (IPv4 o IPv6). La forma de uso es similar a CRC. El algoritmo es del tipo hash, con una clave compartida entre fuente y destino. Una asociación de seguridad se establece entre ambos. El valor calculado es Integrity Check Value (ICV), se transmite desde la fuente y se comprueba en destino. Se provee autenticación, pero no cifrado. Cabeceras de Extensión IPv6 - Autenticación • En modo Transporte, AH se coloca en el Header principal, antes de Opciones de Destino y de cualquier ESP, si estuvieran presentes. • En modo Túnel, AH aparece como cabecera de extensión del nuevo paquete IP, que encapsula al original. Cabeceras de Extensión IPv6 - Autenticación Cabeceras de Extensión IPv6 - ESP ESP ofrece privacidad mediante cifrado. ESP soporta su propio esquema de autenticación o puede usarse combinado con AH. Cabeceras de Extensión IPv6 - ESP Direcciones IPv6 - Unicast • Existen tres tipos de direcciones unicast. • Los prefijos indican el alcance de la dirección, o sea entorno de una red donde la dirección puede ser usada y a las posibilidades de comunicación de un nodo con ese tipo de dirección. • Link-local (enlace local) se refiere al uso entre nodos de la misma red • Site-local (sitio local) implica la comunicación dentro de un mismo sitio o administración. • Global se asocia al uso en Internet. • A su vez, dentro de las direcciones unicast del tipo global pueden existir subtipos especiales de direcciones, tales como direcciones IPv6 con direcciones IPv4 embebidas. También se deja abierta la posibilidad a futuro de definir nuevos subtipos. • Los dispositivos se consideran del tipo host o router, y puede tener mucho o poco conocimiento de la estructura interna de la dirección IPv6. Direcciones IPv6 – Unicast Global Direcciones IPv6 – Unicast Global Direcciones IPv6 – Unicast Id Interfaz Direcciones IPv6 – Unicast Especiales Direcciones IPv6 – Unicast Especiales Direcciones IPv6 - Multicast 8 11111111 4 4 Flag Scop 112 Group ID • Multicast es parte de las especificaciones IPv6, no como en IPv4 que fue agregado después. • IPv6 no tiene broadcast para enlace local => multicast al grupo todos los hosts (FF02::1). • Luego del prefijo que identifica las direcciones multicast, aparecen dos campos que se utilizan para limitar el ámbito geográfico de la comunicación de grupo. FF<flags><scope>::<multicast group> • • El campo de flags comienza en cero. Los primeros tres bits se setean en 0 y el cuarto es el flag “T” (Transient). Si es cero, significa que la dirección multicast es de asignación permanente. Si es 1, significa que es transitoria. Direcciones IPv6 Multicast Direcciones IPv6 - Multicast Dirección IPv6 Multicast Nodo Solicitado Direcciones IPv6 – Configuración • RFC 2462 mecanismo de configuración. El proceso incluye la creación de una dirección de alcance de enlace local y la verificación de la unicidad de dicha dirección en ese enlace. Puede realizarse de dos maneras. • Mecanismo de auto-configuración sin estado no requiere configuración manual de hosts ni servidores adicionales. El host puede generar sus propias direcciones por medio de una combinación de la información disponible localmente (identificadores de interfaz) e información recibida de routers (prefijos que identifican la subred asociada con un enlace). La dirección es una combinación de ambos. De no existir routers, un host sólo puede generar direcciones del enlace local pero, a partir de ellas, puede comunicarse con otros nodos en el mismo enlace. • Mecanismo de auto-configuración con estado, los hosts obtienen sus direcciones de interfaz y toda la información necesaria para su configuración, a partir de servidores DHCPv6. Cuando se requiere un control más rígido sobre las direcciones asignadas. • Mecanismos complementarios. Un host puede usar sin estado para la configuración de sus propias direcciones y con estado para obtener otro tipo de información. Administrador especifica mecanismo por ajuste de ciertos campos en mensajes ICMPv6 de Aviso de Routers. Autoconfiguración Stateless. Autoconfiguración Stateless. • Los mensajes de Aviso de Router son periódicos, pero si el host no desea esperar, edita mensajes de Solicitud de Router a la dirección multicast de todos los routers. • Los mensajes de Aviso de Router señalan el mecanismo de autoconfiguración a utilizar y pueden contener opciones de información de prefijo para el caso de autoconfiguración sin estado, para poder generar direcciones de alcance global o para el sitio. Además, pueden llevar información del prefijo de subred y valores de tiempo de vida para las direcciones creadas con el prefijo anunciado. La generación periódica de Avisos de Router permite que los hosts actualicen la información recibida también de manera periódica. • La ventaja más importante de esta posibilidad de autoconfiguración es el soporte de movilidad IP: los dispositivos pueden cambiar de red, generando direcciones válidas sin necesidad de conocer de antemano la existencia de servidores o los prefijos de red. ICMPv6 • RFC 2463.Idéntico comportamiento que en IPv4. IPv6 Next Header= 58. Es crucial en IPv6 para descubrimiento de vecinos, de routers, de la MTU del path, el manejo de grupos multicast, etc.. Type 1: Destination Unreachable. Code 0: no route to destination. Code 1: administratively prohibited Code 3: address unreachable Code 4: port unreachable Type 2: Packet Too Big . El mensaje contiene la MTU ICMPv6 Type 3: Time Exceeded Code 0: hop limit exceeded Code 1: fragment reassembly time exceeded Type 4: Parameter Problem Code 0: erroneous header field Code 1: unrecognized Next Header Code 2: unrecognized IPv6 option Type 128: Echo request: el mensaje contiene Identifier y Sequence number Type 129: Echo reply: el mensaje contiene Identifier y Sequence number ICMPv6 - Router Advertisement ICMPv6 - Router Advertisement • Type (1 byte): Identifica el tipo de mensaje, 134 / Code (1 byte): no usado / Checksum (2 bytes). • Current Hop Limit (1 byte): valor default que el router le pasa al host. Puede ser 0, indicando que el router no recomienda valor alguno. • Flags de Autoconfiguración (1 byte): Sólo dos bits definidos. Si M está en alto, se indica a los hosts el uso de un método ¨statefull¨ para direccionamiento. Bit O en alto indica que usen método ¨statefull¨ para información que no sea la dirección. • Router Lifetime (2 bytes): Le dice al host cuánto tiempo (en segundos) el router debería ser usado como default. Si es 0 le indica que no puede usarlo como tal. • Reachable Time (4 bytes): Le dice al host cuánto tiempo (en milisegundos) deberían considerar un vecino alcanzable luego de recibir confirmación de alcanzabilidad. • Retransmission Timer (4 bytes): Cantidad de tiempo en milisegundos, que un host debería esperar antes de ReTx mensaje de Neighbor Solicitation. • Options (Var): Source Link-Layer Address, MTU y Prefix Information. ICMPv6 - Router Solicitation • Type (1 byte): 133 / Code (1 byte): 0 / Checksum (2 bytes) / Reserved (4 bytes). • Options (Var): Si el dispositivo conoce sus direcciones de capa de enlace, debe incluir en la opción Source Link-Layer Address. • • • Los mensajes Router Solicitation se envían a la dirección multicast IPv6 “all routers”. Los mensajes Router Advertisement no solicitados, se envían a la dirección multicast “all nodes” de la red local. • Los mensajes Router Advertisement que son respuesta a Router Solicitation van a la dirección unicast del solicitante. ICMPv6 - Neighbor Discovery • Router Advertisment y Router Solicitation se usan para facilitar funciones de descubrimiento host-router como parte del protocolo IPv6 Neighbor Discovery (ND). • ND también interviene en el intercambio de información entre hosts vecinos de la misma red. • Se incluyen tareas que sirven para resolución de direcciones en IPv6, determinación de procesos de next-hop y detección de vecino inalcanzable. • ICMPv6: Neighbor Solicitation y Neighbor Advertisement. • Neighbor Solicitation permite chequear que un vecino existe y es alcanzable, e iniciar resolución de direcciones. • Neighbor Advertisement confirma la existencia de un host o router, y provee información de capa de enlace cuando sea preciso. ICMPv6 - Neighbor Advertisement ICMPv6 - Neighbor Advertisement • Type (1 byte): 136 / Code (1 byte): 0 / Checksum (2 bytes) / Reserved (4 bytes). • Flags (1 byte): Flag R (en ¨1¨ cuando lo envía un Router), Flag Solicited (en ¨1¨ cuando el mensaje es en respuesta a un Neighbor Solicitation), Override (en ¨1¨ para indicar que el mensaje deber reemplazar la información almacenada en cache en cuanto a la dirección link-layer). • Target Address (16 bytes): Si el mensaje es en respuesta a uno de Neighbor Solicitation, este es el mismo valor que en el campo Target Address de la solicitud. Generalmente lleva la dirección IPv6 del dispositivo que Tx el Neighbor Advertisement. Si el mensaje se envía sin ser solicitado, se coloca la dirección IPv6. • Options (Var): Cuando es en respuesta a Neighbor Solicitation multicast, debe contener la dirección link-layer del que Tx el mensaje. Si es en respuesta a Neighbor Solicitation unicast, puede incluirla, aunque no sería necesario. ICMPv6 - Neighbor Solicitation ICMPv6 - Neighbor Solicitation Type (1 byte): 135 / Code (1 byte): 0 / Checksum (2 bytes) / Reserved (4 bytes). Flags (1 byte): Flag R (en ¨1¨ cuando lo envía un Router), Flag Solicited (en ¨1¨ cuando el mensaje es en respuesta a un Neighbor Solicitation), Override (en ¨1¨ para indicar que el mensaje deber reemplazar la información almacenada en cache en cuanto a la dirección linklayer). Target Address (16 bytes): Dirección IPv6 address del nodo solicitado, cuya dirección capa dos se desea conocer. Options (Var): Si el dispositivo que envía la solicitud conoce su propia dirección IP y la de capa 2, debería incluir esta última. Así, se permitirá al que lo reciba enterarse de ambas direcciones para almacenar en cache. • Neighbor Solicitation destino unicast a la dirección del “target” o multicast solicited-node del “target”. Si se genera en respuesta Neighbor Advertisement, va a la dirección unicast del solicitante, a menos que se haya generado en una dirección no especificada, en cuyo caso se envía a multicast de “all nodes”. Si Neighbor Advertisement se Tx sin haber sido solicitado, se envía a multicast “all nodes”. ICMPv6 - Redirect Target Address: La del nuevo router para ese destino. Destination Address: La del destino que debe ser redireccionado. Options: Target Link-Layer Address podría ser una de las opciones presentes. ICMPv6 - Redirect • Es una funcionalidad que usan los routers mediante el protocolo ND. Así, el router le informa a un host de una mejor ruta para un destino particular. • Los routers deben detectar situaciones de decisiones de ruteo ineficientes. ICMPv6 - Neighbor Discovery ND implementa su funcionalidad usando mensajes ICMPv6. En el estándar ND se describen 5 tipos de mensajes: Router Advertisement: Enviados periódicamente por routers para indicar a los hosts su existencia y proveer información de parámetros. Router Solicitation : Enviados por hosts para pedir que cualquier router local le envíe un mensaje Router Advertisement, para no tener que esperar el próximo. Neighbor Advertisement: Enviado por hosts para indicar su existencia y proveer información sobre él mismo. Neighbor Solicitation : Enviado para verificar existencia de otro host y pedirle que le transmita un mensaje Neighbor Advertisement. Redirect: Enviado por el router para transmitir información sobre el mejor método para rutear un dato a un destino en particular. ICMPv6 - Neighbor Discovery Funciones Host-Router Discovery realizadas por Routers: • Aviso de Ruteo: De Tx periódica, pero también se podrían Tx ante cambios. Incluyen información sobre el router y la red. • Mantenimiento de Parámetros: Es responsabilidad de los Routers y es información que se carga en los avisos: default Hop Limit, default MTU e información de prefijo tanto para enrutamiento como para autoconfiguración. • Procesamiento de Solicitudes: Routers reciben Router Solicitation y envían Router Advertisement al que solicita. Funciones Host-Router Discovery realizadas por Hosts: • Procesamiento de Aviso: Para configurar los parámetros que se les envía y actualizarlos según corresponda. • Generación de Solicitudes: Router Solicitation generalmente se generan al arranque. • Autoconfiguración: Procesando información de router local. ICMPv6 - Neighbor Discovery • Determinación de Next-Hop: Determinación de si la entrega es directa o indirecta. El prefijo de red obtenido del router local se compara con el destino de cada datagrama. Si no es local, el siguiente salto se elige de la lista de routers locales determinados por configuración manual o por ND. • Resolución de Direcciones: Se usa ND, mediante los mensajes Neighbor Solicitation (con la IP que se desea resolver) y Neighbor Advertisement (con la respuesta). La Solicitud se envía a multicast de nodo solicitado. • Actualización de Vecinos: La Tx de Neighbor Advertisements no es periódica pero, bajo ciertas condiciones, se pueden Tx estos mensajes sin que se los haya solicitado. Un ejemplo sería el cambio de una placa de red. • Detección de no alcanzabilidad de Vecino y Caché de Vecino: Cada dispositivo almacena información actualizada sobre vecinos. Detectar que cualquiera sea no alcanzable es importante para adaptar el comportamiento. Para ello se asocia un timer a cada entrada. Neighbor Solicitation y Neighbor Advertisement se usan para actualizar el cache. • Detección de Dirección Duplicada: al comienzo. DHCPv6 • RFC 3315. Contracara de Stateful para Autoconfiguración IPv6. • Se usa cuando no se encuentra un Router o si el Aviso de Router lo permite. • Stateful requiere intervención humana ya que usa Dynamic Host Configuration Protocol for IPv6 (DHCPv6) para la instalación y administración de nodos. El Server DHCPv6 mantiene una lista de nodos y la información sobre su estado para saber la disponibilidad de cada dirección IP del rango asignado por el administrador. Server : responde requerimientos, proveyendo direccción IPv6 y otros parámetros de configuración, por ejemplo Servidores DNS. Escucha en las direcciones multicast All_DHCP_Relay_Agents_and_Servers (FF02::1:2) y All_DHCP_Servers (FF05::1:3). Memoriza estado de los Clientes, garantiza control de acceso seguro a los recursos. Cliente usa su dirección link local para conectarse al Servidor. Envía requerimientos a la dirección multicast FF02::1:2 All_DHCP_Relay_Agents_and_Servers. DHCPv6.