CPTM - Una breve introducción a IPv6

1 CPTM - Una breve introducción a IPv6Nov 2007 ...
Author: Esther Alvarado Quintana
0 downloads 2 Views

1 CPTM - Una breve introducción a IPv6Nov 2007

2 CPTM - Una breve introducción a IPv6Javier Contreras Nicolás Ruiz CPTM - Una breve introducción a IPv6 Nov 2007

3 CPTM - Una breve introducción a IPv6Programa Relevancia de IPv6 Resumen Histórico Particularidades Direcciones IPv6 Encabezado de Paquetes IPv6 ICMPv6 IPv6 y DNS Activar IPv6 en Cisco, Linux, MS Windows Aplicaciones CPTM - Una breve introducción a IPv6 Nov 2007

4 CPTM - Una breve introducción a IPv6Internet es un conjunto de redes interconectadas entre si que intercambian información. Las reglas que establecen los mecanismos como se intercambia información se conocen como protocolos. Utiliza el conjunto de protocolos TCP/IP IP es el protocolo que se encarga de transportar los datos entre los extremos de la comunicación. Internet consiste en una serie de redes interconectadas entre si que permiten el intercambio de información (digital). Este intercambio de información requiere el uso de procedimientos y mecanismos previamente establecidos entre los distintos entes que forman parte de una comunicación en particular. Estos procedimientos y mecanismos son conocidos con el nombre de protocolos. En Internet el conjunto de protocolos más importante es TCP/IP (Transport Control Protocol / Internet Protocol). En particular IP es el protocolo que controla el intercambio de paquetes de extremo a extremo (end to end). CPTM - Una breve introducción a IPv6 Nov 2007

5 CPTM - Una breve introducción a IPv6Existen 2 modalidades (llamadas versiones) del protocolo Internet utilizadas actualmente: IP versión 4 (IPv4 o simplemente IP) IP versión 6 (IPv6, también llamada Ipng) Esta charla está dedicada a presentar algunos aspectos de IPv6 para aquellos que ya están familiarizados con IPv4. Existen dos modalidades - llamadas versiones - de IP utilizadas hoy en día: IP versión 4 (IPv4 o simplemente IP) es la más utilizada y con la que deben estar familiarizados, e IP versión 6 (IPv6, antes también conocidacomo IP New Generation IPng) que es la que va a ser introducida en esta lectura. Esta clase tiene como objetivo presentar algunos conceptos básicos de IPv6 a personal de administración de redes que ya domina IPv4, y familiarizar al alumno con la nomenclatura utilizada. En ningún momentopretende hacer un análisis completo y sistemático de todos los aspectos relacionados con IPv6. CPTM - Una breve introducción a IPv6 Nov 2007

6 CPTM - Una breve introducción a IPv6Relevancia de IPv6 Muy poco utilizado comparado a IPv4 No hay demanda porque no hay aplicaciones. No hay aplicaciones porque no hay demanda. Todavia hay ISPs (CANTV, octubre 2007) que no soportan IPv6. IPv6 es poco relevante al ser comparada con IPv4 en terminos de porcentaje de uso. La razón de la falta de uso es (en parte) un problema del huevo y la gallina: no se usa porque no hay razones imperativas (aplicaciones) que lo demanden y no hay aplicaciones que dependan exclusivamente de IPv6 porque no se usa. Aquellas aplicaciones que podrían tomar ventaja de las innovaciones de IPv6 simplemente son desarrolladas adaptadas a IPv4 y sus limitaciones. Adicionalmente existe el problema de que porciones de la infraestructura de Internet no tiene soporte para IPv6: algunos ISP no estan en capacidad de proveer conectividad IPv6 por ejemplo (en Octubre 2007, CANTV todavia no puede ofrecer conectividad IPv6). (Nota al instructor: preguntar a los asistentes si saben si sus enrutadores, firewalls y antivirus soportan IPv6). CPTM - Una breve introducción a IPv6 Nov 2007

7 CPTM - Una breve introducción a IPv6Relevancia de IPv6 (2) Soporte a IPv6 está aumentando constantemente. Las direcciones Ipv4 se acabarán Eventualmente va a ser utilizado masivamente. A pesar de estas dificultades la porción de redes que soporta IPv6 está aumentando constantemente. De igual manera, la razón fundamental por la que se desarrolló IPv6 - la falta de direcciones IPv4 - se va a materializar en unos pocos años (menos de 5 según los últimos estimados), forzando a aquellos entes interesados en crear o aumentar su presencia en Internet a tomar medidas cada vez más drásticas e implementar soluciones más complejas. Eventualmente va a llegar un momento en el cual IPv6 alcance una masa crítica y sea lo suficientemente utilizado o requerido como para que se vuelva imprescindible que los administradores de redes conozcan IPv6 tan bien como conocen IPv4 en este momento. CPTM - Una breve introducción a IPv6 Nov 2007

8 CPTM - Una breve introducción a IPv6Resumen Histórico La Internet Engineering Task Force (IETF) es la organización responsable de definir y estandarlizar los protocolos de Internet. A partir de 1993, empieza a haber preocupación de que las direcciones IPv4 se agoten. La organización encargada de desarrollar y estandarizar los protocolos a ser utilizados en Internet es la Fuerza de Trabajo de Ingenieria de Internet (IETF, por sus siglas en inglés Internet Engineering Task Force). Desde su creación y hasta el año 1993, Internet fué una red de uso primordialmente científico y las proyecciones de crecimiento en esa epoca apuntaban a una reserva practicamente ilimitada de direcciones IPv4. Esta situación cambia subitamente en a causa de la creación del World Wide Web (WWW) y el desarrollo de Mosaic - el primer navegador gráfico. El uso de Internet se masifica y se unen grandes segmentos de la población que historicamente no forman parte de Internet (comercios, servicios públicos gubernamentales, hogares). Algunas personas notan con preocupación como a consecuencia de la popularización de Internet aumenta bruscamente la velocidad con la que se asignan rangos de direcciones IPv4 y observan que, de continuar la tendencia, los rangos de direcciones disponibles para nuevos equipos se agotarian en unos pocos años. CPTM - Una breve introducción a IPv6 Nov 2007

9 CPTM - Una breve introducción a IPv6Resumen Histórico (2) Desde 1992 se habia establecido en la IETF un Working Group (WG) encargado de desarrollar la nueva versión del protocolo IP: Ipng. El objetivo principal de IPng es solucionar el problema de escacez de direcciones. IPv6 se recomienda como el IPng en 1994. Desde hace algunos años atras (1992) se venia trabajando en nuevos protocolos que reemplazaran IP, en el grupo de trabajo (Working Group o WG)de IPng. La prevista escacez de direcciones IPv4 es el problema principal que debe solventar IPng. IPv6 es recomendado como el IPng en julio de 1994, y el núcleo del protocolo fué publicado como un draft standard en IPv6 es un avance evolutivo sobre IPv4, y un incremento natural sobre este, al tiempo que atiende limitaciones actuales y provee una plataforma para nuevas funcionalidades que se espera sean de uso en el futuro cercano.IPv6 incorpora lo aprendido sobre protocolos y redes de computadoras en los años transcurridos desde que se desarrolló IPv4. CPTM - Una breve introducción a IPv6 Nov 2007

