IPv6: Qué está retrasando su implantación? Qué ventajas supone?

Sergio Carrasco Mayans Sergio Carrasco Mayans
|

Internet: La última frontera. Un nuevo mundo virtual que nos da acceso a información cuya localización geográfica puede estar en nuestras antípodas, pero que a efectos prácticos está solo a un click a distancia. Y este mundo virtual  no es un lugar inhóspito y abandonado por la gente. Más bien al contrario.

Es un secreto a voces: el número de internautas no deja de crecer de forma abrumadora, mucho más allá de toda previsión. Con este número aumentando y aumentando cada vez más, han aparecido conceptos en numerosas discusiones de Internet hablando sobre algo llamado IPv6, y la necesidad de su implantación. Javier Prenafeta me dirige hacia una nota de prensa de la Comisión Europea al respecto, en la que se nos dice:

La creciente demanda de servicios de Internet implica que, si no se toman medidas, no habrá direcciones suficientes para respaldar el crecimiento previsto. El fomentar que tanto usuarios como proveedores de Internet adopten el último Protocolo Internet (IP versión 6 o IPv6) resultaría en un enorme aumento del espacio para direcciones, de manera muy parecida a la prolongación de los números de teléfono en el siglo XX. La Comisión ha fijado hoy para Europa el objetivo de conseguir que el 25 % de la industria, las autoridades públicas y los hogares utilicen IPv6 para 2010, y ha pedido una acción concertada a nivel europeo con el fin de que todos los agentes estén preparados para un cambio oportuno y eficiente que ahorre gastos adicionales a los consumidores y que aporte una ventaja competitiva a las empresas europeas innovadoras.

Relacionado con este tema, cabe mencionar que el 30 de mayo es el día IPv6 europeo. Si hay tanto interés en implantar IPv6, por qué está tardando tanto en realizarse? Y cuáles son las ventajas de este protocolo para que se respalde así?

En primer lugar, debemos analizar cómo afecta este aumento de internautas a la necesidad de actualizar la Red a IPv6, y para ello debemos entrar a analizar algunas características de este IPv4 que, según algunos se está quedando obsoleto.

Muchos habréis entrado en contacto con la IP presente en vuestros equipos, y ya sabéis que presenta el siguiente formato

Así, contamos con 4 cifras de 3 dígitos separadas por puntos, pero cada una de estas cifras no se mueven en el rango desde 0 hasta 999 que podemos pensar en primera opción y que pertenece a las posibilidades de la base 10. De forma similar a lo que mencioné en el caso de la capacidad de los discos duros, nos movemos en potencias de 2. Cada una de estas cifras corresponde, tal y como aparece en la imagen anterior, a 8 bits, con lo cual debemos acudir a las potencias de 2 para saber con cuántas posibilidades contamos para representar las IP que asignamos a los dispositivos que forman parte de la Red.

 Es decir, cada una de las cifras puede en teoría representar un máximo de 256 posibilidades (desde 0 hasta 255), pudiendo el conjunto de las 4 cifras (que suponen 4 x 8 = 32 bits) representar un máximo de más de 4.000.000.000 posibilidades, una cifra para nada desdeñable. El problema es que, pese a que esta cantidad es elevada, ya hemos comentado como el gran aumento de equipos que se incorporan a la Red, la falta de planificación a la hora de asignar grandes bloques de direcciones IP (principalmente debido a que se pensaba que jamás se llegarían a agotar efectivamente), así como la búsqueda de unificar todos los dispositivos dentro de una única Red ha comportado que poco a poco aumente la preocupación por el número de direcciones posibles, y es de ahí de donde viene esa preocupación por la implantación de la IPv6.

La IPv6 soluciona este problema contando ahora con 128 bits. Este cambio supone que finalmente podamos representar 340.282.366.920.938.463.463.374.607.431.768.211.456 direcciones diferentes (o 50.000.000.000.000.000.000.000.000.000 direcciones por cada habitante, con lo cual en principio tenemos para nuestros dispositivos personales), un número tan grande, que apenas cabe en una única línea de texto, y que según los cálculos que algunas personas han realizado, equivale prácticamente a 340 trillones de direcciones por cada pulgada cuadrada de la superfície de la Tierra. La gente de ArsTechnica lo resumión en un párrafo interesante

To put this into perspective: there are currently 130 million people born each year. If this number of births remains the same until the sun goes dark in 5 billion years, and all of these people live to be 72 years old, they can all have 53 times the address space of the IPv4 Internet for every second of their lives.

Con IPv6 podremos encontrarnos con direcciones del tipo

2001:cdba:0000:0000:0000:0000:3257:9652

Cada dígito se representa de forma hexadecimal (es decir, 16 posibilidades, desde 0 a F), agrupándose 4 de estos dígitos para formar uno de los 8 grupos de que consta la dirección IPv6, pudiéndose comprimir los grupos en que todos los dígitos son 0 a un solo 0, u omitiendo el espacio directamente, con lo cual podríamos dejar la dirección usada como ejemplo de la siguiente forma (que resulta equivalente) :

 2001:cdba:0:0::0:3257:9652

