Migración del protocolo IPv4 a IPv6 Óscar Ávila Mejı́a Depto. de Ingenierı́a eléctrica. UAM-I En el presente artı́culo se mostrará una breve descripción de cada uno de estos protocolos y se explicará en qué consiste la migración. Recibido: 22 de febrero de 2011 Aceptado: 01 de marzo de 2011. Abstract In early February 2011, the IANA delivered the last batch of IP addresses that were available (33 million) to the organization that is responsible for distribution across the Asia-Pacific region (in this case the APNIC). This means that IP addresses have been exhausted and therefore, each managing body of the five that exist, will have to use reserves that, it is estimated, will cover a period of seven months more. The question is: What comes next? Palabras clave: IPv4, IPv6, Protocolo de Internet, direccion IP. Introducción El protocolo de capa de red, IP (Protocolo de Internet) se diseñó teniendo en mente la interconexión de redes y para mantener unida a Internet. Su fin es proporcionar un medio para el transporte de datagramas del origen al destino, sin importar si éstas terminales están en la misma red o si hay otras redes entre ellas. The situation to be faced is the migration to a new protocol, that is to say leave IPv4 (Internet Protocol version 4) and adopt IPv6 (Internet Protocol version 6). En una red, cada host tiene asignada una dirección IP única que se utiliza para establecer comunicación con otros hosts en dicha red, las direcciones se expresan en formato decimal separado por puntos (25.120.240.100). Cada parte de una dirección (octeto1 ), ha de ser un número entre 0 y 255 y, como consecuencia, habrá un máximo de 4,294,967,296 (232 ) direcciones disponibles para uso en el caso de las direcciones IPv4. Por tanto, una dirección IP es un número que identifica de manera lógica una interfaz de red. Sin embargo, un gran número de direcciones se reservan para uso local y, por ello, no están disponibles para Internet. In the present article will show a brief description of each of these protocols and explain that is migration. Key words: IPv4, IPv6, Internet Protocol, IP adress. Resumen A inicios de febrero de 2011, la IANA entregó el último lote de direcciones IP que quedaban disponibles (33 millones) a la organización que se encarga de distribuirlas en la región Asia-Pacı́fico (en este caso la APNIC). Esto significa que se han agotado direcciones IP que quedaban libres y por tanto, cada organismo de gestión, de los cinco que existen, tendrá que utilizar las reservas de las que aun disponen con las cuales se estima que nos permitirá cubrir un periodo de siete meses más. La pregunta es: ¿Qué sigue después? El protocolo IPv4 Clases de direcciones IP Las direcciones IP pueden ser de diferentes tipos o clases (A, B, C, D y E). Una red de clase A se reserva, generalmente para los Gobiernos, aunque también llegó a hacerse para empresas transnacionales. Las direcciones de clase B se otorgan a medianas empresas. Los usuarios “normales” usarán direcciones de clase C, las direcciones de clase D se usan para multidifusión (multicast) y las direcciones clase E La situación a la que hay que enfrentarse es a la migración hacia un nuevo protocolo, es decir, abandonar IPv4 (Internet Protocol version 4) y adoptar IPv6 (Internet Protocol version 6). 1 Un octeto (octet en francés, derivado del latı́n octo y del griego okto, que significa ocho) es un grupo de ocho bits 55 56 ContactoS 79, 55–60 (2011) se reservan únicamente para investigación. Se pierde ası́ un importante rango de direcciones IP debido a que hubo una mala asignación de los bloques de direcciones clase A dando a instituciones, gobiernos y universidades más direcciones de las que realmente necesitaban. Los números de direcciones de red los administra la ICANN (Corporación de Internet para la Asignación de Nombres y Números) a fin de evitar conflictos. Teniendo en cuenta lo anterior, no hay suficientes direcciones IPv4 para enrutar públicamente y proporcionar una dirección distinta para cada terminal IPv4 (que incluye computadoras de escritorio, teléfonos móviles, dispositivos integrados y hosts virtuales). Este problema se minimiza mediante la NAT2 , por medio de la cual diversos host de redes de área local (LAN) puede compartir una única dirección IP pública de Internet. Los datos enviados por los hosts individuales a Internet indican tanto su dirección fuente como la IP pública utilizada y el router que proporciona el acceso tiene la capacidad de “rastrear” de qué host ha originado el tráfico en la red y direcciona el contenido correctamente. Aun ası́, esto no es suficiente dado que no todos los host están en una red local; además, con la expansión de las redes inalámbricas, conexiones de banda ancha que requieren una IP continua y terminales móviles, la conectividad se vuelve permanente. Según las clases de direcciones la distribución se hace de la siguiente manera: Clase A. Permite hasta 128 redes con 16 millones de hosts cada una. El primer octeto identifica la red y los tres restantes se asignan a los hosts. Clase B. Permite 16,382 redes con hasta 64k hosts. Los dos primeros octetos para identificar a la red y los dos restantes para asignar a los hosts. D permite multidifusión. Abarca las direcciones 224.0.0.0 a la 239.255.255.255 o La dirección de IP menor es 0.0.0.0 y la mayor es 255.255.255.255. Esquemáticamente esta distribución se puede observar en la figura 1. Figura 1. Distribución por clases de las direcciones IPv4. Usando este esquema, un paı́s puede tener asignada una dirección de red clase A y partir de allı́ crear y distribuir las redes necesarias según la administración ICANN Existen direcciones IP especiales, las que contienen valores 0 se refieren a la red local o host local y el valor -1 (todos 1) se usa como dirección de difusión para indicar todos los hosts de una red. La dirección 0.0.0.0 la usan los hosts cuando están en proceso de arranque únicamente; si la IP contiene 0 como número de red, se refiere a la red local, los demás números serán los distintos hosts. Si la IP contiene algún valor distinto de 0 y 1 como número de red y unos en los hosts se trata de multidifusión a una determinada red. Todas las direcciones de la forma 127.xx.yy.zz se reservan para pruebas de realimentación (loopbacks). Esto se observa en la figura 2. Clase C. Permite 2 millones de redes (tipo LAN) de hasta 256 hosts cada una (aunque algunas son especiales). Aquı́ se toman tres para identificar a la red y el ultimo se asigna a los hosts. 2 NAT: Traducción de Direcciones de Red (Network Address Translation) La idea básica que hay detrás de NAT es traducir las IPs privadas de la red en una IP pública (la que se tenga asignada al momento) para que la red pueda enviar paquetes al exterior; y traducir luego esa IP publica, de nuevo a la IP privada de la PC que envió el paquete, para que pueda recibirlo una vez llega la respuesta. Figura 2. Formato de direcciones IP especiales. Migración del protocolo IPv4 a IPv6. Óscar Ávila Mejı́a. Atendiendo al formato de direcciones, se cuenta con cuatro octetos los cuales forman palabras de hasta 32 bits que conforma el encabezado IPv4 que se describe a continuación (figura 3). Versión: 4 bits. Este campo lleva el registro de la versión del protocolo al que pertenece el datagrama, en este caso IPv4. Tamaño Cabecera (IHL): 4 bits. Debido a que la longitud del encabezado no es constante, se incluye un campo en el encabezado, IHL (Internet Header Length), que indica cuantas palabras de 32 bits contendrá. El valor mı́nimo es de 5, cuando no hay opciones y pueden ser hasta 15. Tipo de Servicio: 8 bits. Su finalidad es distinguir entre diferentes clases de servicios. Son posibles varias combinaciones de confiabilidad y velocidad. Por ejemplo, para voz es preferible la entrega rápida a la entrega precisa. Para transferir ficheros importa más la entrega libre de errores que la velocidad. Los 5 bits de menos peso (de derecha a izquierda) son independientes e indican caracterı́sticas del servicio como el costo, la fiabilidad, el rendimiento y el retardo. Los 3 bits restantes manejan la prioridad de los mensajes, ésta aumenta a medida que el número formado por estos 3 bits lo hace, y van desde 000: De rutina o 001: Prioritario, hasta 111: Control de red. En la práctica, los enrutadores ignoran este campo a menos que se les indique lo contrario. Longitud Total. 16 bits: Aquı́ se incluye el tamaño de todo el datagrama: tanto el encabezado como los datos, la longitud máxima es de 65,536 bytes. En caso de fragmentación este campo contendrá el tamaño del fragmento, no el del datagrama original. Identificación. 16 bits: Este campo es necesario para que el host de destino determine a qué datagrama pertenece un fragmento que llega. Todos los fragmentos de un datagrama contienen el mismo valor de identificación. Indicadores (DF, MF). 3 bits: Utilizado para especificar valores relativos a la fragmentación de paquetes: 57 • bit 0: No se utiliza; debe ser 0. • bit 1: si tiene el bit en 0, es Divisible, si es 1 entonces es No Divisible (DF). En este caso, si el paquete necesitara ser fragmentado, no se enviará. • bit 2: si el bit está en 0 indica que es el último Fragmento del datagrama, si es 1, es Fragmento Intermedio (le siguen más fragmentos) (MF) Desplazamiento de Fragmento. 13 bits: En paquetes fragmentados indica la posición. El primer paquete de una serie de fragmentos contendrá en este campo el valor 0. Tiempo de Vida (TTL). 8 bits: Es un contador que limita la vida de los paquetes. Se supone que cuenta el tiempo en segundos, permitiendo una vida máxima de 255. En la práctica, indica el máximo número de enrutadores que un paquete puede atravesar. Cada vez que da un salto, disminuye su valor en, como mı́nimo, una unidad. Cuando llegue a ser 0, el paquete será descartado. Esto evita que los datagramas permanezcan indefinidamente por la red. Protocolo. 8 bits: Indica el protocolo de las capas superiores al que debe entregarse el paquete, esto es, qué hacer con el datagrama que está manejando. Estos protocolos pueden ser TCP3 , UDP4 , etc. cada uno de ellos tiene un número definido. Suma de verificación del encabezado. 16 bits: Verifica únicamente el encabezado, permite controlar su integridad para establecer si se ha modificado durante la transmisión. La suma de comprobación es la suma de todas las palabras de 16 bits del encabezado (excluyendo el campo suma de comprobación). Esto se realiza de tal modo que cuando se suman los campos de encabezado, se obtenga un número con todos los bits en 1. Debe ejecutarse en cada salto. Dirección IP de origen. 32 bits: indican el número de red y el número de host del remitente y permiten que el destinatario responda. 3 TCP (Transmission Control Protocol) da soporte a diversas aplicaciones de Internet (intercambio de ficheros, navegadores, clientes ftp, etc.) y protocolos de aplicación. 4 UDP (User Datagram Protocol) es básicamente un protocolo orientado a mensajes. UDP es generalmente el protocolo usado en la transmisión de vı́deo y voz a través de una red. 58 ContactoS 79, 55–60 (2011) Figura 3. Encabezado del protocolo IPv4. Dirección IP de destino. 32 bits: indican el número de red y el número de host del destinatario. Clase de tráfico o prioridad. 8 bits: es parecido a tipo de servicio de IPv4 modificado para que siempre se verifique. Opciones: variable. Se diseñó para proporcionar un recurso que permitiera que las versiones subsiguientes del protocolo incluyeran información no presente en el diseño original. Originalmente se definieron cinco opciones (Tabla 1). Etiqueta de flujo. 20 bits: se usa para permitir tráficos con requisitos de tiempo real. El Protocolo IPv6 La caracterı́stica fundamental de IPv6 es que aporta un espacio de 2128 direcciones, equivalente a 3.40 × 1038 (esto es, 340, 282,366,920,938,463,463,374,607,431,768,211,456) o 340 sextillones de direcciones. En el caso de un paquete IPv6 la cabecera tendrá el formato que se muestra en la figura 4 como se ve en la figura, hay cambios respecto a la versión anterior. En IPv4 se tenı́an doce campos y ahora sólo ocho. Algunos campos se han renombrado: Longitud total → longitud de carga útil. 16 bits: es la longitud de los datos. Protocolo → siguiente cabecera. 8 bits: en lugar de usar cabeceras de longitud variable, ahora se emplean sucesivas cabeceras encadenadas, por esta razón desaparece el campo opciones. Tiempo de vida → lı́mite de saltos. 8 bits: Aquı́ ya se especifica claramente que la permanencia de un datagrama en la red es por un determinado número de saltos. Los nuevos campos son: El campo versión ahora será igual a 6 lógicamente. Los campos dirección fuente y dirección destino son ahora de 128 bits cada uno (equivalente a cuatro palabras de 32 bits según la estructura del encabezado. Por lo tanto, la longitud de la cabecera es de 40 bytes el doble que en el caso de IPv4. En resumen, las principales caracterı́sticas de IPv6 son: Mayor espacio de direcciones Autoconfiguración (Plug & Play). Seguridad intrı́nseca en el núcleo del protocolo (IPsec). Clase de Servicio (CoS) y calidad de servicio (QoS) Posibilidad de paquetes con carga útil de más de 65,535 bytes. Enrutado más eficiente en el backbone5 de la red. Multicast: envı́o de un mismo paquete a un grupo de receptores. Envı́o de un paquete a un receptor dentro de un grupo. 5 Un backbone está compuesta de un gran número de routers de alta capacidad que se encuentran interconectados que llevan los datos a través del mundo mediante cables de fibra óptica. Migración del protocolo IPv4 a IPv6. Óscar Ávila Mejı́a. 59 Tabla 1. Algunas opciones del protocolo IPv4 Opción Descripción Seguridad Especifica que tan secreto es el datagrama Enrutamiento estricto desde el origen Indica la ruta completa a seguir Enrutamineto libre desde el origen Da una lista completa de los enrutadores que no deben evitarse Registrar ruta Hace que cada enrutador agregue su dirección IP Marca de Tiempo Hace que cada enrutador agregue su dirección y su marca de tiempo. Figura 4. Encabezado del protocolo IPv6. Paquetes IP extensibles y eficientes sin que haya fragmentación en los routers, alineados a 64 bits (por tanto, preparados para los procesadores de 64 bits) y con una cabecera de longitud fija más simple que agiliza su procesado por parte del router. Debido a la estructura del protocolo, ésta permite que crezca y se adapte a nuevas aplicaciones o servicios que se requieran. Pueden obviarse los ceros iniciales, como en IPv4. Por ejemplo: 2004:0123:0004:00ab:0cde:3403:0001:0063 → 2004:123:4:ab:cde:3403:1:63. Los bloques contiguos de ceros se pueden comprimir empleando “::”. Esta operación sólo se puede hacer una vez. Por ejemplo: 2001:0:0:0:0:0:0:4 → 2001::4. El siguiente ejemplo no es válido: Representación de las direcciones IPv6 La dirección IPv6 tiene exactamente la misma función que su predecesor IPv4, pero dentro del protocolo IPv6. Está compuesta por 8 segmentos de 2 bytes cada uno, que suman un total de 128 bits, el equivalente, como ya se mencionó a unos 3.4×1038 hosts direccionables. La ventaja es evidente en cuanto a su capacidad de direccionamiento con respecto a la dirección IPv4. Su representación suele ser hexadecimal y para la separación de cada par de octetos se emplea el sı́mbolo “:”. Un bloque abarca desde 0000 hasta FFFF. Algunas reglas acerca de la representación de direcciones IPv6 son: 2001:0:0:0:2:0:0:1 → 2001::2::1 2001::2:0:0:1 ó 2001:0:0:0:2::1). (deberı́a ser La transición a IPv6 IPv4 proviene de una suposición basada en que una base de direcciones codificadas en 32 bits serı́a suficiente, aunque también es verdad que en esa época (1981) no se pensaba en la expansión de Internet y en la cantidad de dispositivos conectados a la red que hay hoy en dı́a. La transición a IPv6 no será un proceso inmediato ni tan simple como pulsar un botón que conmute al nuevo protocolo, la idea es que convivan ambos protocolos durante algunos años y que la implan- 60 ContactoS 79, 55–60 (2011) tación de IPv6 sea gradual. Para esto se han desarrollado mecanismos que permitirán la coexistencia y migración progresiva tanto de las redes como de los equipos de usuario. Estos mecanismos de transición son los siguientes: Doble pila. Esta solución implementa las pilas de ambos protocolos, IPv4 e IPv6, en cada nodo de la red. Cada nodo con doble pila en la red tendrá dos direcciones de red, una IPv4 y otra IPv6. Este procedimiento es fácil de desplegar y está ampliamente soportado. Sin embargo, tiene la desventaja de que la topologı́a de la red requiere dos tablas de encaminamiento y dos procesos de enrutamiento. Túneles. Aquı́ la conexión se logra encapsulando los paquetes IPv6 en paquetes IPv4. De esta manera, se pueden enviar paquetes IPv6 sobre una infraestructura IPv4. Hay muchas tecnologı́as de túneles disponibles, éstas difieren en el método que usan los nodos encapsuladores para determinar la dirección a la salida del túnel (el destino). Traducción. Este método es necesario cuando un nodo que sólo soporta IPv4 intenta comunicar con un nodo que únicamente soporta IPv6. Se traducen las cabeceras de los paquetes entre IPv4 e IPv6 (sólo los campos comunes). Una de las técnicas usadas es TRT (Transport Relay Translator) que traduce a nivel de la capa de transporte (donde se realiza la transferencia de datos libre de errores entre emisor y receptor). El dı́a 8 de junio del presente año se realizará una prueba de funcionamiento, llamado el World IPv6 Day, es decir, el dı́a en el que empresas como Google, Yahoo!, Facebook y Bing, pondrán sus servicios durante 24 horas, disponibles bajo IPv6 con el fin comprobar que todo marcha correctamente y que la transición, afectará mı́nimamente a los usuarios. Sin embargo, a pesar de que los sistemas operativos en su mayorı́a soportan IPv6, es posible que algunos usuarios tengan que modificar el firmware de sus routers por medio de su proveedor de servicios y algunas empresas tengan que hacer adecuaciones a su red. Como muestra de la convivencia de ambos sistemas desde hace tiempo se encuentran los siguientes casos: El gobierno de los Estados Unidos ordenó el despliegue de IPv6 en sus agencias federales en el año 2008 NIC México desde agosto de 2005 permite la utilización de direcciones IPv6 en sus sistemas y desde Marzo de 2009 opera servidores de DNS que soportan IPv6 para los dominios .mx. Durante la Campus Party de Brasil del pasado mes de enero, la empresa Telefónica realizó pruebas de IPv6 De cualquier forma, los usuarios tendremos que mantener, durante esta coexistencia, ambos protocolos activados (doble-pila) para tener acceso a los servicios que no tengan IPv6, y que sigan funcionando con IPv4. Conforme se vaya estableciendo el protocolo, además de una fuente inmensa de direcciones disponibles, IPv6 ofrecerá mayor seguridad y una mejor protección frente nivel de ataques por “fuerza bruta”. Además, facilitará la gestión mediante la autoconfiguración y agregar mecanismos de calidad de servicio, mediante flujos de tráfico. Conclusión Definitivamente, que durante el par de años o algo más en que ambos protocolos coexistirán, la mayor parte del trabajo será para las empresas proveedoras de servicios y los usuarios finales prácticamente seremos los últimos en migrar y lo que algunos han llamado el IPocalypse o el IPv4 ARPAgeddon, no será un colapso total de Internet, aunque es cierto que los servicios que no hayan trabajado para esta transición, es probable que terminen teniendo fallos y finalmente tengan que invertir en restablecer sus servicios y adaptarse. Referencias 1. Tanenbaum, Andrew S. Redes de computadoras 4a edición. Pearson, México. 2003. 2. Stewart III, Kenneth D. Diseño y soporte de redes de computadoras. Pearson, México 2009. 3. www.Iana.org 4. www.rfc.es.org cs