10 CPTM - Una breve introducción a IPv6Resumen Histórico (3) Se desarrollaron tecnologias que permiten disminuir la tasa de consumo de rangos de direcciones IP, ganando así tiempo para la implementación de IPv6. Network Address Translation (NAT) Classless Inter-Domain Routing (CIDR) Simultaneamente con el desarrollo de IPv6, el IETF también trabajó en soluciones que disminuyeran la tasa de consumo de direcciones IPv4, lo que permitiría tener más tiempo para desarrollar e implementar el sucesor de IPv4. Una de dichas fué NAT (Network Address Translation, RFC3022), El primer NAT RFC fué publicado en mayo 1994 (RFC1631). Otro desarrollo que tuvo un impacto en el consumo de direcciones IPv4 fué CIDR (Classless Inter-Domain Routing, RFC4632, tambien BCP0122). El primer CIDR RFC fué publicado en Junio 1992 (RFC1338). CPTM - Una breve introducción a IPv6 Nov 2007

11 CPTM - Una breve introducción a IPv6Resumen Histórico (4) Algunos expertos dudan que IPv6 llegue a ser necesario (aparecería un mercado de direcciones IPv4). En octubre 2007, RIPE declara que espera que el espacio de direcciones IPv4 esté totalmente asignado en un espacio de 2 a 4 años. Llama a impulsar y desarrollar la implantación de IPv6. NAT ha sido tan exitoso que algunas personas dudaban que IPv6 llegue a ser necesario. En Octubre 2007 RIPE, la organización encargada de administrar recursos IP en Europa, declaró que se espera que el espacio de direcciones IPv4 esté totalmente asignado en un periodo de 2 a 4 años, y urgen a los entes involucrados en impulsar la implementación y desarrollo de IPv6. CPTM - Una breve introducción a IPv6 Nov 2007

12 Particularidades de IPv6Definido en RFC2460 (antes en RFC1883). Direcciones IP son de 128 bits: billones de direcciones direcciones en total (IPv4 tiene 4 mil millones de direcciones en total). No hay fragmentación de paquetes en tránsito. Definido en RFC2460 en diciembre del 1998 (antes en RFC1883, diciembre 1995). Los principales aspectos en los que difiere de IPv6 son: Dirección IP es 128 bits ( direcciones en total). Demasiado grande como para comprenderlo. IPv4 utiliza 32 bits de dirección. CPTM - Una breve introducción a IPv6 Nov 2007

13 Particularidades de IPv6Definido en RFC2460 (antes en RFC1883). Direcciones IP son de 128 bits: billones de direcciones direcciones en total (IPv4 tiene 4 mil millones de direcciones en total). No hay fragmentación de paquetes en tránsito. No hay fragmentación de paquetes como en IPv4. A diferencia de IPv4, los nodos intermedios no pueden fragmentar un paquete cuando el MTU (Maximum Transmission Unit, el tamaño máximo de un paquete que puede ser transmitido a través de un enlace en una sola pieza) del enlace de salida es mas pequeño que el paquete IPv6. Cuando esto ocurre el nodo intermedio debe descartar el paquete IPv6 y enviar un mensaje de control (ICMPv6) al nodo de origen indicando que el paquete fué muy descartado por ser muy grande (Packet Too Big). Solamente el equipo de origen puede enviar fragmentos (y solamente el nodo de destino debe desfragmentar). Esto hace que el procesamiento de paquetes por nodos intermedios sea más rapido, porque en los casos donde en IPv4 se debe fragmentar, en IPv6 solamente se devuelve un mensaje de control (ICMP). El mensaje ICMP "Packet Too Big" indica el MTU del enlace que causó el problema. CPTM - Una breve introducción a IPv6 Nov 2007

14 Particularidades de IPv6 (2)Simplificación del encabezado (header). Etiquetado de flujo. Enlaces que soporten IPv6 deben tener un MTU mínimo de 1280 octetos. Se asume que una interfaz tiene múltiples direcciones IPv6 (IPv4 asume que una interfaz tiene una sola dirección). Simplificación del encabezado. Algunos tipos de opciones del encabezado se han descartado o hecho opcionales para así reducir el costo de procesamiento de un paquete. Hay menos restricciones en el tamaño de las opciones, y mayor flexibilidad para introducir nuevas opciones en el futuro. (esto es consecuencia de años de experiencia con IPv4). En IPv6, con la excepción de las opciones de enrutamiento (y todavía no se sabe que va a pasar con ellas, un tipo en particular, el Routing Header 0 fué invalidado hace unos pocos meses), los equipos de tránsito no necesitan inspeccionar las opciones de un paquete IPv6, a diferencia de IPv4, donde todos los equipos de tránsito deben poder inspeccionar todas las opciones, incluso aquellas que nunca afectan el comportamiento del enrutador. Ademas, al procesar el encabezado IPv6 ya se puede determinar si el equipo tiene que procesar la siguiente opción sin necesidad de leer los datos de dicho campo. Al contrario de este mecanismo, un equipo de tránsito en IPv4 tiene que revisar todo el encabezado (con multiples variaciones de las opciones incluidas) para determinar si necesita tomar alguna acción al respecto. CPTM - Una breve introducción a IPv6 Nov 2007

15 Particularidades de IPv6 (2)Simplificación del encabezado (header). Etiquetado de flujo. Enlaces que soporten IPv6 deben tener un MTU mínimo de 1280 octetos. Se asume que una interfaz tiene múltiples direcciones IPv6 (IPv4 asume que una interfaz tiene una sola dirección). El esquema de operación de los encabezados se explica con más detalle en la sección de encabezados IPv6. Etiquetado de flujo. Esto permite identificar paquetes que pertenecen a un mismo flujo, lo que en teoria facilitaria el establecer QoS para cierto tipo de tráfico. Enlaces que soporten IPv6 tienen que tener un MTU de al menos 1280 octetos. Aquellos enlaces que no pueden transmitir 1280 octetos en un solo paquete (por ejemplo, ATM) tienen que realizar fragmentación y desfragmentación por debajo de IPv6 (en la capa de enlace). Implementaciones de IPv6 pueden implementar MTU Path Discovery (RFC1981) - recomendado - o limitarse a enviar paquetes de no mas de 1280 octetos. CPTM - Una breve introducción a IPv6 Nov 2007

16 Particularidades de IPv6 (2)Simplificación del encabezado (header). Etiquetado de flujo. Enlaces que soporten IPv6 deben tener un MTU mínimo de 1280 octetos. Se asume que una interfaz tiene múltiples direcciones IPv6 (IPv4 asume que una interfaz tiene una sola dirección). En IPv6 se considera normal que un enlace físico tenga asociadas múltiples direcciones IPv6. Por el contrario, en IPv4 por lo general se asume que hay una sola dirección IPv4 asociada a una interfaz. El problema de tener múltiples direcciones IPv6 asociadas con una sola interfaz (complicado por el hecho de tener direcciones IPv6 e IPv4 en la misma interfaz) es determinar que dirección de origen utilizar - o dirección de destino cuando un nodo remoto también tiene múltiples direcciones de origen . RFC3484 describe el mecanismo de selección de direcciones para IPv6. Windows XP, FreeBSD y Linux (en Debian /etc/gai.conf) tienen mecanismos para configurar la política de selección de direcciones. CPTM - Una breve introducción a IPv6 Nov 2007