Este pequeño aumento en el número de direcciones IP posibles abre nuevas puertas a nuevos diseños e implementaciones de dispositivos en la Red global. Soluciones que se han venido utilizando para limitar la escasez de direcciones IP como es el uso de servidores NAT (Network Adress Translation) ya no serán necesarias. Recordemos como funcionaba esta clase de servidores

 

En nuestro ejemplo, pese a contar con 4 equipos en la red privada, toda la actividad en Internet se realiza a través de una única IP pública, realizando nuestro
gateway una labor de enmascaramiento de IP, sabiendo a qué equipo debe redirigir los resultados de cada operación en nuestra red interna. En el RFC 1918 nos encontramos con una serie de consecuencias a raíz de este diseño, reservando una serie de IPs para su uso en redes internas, que seguramente a muchos sonarán:

  • 10.0.0.0        -   10.255.255.255  (10/8)
  • 172.16.0.0     -   172.31.255.255  (172.16/12)
  • 192.168.0.0   -   192.168.255.255 (192.168/16)

Dado que la necesidad de uso de direcciones IP privadas desaparecerá al contar con un número de direcciones reales (con salida directa a Internet) superior a la que se puede necesitar en ningún momento, con las ventajas que ello comporta respecto al uso de determinadas aplicaciones.

Ahora debemos tener en cuenta un nuevo factor. El incremento geométrico en los dispositivos que se incorporan a la red difícilmente podría mantenerse en los rangos actuales de contar únicamente con equipos informáticos propiamente dichos. Ahora bien, en la actualidad debemos tener en cuenta el aumento de dispositivos móviles capaces de conectarse a la Red (PDAs, teléfonos móviles, las posibilidades cada vez van en aumento). En estos dispositivos debemos tener en cuenta varios factores importantes, entre ellos la importancia de un hecho nacido precisamente a causa de la naturaleza móvil de estos dispositivos: la necesidad de que el protocolo permita una movilidad del dispositivo. Pensemos en los cambios de red que un dispositivo como este deberá soportar, así como las consecuencias que podría tener en el caso que el cambio de subnet implicase directamente un cambio de IP en nuestro dispositivo móvil (las conexiones preestablecidas por aplicaciones podrían llegar a ser cerradas). Esto se puede solucionar con implementaciones a la hora de establecer la IP como la siguiente

Una implementación de este tipo (posible gracias a la longitud del IPv6) podría permitirnos mantener los últimos 64 bits, con tal de optimizar nuestra movilidad. Ahora bien, hay otros métodos que resultan mucho más adecuados, y basados en principios como la búsqueda de vecinos que nos aporta este protocolo. Un esquema típico de una conexión móvil basado en IPv6

En este ejemplo, nuestro dispositivo portátil adquiere una IP a la que denominaremos Home Address gracias al Home Agent (un router encargado de esta función), y que identifica al dispositivo en su red de origen. Este Home Agent se encarga de servir de enlace para que las comunicaciones enviadas a esta Home Address lleguen hasta su destino de forma efectiva. En el momento que nuestro dispositivo móvil se traslada a una nueva red, adquiere una nueva dirección (denominada care-of), que contará con el mismo prefijo que la red visitada. Esta nueva dirección es indicada a nuestro Home Agent mediante el proceso conocido como binding (mediante un Binding Update o BU), que comporta que el Home Agent realice funciones de proxy para nuestro acceso a la Red.

Ahora bien, a nosotros nos resulta más interesante que se pueda establecer una conexión directa sin tener que pasar por este Home Agent para cada operación (pensemos en la baja ineficiencia que este desarrollo comporta y la dependencia del Home Agent que supone). Esta labor resulta posible gracias a la optimización para ruteo ya incorporadas en IPv6 para movilidad. En el esquema se utiliza Return Routability (RR), un procedimiento perteneciente al protocolo Mobile IPv6 (y que busca eliminar eventuales problemas de seguridad), realizando posteriormente el envió de un BU al nodo de destino de nuestra conexión además de a nuestro Home Agent con tal de establecer una conexión directa.

Ahora bien, pese a que la mayor ventaja del IPv6 que se suele mencionar es precisamente este aumento en el número de direcciones, el IPv6 cuenta con otras ventajas de importante mención, empezando por el diseño de la estructura de la cabecera de los paquetes

El gráfico anterior nos muestra un diseño de cabecera flexible, en la que no siempre aparecen los mismos elementos (basta comparar el primer ejemplo, con únicamente 2 bloques, con el último supuesto en el que podemos ver 4 bloques). Ahora bien, cabe mencionar que en el caso de IPv6 el tamaño de la cabecera es de 40 bits (en contraposición al caso de IPv4 donde el tamaño puede ser de 20, 40 o 60 bits). No solo esto, sino que servicios como QoS (Calidad de Servicio), que se encontraban limitados en IPv4 (contaba con 3 bits para ello) se ven ampliamente mejorados (pensemos que para el caso de QoS pasamos a contar con 20 bits para la etiqueta de flujo) lo cual nos permite gestionar de forma más eficiente servicios como puede ser la VoIP, con un mayor rango de información a facilitar a través de estos paquetes respecto a cómo debe procesar una red el flujo de paquetes correspondientes a un determinado servicio, eliminando así el jitter y el echo que aparece eventualmente en esta clase de servicios.