17 Particularidades de IPv6 (3)Autoconfiguración. No existe el concepto de broadcast. En su lugar se utiliza multicast. No hace falta utilizar NAT. El uso de NAT está contraindicado en IPv6. Autoconfiguración. La definición de IPv6 establece un mecanismo que permite la configuración automática de equipos conectados a una red local. Esta configuración establece dirección de red, host ID y dirección IP del enrutador. Este tipo de autoconfiguración fué diseñado para poder ensamblar rápidamente redes IPv6 (en las cuales no fuese necesario configurar manualmente los nodos), pero tiene la limitación de que no ofrece una forma de configurar DNS, y no ofrece ningún mecanismo de autentificación (un host que recibe información de autoconfiguración no tiene manera de verificar que la información recibida es válida). Definido en RFC4862 (antes RFC2462, RFC1971). Se estan discutiendo modificaciones al proceso de autoconfiguración para permitir autenticación, pero probablemente requieran algún tipo de configuración manual de los nodos. No existen direcciones broadcast. La funcionalidad de las direcciones broadcast ahora la proveen direcciones multicast. No hace falta utilizar NAT. De hecho el uso de NAT está contraindicado en IPv6 y un análisis de los problemas causados por NAT se sale de los objetivos de este taller. CPTM - Una breve introducción a IPv6 Nov 2007

18 CPTM - Una breve introducción a IPv6Direcciones IPv6 La representación de direcciones IPv6 está descrita en RFC4291 (antes en RFC3513, RFC2373 y RFC1884). Información adicional en RFC3587 (antes en RFC2374 y RFC2073). CPTM - Una breve introducción a IPv6 Nov 2007

19 CPTM - Una breve introducción a IPv6Direcciones IPv6 (2) Tienen un tamaño de 128 bits (16 octetos). x:x:x:x:x:x:x:x Cada “x” representa un grupo de 16 bits representado en notación hexadecimal. Como ya se menciono antes, las direcciones IPv6 tienen un tamaño de 128 bits. Estas direcciones de 128 bits se representan como x:x:x:x:x:x:x:x donde cada "x" es un grupo de 16 bits representado en notación hexadecimal. Una descripción de la notación hexadecimal puede encontrarse en el apéndice A. CPTM - Una breve introducción a IPv6 Nov 2007

20 CPTM - Una breve introducción a IPv6Direcciones IPv6 (3) Ejemplos de direcciones IPv6 ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 2001:0DB8:0000:0000:0008:0800:200C:417A quitando los ceros iniciales: 2001:DB8:0:0:8:800:200C:417A (el primer número queda igual) Un ejemplo de dirección IPv6 puede ser ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 2001:0DB8:0000:0000:0008:0800:200C:417A Una simplificacion de esta notacion consiste en omitir los ceros iniciales (excepto en el caso de 0000, donde se deja un solo cero), de manera que se convierte en 2001:DB8:0:0:8:800:200C:417A ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 queda igual porque no tiene ceros iniciales en ninguno de los grupos. CPTM - Una breve introducción a IPv6 Nov 2007

21 CPTM - Una breve introducción a IPv6Direcciones IPv6 (4) “::” representa grupos consecutivos de 0. 2001:DB8:0:0:8:800:200C:417A FF01:0:0:0:0:0:0:101 0:0:0:0:0:0:0:1 0:0:0:0:0:0:0:0 queda 2001:DB8::8:800:200C:417A unicast FF01:: multicast :: localhost :: no especificada Una simplificación adicional consiste en utilizar la notación "::" para representar uno o más grupos de 16 bits de ceros. El "::" solo puede aparecer una sola vez en la dirección. El "::" también se puede utilizar para representar un prefijo o sufijo de ceros en una dirección. De esta manera, las siguientes direcciones: 2001:DB8:0:0:8:800:200C:417A una dirección unicast FF01:0:0:0:0:0:0:101 una dirección multicast 0:0:0:0:0:0:0:1 la dirección de loopback 0:0:0:0:0:0:0:0 dirección no especificada se pueden representar de la siguiente manera 2001:DB8::8:800:200C:417A una dirección unicast FF01:: una dirección multicast :: la dirección de loopback :: dirección no especificada Esta representación se conoce como forma comprimida. CPTM - Una breve introducción a IPv6 Nov 2007

22 CPTM - Una breve introducción a IPv6Direcciones IPv6 (5) Solo se puede utilizar “::” una sola vez en una dirección IPv6. De lo contrario, ¿como saber cuantos grupos van en cada uno? 2001:DB8::CAFE:: La razón por la cual no se puede utilizar "::" múltiples veces es simple: no hay forma de discriminar cuantos grupos de 16 bits van en cada "::". Considere por ejemplo 2001:DB8::CAFE:: ¿Como se diferencia cuantos grupos de 16 bits van a la derecha y cuantos a la izquierda? CPTM - Una breve introducción a IPv6 Nov 2007

23 CPTM - Una breve introducción a IPv6Direcciones IPv6 (6) Otra representación alternativa x:x:x:x:x:x:d.d.d.d “x” representa números hexadecimales “d” reprecenta números decimales (representación IPv4 estandard) Ej: 0:0:0:0:0:0: ::FFFF: Una representación alternativa que puede ser conveniente en casos en que se mezclan direcciones IPv4 e IPv6 (nota, yo no la he visto en uso, pero no significa que no se use), es usar la notación x:x:x:x:x:x:d.d.d.d donde las "x" son 4 digitos hexadecimales y las "d" son los valores decimales de las cuatro porciones de 8 bits de menor orden (representación IPv4 estandard). Así, por ejemplo, las direcciones 0:0:0:0:0:0: 0:0:0:0:0:FFFF: o en forma comprimida: :: ::FFFF: CPTM - Una breve introducción a IPv6 Nov 2007

24 CPTM - Una breve introducción a IPv6Direcciones IPv6 (7) IPv6 utiliza la misma notación CIDR de IPv4 dirección-IPv6/largo-del-prefijo 2001:0DB8:0000:CD30:0000:0000:0000:0000/60 2001:0DB8::CD30:0:0:0:0/60 La notación de prefijos (dirección de red o de subred) es igual a la notación CIDR, en donde un prefijo de dirección IPv6 es representado como dirección-IPv6/largo-del-prefijo donde "dirección-IPv6" es cualquiera de las notaciones mencionadas anteriormente y "largo-del-prefijo" es un numero entre 0 y 128 que indica cuantos bits de la dirección IPv6 corresponden a la mascara de red (o subred). Así, por ejemplo, estas son representaciones válidas de un prefijo de red de longitud de 60 bits representado en hexadecimal como 20010DB80000CD3: 2001:0DB8:0000:CD30:0000:0000:0000:0000/60 2001:0DB8::CD30:0:0:0:0/60 2001:0DB8:0:CD30::/60 CPTM - Una breve introducción a IPv6 Nov 2007

25 CPTM - Una breve introducción a IPv6Direcciones IPv6 (7) IPv6 utiliza la misma notación CIDR de IPv4 dirección-IPv6/largo-del-prefijo 2001:0DB8:0000:CD30:0000:0000:0000:0000/60 2001:0DB8::CD30:0:0:0:0/60 Note como en el segundo caso se abrevió el tercer grupo y se representaron explicitamente los ultimos cuatro grupos, mientras que en el tercer caso se representa explicitamente el tercer grupo y se abrevian los ultimos cuatro. Esta tercera representacion es la mas común. Éstas, por otro lado, NO son representaciones legales de dicho prefijo 2001:0DB8:0:CD3/60 es válido omitir ceros precedentes, pero no los subsiguientes en un grupo de 16 bits (el CD3 debe ser CD30) 2001:0DB8::CD30/60 la dirección a la izquierda del "/" se expande 2001:0DB8:0000:0000:0000:0000:0000:CD30 CPTM - Una breve introducción a IPv6 Nov 2007

26 CPTM - Una breve introducción a IPv6Direcciones IPv6 (8) Dirección y prefijo de red juntos: 2001:0DB8:0:CD30:123:4567:89AB:CDEF/60 corresponde a la dirección 2001:0DB8:0:CD30:123:4567:89AB:CDEF con prefijo de red 2001:0DB8:0:CD30::/60 Es válido usar todos ceros o todos unos en el campo de host. Es posible representar una dirección IPv6 y su prefijo de red simultaneamente en una sola notación, por ejemplo 2001:0DB8:0:CD30:123:4567:89AB:CDEF/60 corresponde a la dirección 2001:0DB8:0:CD30:123:4567:89AB:CDEF con prefijo de red 2001:0DB8:0:CD30::/60 Al igual que IPv4, IPv6 divide la dirección IP en una porción de dirección de red y una porción de dirección de host. Es válido utilizar las direcciones con todos ceros o todos unos en el campo de host. CPTM - Una breve introducción a IPv6 Nov 2007

27 CPTM - Una breve introducción a IPv6Direcciones IPv6 (9) Cualquier prefijo es válido como máscara de subred. En la práctica, 64 bits de “interface ID” Direcciones IPv6 pueden utilizar cualquier prefijo como mascara de subred, igual que CIDR. En general, una dirección unicast va a tener el siguiente formato: | n bits | m bits | n-m bits | | global routing prefix | subnet ID | interface ID | En la práctica, el tamaño de "interface ID" es 64 bits. De esta manera,queda | n bits | 64-n bits | bits | donde "global routing prefix" es el prefijo asignado globalmente (bien sea por el ISP o RIR), "subnet ID" es la subred dentro de la organización (m bits disponibles para crear subredes) e "interface ID" es el identificador del equipo dentro de la subred. CPTM - Una breve introducción a IPv6 Nov 2007

28 CPTM - Una breve introducción a IPv6Direcciones IPv6 (10) Direcciones se pueden clasificar según su destino en Unicast Anycast Multicast Unicast es un identificador de una sola interfaz. Un paquete dirigido a una dirección unicast es entregado a la interfaz identificada con dicha direccion. También conocida como transmisión uno a uno. Anycast es un identificador de un conjunto de interfaces, usualmente ubicadas en multiples hosts. Un paquete dirigido a una dirección anycast es entregado a una sola de las interfaces identificadas con dicha dirección (la más "cercana", segun el protocolo de enrutamiento). Las direcciones anycast son sintacticamenbte identicas a las direcciones unicast, pero la dirección anycast debe ser demarcada como tal en el nodo. También conocida como transmisión uno a alguno. Multicast es un identificador de un conjunto de interfaces, usualmente ubicadas en multiples nodos. Un paquete enviado a una dirección multicast es entregado a todas las interfaces identificadas con dicha dirección. Direcciones multicast no pueden ser utilizadas como dirección origen de un paquete. También conocida como transmisión uno a muchos. CPTM - Una breve introducción a IPv6 Nov 2007

29 CPTM - Una breve introducción a IPv6Direcciones IPv6 (11) Tambien se pueden clasificar según su alcance (scope) en Link-local Site-local (abandonadas) Global Esta clasificación es ortogonal de la clasificación según su destino Direcciones IPv6 también se pueden clasificar según su alcance (scope): Link-Local: Son direcciones que solo pueden ser utilizadas para alcanzar nodos en el mismo enlace (por ejemplo en el mismo segmento Ethernet). Nunca son forwardeadas por un enrutador. Site-Local: Abandonadas. Eran solo validas dentro de un dominio en particular (sin definir claramente en que consiste un dominio) Global: Direcciones que pueden ser utilizadas para alcanzar nodos locales o remotos y pueden ser forwardeadas por un enrutador. Esta clasificación es ortogonal de la clasificación en unicast, anycast y multicast. CPTM - Una breve introducción a IPv6 Nov 2007

30 CPTM - Una breve introducción a IPv6Direcciones IPv6 (12) Algunas direcciones y prefijos especiales: 0:0:0:0:0:0:0:0 dirección no especificada. 0:0:0:0:0:0:0:1 dirección de loopback 2000::/3 direcciones unicast actualmente en uso. 2001:DB8::/32 reservadas para documentación 0:0:0:0:0:0:0:0 Es la dirección no especificada. No es una dirección válida y nunca se asigna a una interfaz. Indica la ausencia de dirección IPv6 válida (por ejemplo cuando un equipo está inicializando y todavia no tiene una dirección IPv6 válida para la interfaz, puede enviar solicitudes DHCPv6 con esta dirección de origen). 0:0:0:0:0:0:0:1 Es la dirección de loopback. Se usa para enviar paquetes dirigidos al mismo nodo. Equivalente a en IPv4. 2000::/3Direcciones unicast globales actualmente en uso. 2001:DB8::/32 Direcciones unicast reservadas para documentación (RFC3849). En cierta forma son equivalente a los bloques /8, /16 y /16 de IPv4 en el sentido de que no deben ser enrutadas en Internet, pero pueden ser utilizadas en redes privadas CPTM - Una breve introducción a IPv6 Nov 2007

31 CPTM - Una breve introducción a IPv6Direcciones IPv6 (13) FE80::/10 direcciones unicast link-local FF00::/8 direcciones multicast FF0X:: X va de 0 a F. Reservado FF02::1 todos los nodos en el enlace FF02::2 todos los enrutadores en el enlace FF02:0:0:0:0:1:FFXX:XXXX dirección del Solicited- Node FE80::/10 Direcciones unicast link-local. (RFC4291 sección 2.4 dice que es /10 pero sección dice que es /64). FF00::/8 Direcciones Multicast (RFC3306, RFC3956, RFC4489) FF0X:: Donde X va de 0 a F, estan reservadas y nunca debe ser usadas. FF02::1 Todos los nodos IPv6 en el enlace (ping6 -I eth0 FF02::1). Esta dirección de red reemplaza la dirección de broadcast utilizada en IPv4 cuando se necesita enviar un paquete que debe ser recibido por todos los nodos en una red. FF02::2 Todos los enrutadores IPv6 en el enlace. FF02:0:0:0:0:1:FFXX:XXXX Direccion del Solicited-Node (parcialmente equivalente a ARP). CPTM - Una breve introducción a IPv6 Nov 2007