La eficiencia en el diseño de las cabeceras IPv6 ha permitido que, pese a que las direcciones IPv6 son cuatro veces más largas que las direcciones IPv4, estas cabeceras sean solo el doble de grandes (40 bytes), gracias a decisiones como el permitir la inclusión de campos opciones que pueden llegar a ser hasta del tamaño de nuestros paquetes IPv6.

Otro tema importante es la implantación de medidas de seguridad. Si buscamos que los dispositivos móviles tengan esa capacidad (pensemos en la limitación en cuanto a la capacidad de proceso de algunos de nuestros terminales, así como de la batería que le da soporte) hay que buscar una solución efectiva, más aún cuando hablamos de la obligación a la hora de implementar estas medidas (y no una opción como sucede en el caso de IPv4). Finalmente se ha decidido implementar IPSec como obligatorio en el desarrollo de IPv6 (como podemos ver en el RFC 4301), así como una encriptación extremo a extremo. El establecimiento de esta obligación facilita a los programadores el tener en cuenta una medida presente en todos los equipos, facilitando así su uso y aumentando así la seguridad.

Todo esto suena muy bonito, pero no todo pueden ser ventajas, además de que deben existir otros factores a tener en cuenta para la lenta implementación de este protocolo. Y el más importante es que IPv4 e IPv6 no son directamente compatibles el uno con el otro, dado que el primero fue desarrollado como una evolución (más que como una extensión propiamente dicha) del segundo, con la imposibilidad de enviar datos desde una dirección IPv4 con destino a una dirección IPv6 (al menos en principio, encapsulado en IPv4 aparte)
. Esta característica ha obligado a desarrollar soluciones que permitan utilizar un protocolo u otro durante el período de transición, mediante métodos como son el uso de una pila dual en cada uno de los equipos

Este diseño es funcional, pero nos plantea problemas fundados en la base del diseño, como pueden ser los problemas de seguridad basados en cada uno de los protocolos soportados por esta doble pila. Pero abandonar completamente IPv4 de un día para otro resulta complicado. En primer lugar, IPv6 es algo nuevo, y como todo lo nuevo, tiene ciertos parámetros que son cambiados y mejorados (entre ellos, la implementación nativa de IPSec). Por otro lado, para que las direcciones IPv6 puedan ser utilizadas sin necesidad de contar con la posibilidad de utilizar eventualmente IPv4 debemos poder tener acceso a los mismos servidores a los que teníamos acceso con nuestro vetusto IPv4.

Por otro lado, durante este período de transición, podremos encontrar hosts que tendran al mismo tiempo una dirección de 32bits IPv4 y una dirección de 128bits IPv6. Nuestros DNS deberan devolvernos ambas direcciones en el momento en que las solicitemos (por esta razón aparecen los registros AAAA, en contraposición al registro A de IPv4), decidiendo nuestros equipos finalmente qué protocolo utilizará en función de sus posibilidades. Ahora bien, en el caso en que una dirección de destino IPv6 apunte a un equipo que no sea compatible con esta versión, podemos encontrarnos con un agujero negro en el espacio de direcciones DNS, excepción que deberá ser tenida en cuenta por los programadores.

Ahora pensemos en las aplicaciones que utilizamos día a día. Alguno recuerda lo que sucedió a causa de guardar los años únicamente en dos dígitos en algunos programas anteriores al año 2000? Pues traduciéndolo al ámbito de la IP, pensemos en lo que puede suceder en el caso en que las variables de programas que utilizan la red donde se almacena la dirección de nuestro host sean de 32 bits (recordemos que ésta era la longitud de las direcciones IPv4) e intenten posteriormente almacenar nuestras nuevas direcciones IPv6 para trabajar con ellas. Pensemos que una solución sencilla, como puede ser la traducción directa de los paquetes antes de ser enviados (en los casos en que esto sea posible) nos limitaría a las posibilidades de los protocolos IPv4 en muchos supuestos.

Otro tema es la concepción que tienen las empresas de los costes de adaptación a IPv6, en muchos casos interpretando que deben cambiar absolutamente todos sus equipos. La realidad es que, pese a los problemas que ya hemos comentado, es muy posible que los equipos soporten en mayor o menor medida IPv6, con lo cual el coste se trasladará a la adaptación de las aplicaciones mencionada en el anterior párrafo (con las oportunidades de negocio que estas adaptaciones puede comportar para las compañías de software). Y es que no resulta nada sencillo un cambio tan brusco de forma simultánea en tantos equipos como los que forman nuestros sistemas informáticos.

Compartir