32 CPTM - Una breve introducción a IPv6Encabezado IPv6 Version: 4 bits. Número de versión del protocolo Internet. = 6 Traffic Class: 8 bits. Clase de tráfico. Equivalente al campo "Traffic Type" de IPv4. Flow Label: 20 bits. Etiqueta identificadora de flujo. Permite identificar un conjunto de paquetes que corresponden a un mismo flujo o sesión (todos tienen la misma etiqueta). Payload Length: 16 bits. Entero sin signo. Tamaño del contenido (payload) del paquete IPv6, en octetos. No incluye el tamaño del encabezado IPv6. Next Header: 8 bits. Selector. Indica el tipo de encabezado inmediatamente subsiguiente al encabezado IPv6. Utiliza los mismos valores que el campo "Protocolo" de IPv4 (definido en RFC1700 y subsiguientes). CPTM - Una breve introducción a IPv6 Nov 2007

33 CPTM - Una breve introducción a IPv6Encabezado IPv6 Hop Limit: 8 bits. Entero sin signo. Es decrementado en 1 por cada equipo que hace forwarding del paquete. El paquete es descartado si Hop Limit llega a cero. Source Address: 128 bits. Dirección del originador del paquete. Destination Address: 128 bits. Dirección del destinatario del paquete. El encabezado IPv6 está optimizado para equipos de 64 bits. CPTM - Una breve introducción a IPv6 Nov 2007

34 CPTM - Una breve introducción a IPv6Encabezados IPv6 e IPv4 La figura muestra los encabezados IPv6 (arriba) e IPv4 (abajo) alineados a 32 bits. En esta figura los campos equivalentes en IPv4 e IPv6 tienen el mismo color. Los campos en blanco no tienen un equivalente directo en la otra versión. El primer aspecto importante es la diferencia de tamaño mínimo de los encabezados. En IPv4, el tamaño mínimo de un encabezado es 20 octetos, mientras que en IPv6 el encabezado mínimo tiene un tamaño de 32 octetos. Un encabezado más grande disminuye la eficiencia del protocolo porque los encabezados no constituyen información útil para los nodos que intercambian información - lo importante son los datos transportados - pero es compensado parcialmente en IPv6 al establecer un MTU de al menos 1280 octetos (comparado con un MTU mínimo de 68 octetos en IPv4) . Esto permite una alta eficiencia (97.5% = ( ) * 100 / 1280) al transmitir un alto volumen de datos. CPTM - Una breve introducción a IPv6 Nov 2007

35 CPTM - Una breve introducción a IPv6Encabezados IPv6 e IPv4 La versión del protocolo IP es obviamente muy importante porque permite identificar si se trata de un paquete IPv4 o IPv6. La definición es exactamente la misma para IPv4 que para IPv6 (y en general para todas las versiones del protocolo IP). Traffic Class/Type of Service: El significado original de Type of Service ha sido reemplazado por la semantica de diffserv (RFC2474) y es este el significado aceptado actualmente. IPv6 interpreta este campo también como el diffserv definido en RFC2474. Otra interpretación del significado de este campo es el ECN (Early Congestion Notification, RFC3168). CPTM - Una breve introducción a IPv6 Nov 2007

36 CPTM - Una breve introducción a IPv6Encabezados IPv6 e IPv4 Payload Length/Total Length: Puesto que en IPv6 el encabezado es de tamaño fijo, es suficiente con indicar el tamaño de los datos transportados por el paquete IPv6 (opciones IPv6 se consideran datos en este aspecto). IPv4, por el contrario, dado que el tamaño del encabezado es variable debido a las opciones que puede incluir, necesita dos parámetros: Total Length que indica el tamaño del paquete incluyendo el encabezado e Internet Header Length que indica el tamaño del encabezado IPv4 (tomando en cuenta que Total Length está medido en octetos mientras que el Internet Header Length está medido en unidades de 32 bits). A pesar del nombre en IPv6, incluye el tamaño de encabezados/opciones subsiguientes y no solamente el tamaño de los datos. CPTM - Una breve introducción a IPv6 Nov 2007

37 CPTM - Una breve introducción a IPv6Encabezados IPv6 e IPv4 Next Header/Protocol: La definición de Next Header en IPv6 es explicitamente compatible con la definición de Protocol en IPv4 (por ejemplo, TCP = 6 y UDP = 17), suplementado con nuevas definiciones necesarias para IPv6. Indica el tipo de encabezado subsiguiente al encabezado IPv4 o IPv6. El archivo /etc/protocols contiene una lista de protocolos. Hop Limit/Time To Live: Ambos son funcionalmente equivalentes. Si bien es llamado Time To Live en IPv4, en realidad es decrementado en uno por cada enrutador/gateway que procesa el paquete. El nombre Hop Limit es una descripción más ajustada a su funcionalidad. Source Address y Destination Address: Aparte de la diferencia de tamaño, Source Address y Destination Address describen el mismo tipo de información en IPv4 y en IPv6. CPTM - Una breve introducción a IPv6 Nov 2007

38 CPTM - Una breve introducción a IPv6Encabezados IPv6 e IPv4 El único encabezado nuevo en IPv6 es Flow Label: en IPv4 no existe funcionalidad equivalente al Flow Label de IPv6. En IPv4 un flujo se suele identificar utilizando la tupla (dirección de origen, dirección de destino, puerto de origen y puerto de destino), lo cual requiere inspección del protocolo de más alto nivel (TCP, UDP o similar). Ahora vamos a revisar aquellos campos en IPv4 que no estan presentes en el encabezado IPv6. Internet Header Length: Este campo no es necesario en IPv6 simplemente porque el encabezado IPv6 tiene un tamaño fijo. Identification, Flags, Fragment Offset: Estos tres campos son requeridos para poder fragmentar paquetes en IPv4. En IPv6, un paquete IPv6 no puede ser fragmentado - aunque puede contener unos datos (payload) que sean fragmentos de paquetes de más alto nivel - y por lo tanto no hacen falta. Si el contenido del paquete IPv6 son fragmentos, se utiliza un "Next Header" que provee la funcionalidad apropiada. CPTM - Una breve introducción a IPv6 Nov 2007

39 CPTM - Una breve introducción a IPv6Encabezados IPv6 e IPv4 Header Checksum: IPv6 no realiza una verificación de integridad de los datos y confía en las capas inferiores para garantizar la integridad del paquete IPv6. Esto permite un procesamiento más rápido del paquete IPv6. Adicionalmente, en IPv4 el checksum de paquetes UDP es opcional, mientras que en IPv6 es obligatorio. Options: IPv4 permite un número variable de encabezados, cada uno con un tamaño pre-establecido. En IPv6, las opciones son encadenadas como siguientes encabezados (Next Header) y siguen un orden relativamente estricto. El mecanismo de encadenamiento de opciones en IPv6 se explica más adelante. Padding: Es necesario para garantizar que el encabezado tenga un tamaño múltiplo de 32 bits (recuerde que el Internet Header Length indica el tamaño del encabezado en múltiplos de 32 bits). CPTM - Una breve introducción a IPv6 Nov 2007

40 CPTM - Una breve introducción a IPv6Encabezados IPv6 e IPv4 Vale la pena volver a hacer notar que el hecho de que el encabezado IPv6 sea de tamaño fijo permite un manejo más eficiente por parte de los nodos que tienen que hacer forwarding. En los pocos casos en que un enrutador requiera evaluar el contenido del siguiente encabezado (Next Header), lo puede hacer a través de un mecanismo subóptimo (en software y no en hardware, por ejemplo). Por el contrario, en IPv4 un enrutador debe ser capaz de recibir un paquete con un número y combinación arbitraria de opciones, lo que hacen el procesar un paquete IPv4 más complejo y por lo tanto más lento. El encabezado IPv4 está optimizado para equipos de 32 bits. CPTM - Una breve introducción a IPv6 Nov 2007

41 CPTM - Una breve introducción a IPv6Opciones en IPv6 En IPv6 la información opcional de la capa de internet es encodificada en encabezados separados - tambien llamadas extensiones (extensions) - que se colocan entre el encabezado IPv6 y el encabezado de capas superiores en un paquete. Cada una de estas opciones es identificada por un valor de Next Header. Un paquete IPv6 puede tener cero, uno o más encabezados de extensión, cada uno de ellos identificado por el campo Next Header en el encabezado anterior. La figura IPv6_Header_options.png muestra como estas extensiones van encadenadas. Esta organización simplifica el proceso de análisis de las extensiones, sobre todo porque se establece un orden relativamente estricto entre los distintos tipos de extensiones. CPTM - Una breve introducción a IPv6 Nov 2007

42 CPTM - Una breve introducción a IPv6Opciones en IPv6 Con una sola excepción, los nodos intermedios no necesitan procesar o examinar las extensiones de un paquete IPv6, lo que evita consumir recursos en analizar información que no es relevante para su operación. Considerando también el hecho de que un nodo debe dejar de verificar opciones si encuentra una opción que no reconoce, esto crea un mecanismo más flexible de opciones, donde nuevas opciones pueden ser definidas en un futuro sin necesidad de que todos los nodos en Internet tengan que saber como interpretar dichas opciones. CPTM - Una breve introducción a IPv6 Nov 2007

43 CPTM - Una breve introducción a IPv6ICMPv6 Definido en RFC4443 (antes RFC2463, RFC1885), actualizado en RFC4884. Mecanismo de control y reporte de errores (similar a IPv4). Funcionalidades adicionales (ARP, algunas funciones multicast). Definido en RFC4443 (antes RFC2463, RFC 1885), actualizado por RFC4884. ICMPv6 cumple una función equivalente a ICMP en IPv4, es decir, reportar errores en caso de problemas al originador del paquete. Pero ICMPv6 cumple algunas otras funciones que en IPv4 son satisfechas por otros protocolos. Por ejemplo, la funcionalidad provista en redes broadcast por ARP (asociar direcciones IP con direcciones de enlace MAC) es provisto por ICMPv6 - utilizando multicast. Adicionalmente, algunas funciones de multicast también son satisfechas por ICMPv6. CPTM - Una breve introducción a IPv6 Nov 2007

44 CPTM - Una breve introducción a IPv6ICMPv6 (2) ≤ 1280 octetos Bloquear todo ICMPv6 es mala idea. Tasa de emisión de paquetes limitada. Los paquetes ICMPv6 nunca tienen un tamaño superior a los 1280 octetos (para garantizar que ICMPv6 pueda ser entregado a su destino) y, a diferencia de ICMP para IPv4, el bloquear todos los paquetes ICMPv6 en firewalls casi garantiza problemas en las comunicaciones. Por esta razón, al implementar firewalls en IPv6 no se puede hacer una traducción directa de las reglas aplicadas para IPv4. Otro aspecto novedoso de ICMPv6 es que la especificación establece que un nodo debe ser capaz de limitar la tasa a la cual genera paquetes ICMPv6, y dicha tasa debe poder ser modificada administrativamente. Por el contrario, la especificación de ICMP establece que se debe enviar un paquete ICMP por cada error encontrado. El limitar la tasa de paquetes se simplifica la prevención de ciertos ataques. CPTM - Una breve introducción a IPv6 Nov 2007

45 CPTM - Una breve introducción a IPv6ICMPv6 (3) 1: Destination unreachable 2: Packet too big 3: Time exceeded 4: Parameter problem 128: Echo request 129: Echo reply 130: Multicast listener query 131: Multicast listener report 132: Multicast listener done 133: Router solicitation 134: Router advertisement 135: Neighbor solicitation 136: Neighbor advertisement 137: Redirect Tipo < 128: error Tipo ≥ 128: informacional Los paquetes ICMPv6 son identificados por un tipo (Type), que puede tomar un valor entre 1 y 255, y un código (Code) que especifica con más detalle la naturaleza del mensaje de un tipo dado. Los mensajes ICMPv6 con tipo menor a 128 indican errores, mientras que aquellos iguales o mayores a 128 no son consecuencia de un error sino que se consideran "informacionales". Algunos tipos de mensajes ICMPv6 son: 1: Destination unreachable 2: Packet too big 3: Time exceeded 4: Parameter problem 128: Echo request 129: Echo reply 130: Multicast listener query 131: Multicast listener report 132: Multicast listener done 133: Router solicitation 134: Router advertisement 135: Neighbor solicitation 136: Neighbor advertisement 137: Redirect message CPTM - Una breve introducción a IPv6 Nov 2007

46 CPTM - Una breve introducción a IPv6ICMPv6 (3) 1: Destination unreachable 2: Packet too big 3: Time exceeded 4: Parameter problem 128: Echo request 129: Echo reply 130: Multicast listener query 131: Multicast listener report 132: Multicast listener done 133: Router solicitation 134: Router advertisement 135: Neighbor solicitation 136: Neighbor advertisement 137: Redirect Tipo < 128: error Tipo ≥ 128: informacional Los mensajes "Neighbor Solicitation" y "Neighbor Advertisement" se utilizan en el mapeo de direcciones de bajo nivel (MAC) a direcciones IPv6. Por ejemplo, cuando un nodo necesita encontrar la MAC de otro nodo en el mismo enlace (subred), envia un Neighbor Solicitation a la dirección multicast correspondiente. La respuesta al Neighbor Solicitation consiste en un Neighbor Advertisement, que contiene la MAC e IP del nodo consultado. En conjunto con el mecanismo de Neighbor Discovery un nodo verifica periodicamente que su vecino todavia es alcanzable (responde a mensajes ICMPv6). Esto es particularmente útil en el caso de enrutadores, puesto que un nodo puede detectar que un enrutador ya no responde a ICMPv6, y cambiar la ruta por omisión. Definido en RFC4861 (antes RFC2461, RFC1970). CPTM - Una breve introducción a IPv6 Nov 2007

47 CPTM - Una breve introducción a IPv6IPv6 y DNS En RFC3596, más RFC3363, RFC3364, RFC2874, RFC3226 (antes en RFC3152, RFC1886). Nuevo registro tipo AAAA para direcciones IPv6 Definido en RFC3596, información adicional en RFC3363, RFC3364, RFC2874,RFC3226 (antes en RFC3152, RFC1886). DNS funciona esencialmente de la misma manera para IPv4 que para IPv6. La diferencia principal es que en lugar de un registro A para indicar la dirección IPv4 de un nodo, en IPv6 se utiliza un registro AAAA. Y se deben registrar todas las direcciones IPv6 unicast globales asociadas con dicho nodo. CPTM - Una breve introducción a IPv6 Nov 2007

48 CPTM - Una breve introducción a IPv6IPv6 y DNS (2) Dominio reverso en la zona “ip6.arpa”. Representado como secuencia invertida de dígitos hexadecimales: 2001:db8:0:8002:203:47ff:fea5:3085 es a.e.f.f.f b.d ip6.arpa (un solo registro) Para el registro reverso, en lugar de utilizar la zona "in-addr.arpa" utilizada para IPv4, se utiliza la zona "ip6.arpa". Y la dirección es representada como nombre como una secuencia de digitos hexadecimales (llamados nibbles en RFC3596) encondificado en orden reverso (el dígito menos significativo primero, seguido por el segundo digito menos significativo, y así sucesivamente) separados por puntos y con el sufijo ip6.arpa al final. De manera que, por ejemplo, la dirección IPv6: 2001:db8:0:8002:203:47ff:fea5:3085 se representaria como a.e.f.f.f b.d ip6.arpa Note como es obligatorio incluir los ceros que en la notación compacta se omiten. CPTM - Una breve introducción a IPv6 Nov 2007

49 CPTM - Una breve introducción a IPv6IPv6 y DNS (3) El protocolo utilizado para transportar los datos es independiente del tipo de datos transportados: se puede utilizar IPv4 para obtener registros IPv6 (AAAA) y viceversa. Soporte IPv6 tanto en el manejo de registros como en el transporte de datos en servidores y librerias resolver es bastante maduro. Es importante tener en cuenta que hay dos aspectos asociados a DNS. Uno es el correspondiente a los registros y otro es la transmisión de datos. Lo que hemos mencionado hasta ahora corresponde a la representación de IPv6 dentro del sistema DNS - o sea los registros DNS. El otro aspecto es el transporte de datos: que tipo de protocolo internet se utiliza para solicitar y recibir información de un servidor DNS: IPv4 o IPv6. Ambos aspectos son totalmente independientes: es posible conectarse via IPv4 a un servidor DNS para obtener registros IPv6 y viceversa. Soporte para IPv6 tanto en servidores DNS como en librerias resolver (las encargadas de hacer consultas DNS) es bastante maduro. Un administrador no debe tener problema para poder instalar un servidor DNS que pueda responder a solicitudes AAAA. CPTM - Una breve introducción a IPv6 Nov 2007

50 CPTM - Una breve introducción a IPv6IPv6 y DNS (3) El protocolo utilizado para transportar los datos es independiente del tipo de datos transportados: se puede utilizar IPv4 para obtener registros IPv6 (AAAA) y viceversa. Soporte IPv6 tanto en el manejo de registros como en el transporte de datos en servidores y librerias resolver es bastante maduro. Aunque varios de los servidores DNS de más alto nivel (los servidores de la zona ".") tienen conectividad IPv6, todavia (Octubre 2007) estos no publican registros AAAA. Parte de la razón es que encuestas de Internet muestran que todavia hay un número significativo de servidores DNS con versiones tan viejas que no saben como interpretar registros AAAA, y se teme que muchos de estos servidores se estrellen o fallen criticamente si reciben registros AAAA. Por otro lado, algunos paises ya tienen algunos de sus servidores DNS a nivel de pais con registros AAAA (Venezuela, por ejemplo, tiene 3 servidores accesibles via IPv6: 2001:1338::2, 2001:1338::3 y 2001:4f8:0:2::13; Japon y Nueva Zelanda también tienen servidores en IPv6). CPTM - Una breve introducción a IPv6 Nov 2007

51 CPTM - Una breve introducción a IPv6IPv6 y DNS (4) Para determinar si la libreria resolver de un equipo soporta IPv6: host o nslookup en caso afirmativo, recibe: has address has IPv6 address 2001:200:0:8002:203:47ff:fea5:3085 Para probar si su libreria resolver y servidor DNS es capaz de manejar registros AAAA: host o nslookup Si soporta IPv6, debe obtener una respuesta como has address has IPv6 address 2001:200:0:8002:203:47ff:fea5:3085 CPTM - Una breve introducción a IPv6 Nov 2007

52 CPTM - Una breve introducción a IPv6Habilitar IPv6 Cisco ipv6 unicast-routing ipv6 multicast-routing Linux modprobe ipv6 MS Windows XP (habilitado en Vista) ipv6 install El primer paso para poder utilizar IPv6 es habilitarlo en el Sistema Operativo de sus equipos. Cisco ipv6 unicast-routing ipv6 multicast-routing Linux modprobe ip6 MS Windows XP ipv6 install Windows Vista viene con IPv6 habilitado por omisión. CPTM - Una breve introducción a IPv6 Nov 2007

53 CPTM - Una breve introducción a IPv6IPv6 en aplicaciones Aplicaciones deben ser adaptadas para utilizar IPv6 (o una combinación de IPv6 e IPv4) Manejo de sockets Resolución de nombres Almacenamiento de direcciones IP Una mala implementación puede acarrear mal rendimiento. Aplicaciones que utilizan la red necesitan ser adaptadas para poder utilizar IPv6, en el manejo de sockets y la resolución de nombres. La nueva Application Programming Interface (API) es descrita en RFC3493 (antes RFC2553, RFC2133), RFC3542 (antes RFC2922) y el estandard IEEE En general, cualquier aplicación que se actualice para poder utilizar IPv6 mantiene un modo dual, es decir, puede utilizar tanto IPv4 como IPv6 (este modo de operación se llama dual stack), y las API estan diseñadas para permitir y facilitar este tipo de interacción. CPTM - Una breve introducción a IPv6 Nov 2007

54 CPTM - Una breve introducción a IPv6IPv6 en aplicaciones Aplicaciones deben ser adaptadas para utilizar IPv6 (o una combinación de IPv6 e IPv4) Manejo de sockets Resolución de nombres Almacenamiento de direcciones IP Una mala implementación puede acarrear mal rendimiento. Las modificaciones requeridas para hacer una aplicación dual stack no son demasiado significativas, pero es necesario tener cuidado porque una implementación básica puede ofrecer un peor rendimiento comparado con la misma aplicación soportando solamente IPv4. Esta desmejora puede ser causada por ejemplo al intentar conectarse a un equipo remoto utilizando IPv6 sin haber antes verificado que el equipo local tenga conectividad IPv6, o utilizando IPv6 cuando el administrador del equipo prefiere utilizar IPv4. Afortunadamente, varios sistemas operativos modernos permiten establecer políticas a nivel de equipo para establecer preferencias sobre ciertos tipos de direcciones (por ejemplo, IPv4 sobre IPv6). CPTM - Una breve introducción a IPv6 Nov 2007

55 CPTM - Una breve introducción a IPv6IPv6 en aplicaciones Algunas aplicaciones esperan recibir del usuario una dirección IPv6 rodeada por “[]”, sobre todo cuando hay posibilidad de confusión. Navegadores, por ejemplo: Otro aspecto concernientes a las aplicaciones es la forma como reciben direcciones IPv6 de parte de los usuarios. La notación mencionada en la sección "Direcciones IPv6" puede presentar inconvenientes cuando la aplicación utiliza los dos puntos ":" para separar campos o parámetros pasados por el usuario, como por ejemplo URLs que especifican el número de puerto: El sustituir el nombre del servidor "papa.indstate.edu" por una dirección IPv4 no presenta problema: CPTM - Una breve introducción a IPv6 Nov 2007

56 CPTM - Una breve introducción a IPv6IPv6 en aplicaciones Algunas aplicaciones esperan recibir del usuario una dirección IPv6 rodeada por “[]”, sobre todo cuando hay posibilidad de confusión. Navegadores, por ejemplo: Pero no se puede sustituir directamente por una dirección IPv6 porque causa confusión. La solución en estos casos consiste en encerrar la dirección IPv6 entre corchetes cuadrados "[]". En el caso de URLs, siempre es necesario encerrar la dirección IPv6 del servidor. Por ejemplo, el servidor tiene dirección IPv6 2001:200:0:8002:203:47ff:fea5:3085 y si quisieramos utilizar la dirección IPv6 en lugar del nombre en el URL del servicio web, se utilizaría: Los navegadores más populares (Firefox, Internet Explorer, Mozilla, Opera, Konqueror) ya tienen soporte para IPv6 y utilizarán IPv6 en caso de que el equipo local tenga conectividad IPv6. CPTM - Una breve introducción a IPv6 Nov 2007

57 CPTM - Una breve introducción a IPv6Status actual de IPv6 Es una tecnología madura Hay muy alto soporte (aunque todavia faltan algunos ISPs) Probablemente muchos equipos en sus redes locales ya tengan habilitado IPv6 aunque no lo usen ping6 -I eth0 ff02::1 Luego de más de diez años de trabajo, IPv6 es una tecnología madura. Aunque no ha alcanzado los niveles de adopción que sus autores esperaban, las bases fundamentales para su despliegue estan en su sitio. A nivel mundial una cantidad significativa de ISPs están en capacidad de proveer conectividad IPv6, servidores DNS y librerias resolver estan en capacidad de manejar solicitudes y respuestas que involucren IPv6, todos los sistemas operativos modernos lo soportan, y muchas aplicaciones muy populares también lo soportan. Es incluso probable que existan muchos más equipos que ya esten habilitando IPv6 a nivel de enlace (link-local) sin que sus administradores lo noten. Una forma de encontrarlos es ejecutando (desde Linux): ping6 -I eth0 ff02::1 CPTM - Una breve introducción a IPv6 Nov 2007

58 CPTM - Una breve introducción a IPv6Status actual de IPv6 En resumen, las razones por las cuales IPv6 no es utilizado en la misma escala que IPv4 no son técnicas, ese problema está resuelto desde hace años. La razón principal es simplemente inercia. Y al igual que otras "revoluciones" tecnológicas como la Web, P2P, WiFi, etc., eventualmente va a llegar a sus redes, probablemente sin aviso. Es sensato comenzar a familiarizarse con esta tecnología para que no nos sorprenda, instalando una pequeña red local, probar instalando registros AAAA en DNS (y haciendo consultas DNS), probando aplicaciones, instalando tuneles IPv6-en-IPv4 y muy importante, planeando la seguridad. El utilizar IPv6 ofrece varias ventajas, pero hay que estar dispuestos a hacer la inversión en tiempo y recursos para poder aprovecharlas. CPTM - Una breve introducción a IPv6 Nov 2007

59 Apénd. A: Sistema HexadecimalDec Hex Binario 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 16 dígitos distintos (sistema decimal utiliza 10 dígitos distintos): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Las letras A hasta F también se usan en minúsculas. El sistema de notación hexadecimal es un sistema de notación en base 16, lo que significa que utiliza 16 dígitos en cada posición (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F), y es capaz de representar 4 bits con cada dígito. Dec Hex Binaria Dec Hex Binaria A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 Los digitos hexadecimales de A a F son también representados en minúsculas CPTM - Una breve introducción a IPv6 Nov 2007

60 Sistema Hexadecimal (2)Un dígito hexadecimal es capaz de representar 4 bits. Para representar un número de 16 bits se requieren 4 dígitos hexadecimales. Binario: Hex: D B 8 = 0DB8 Por ejemplo, el número (binario) se representa en notación hexadecimal: Binario Hex D B 8 El número binario se puede separar en grupos de 4 bits, y cada grupo coresponde a un dígito hexadecimal: 0000 corresponde a 0 hex 1101 corresponde a D hex 1011 corresponde a B hex 1000 corresponde a 8 hex CPTM - Una breve introducción a IPv6 Nov 2007

61 Apéndice B: Encabezado IPv4El encabezado IPv4 está definido en RFC791 Version: 4 bits. Número de versión del protocolo IP. = 4 Internet Header Length (IHL): 4 bits. Entero sin signo. Tamaño del encabezado IPv4 en múltiplos de 32 bits. El mínimo valor aceptable es 5. El máximo es 15 y por lo tanto el tamaño máximo de un encabezado IPv4 es 480 bits. Type of Service: 8 bits. La semántica descrita en RFC2474 (diffserv) es la aceptada actualmente. Total Length: 16 bits. Es el tamaño del paquete IPv4, medido en octetos. Identification: 16 bits. Un valor identificador único asignado por el equipo de origen para ayudar durante el proceso de desfragmentación (permite identificar fragmentos que pertenecen a un mismo paquete). CPTM - Una breve introducción a IPv6 Nov 2007

62 Apéndice B: Encabezado IPv4Flags: 3 bits. Banderas de control Bit 0: reserved, must be zero Bit 1: (DF) 0 = May Fragment, 1 = Don't Fragment. Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments. Fragment Offset: 13 bits. Este equipo indica el desplazamiento del fragmento con respecto al comienzo de los datos del paquete IPv4 original no fragmentado. El desplazamiento se mide en unidades de 8 octetos (64 bits). El primer fragmento tiene un desplazamiento de cero. Time to Live: 8 bits. Indica el número máximo de intermediarios que pueden hacer forwarding del paquete antes de descartarlo. Opera de igual manera que el campo "Hop Limit" de IPv6. Protocol: 8 bits. Indica el protocolo de nivel superior utilizado en el campo de datos del paquete IPv4. CPTM - Una breve introducción a IPv6 Nov 2007

63 Apéndice B: Encabezado IPv4Header Checksum: 16 bits. Una suma de verificación del encabezado. Puesto que algunos campos del encabezado cambian (por ejemplo el Time to Live), debe ser verificado y recalculado cada vez que se procesa el encabezado. Source Address: 32 bits. Dirección IP del originador del paquete. Destination Address: 32 bits. Dirección IP del destinatario del paquete. Options: variable. Las opciones pueden o no aparecer en un paquete IPv4. Las opciones deben ser implementadas por el módulo IPv4 de todos los nodos (nodos finales y nodos de tránsito). Es opcional el utilizar una opción, no así su implementación. Padding: variable. Es utilizado para garantizar que el encabezado IPv4 termine en un múltiplo de 32 bits. Utiliza ceros para llenar el espacio faltante. CPTM - Una breve introducción a IPv6 Nov 2007