18.2. IPv6: Internet de la próxima generación

Debido al surgimiento de la WWW (World Wide Web), Internet ha crecido de forma fulminante con un número de equipos que se comunican mediante TCP/IP que durante los últimos quince años va en constante aumento. Desde que Tim Berners-Lee, del CERN, (http://public.web.cern.ch) inventó la WWW en 1990, el número de hosts de Internet ha crecido de unos cientos a cien millones aproximadamente.

Como se ha mencionado, una dirección IPv4 consta sólo de 32 bits. Además, muchas direcciones IP se pierden, es decir, no se pueden usar debido a la forma en que están organizadas las redes. El número de direcciones disponibles en la subred es dos veces la capacidad del número de bits, menos dos. Una subred tiene, por ejemplo, 2, 6 ó 14 direcciones disponibles. Para conectar 128 hosts a Internet, por ejemplo, se necesita una subred con 256 direcciones IP, de las que son utilizables 254 porque se necesitan dos direcciones IP para la estructura de la subred en sí misma: la dirección de red básica y la dirección de difusión.

En el protocolo IPv4 actual, DHCP o NAT (traducción de direcciones de red) son los mecanismos típicos utilizados para eludir la posible falta de direcciones. Combinados con la convención de mantener los espacios de las direcciones públicas y de las privadas separados, estos métodos pueden mitigar la falta. El problema reside en su configuración, que es una instalación ardua y una carga que mantener. Para configurar un host en una red IPv4, se necesitan varios elementos de direcciones, como la propia dirección IP del host, la subred, la dirección de gateway y quizás la dirección de un servidor de nombres. Todos estos elementos deben conocerse y no se pueden derivar de ningún otro sitio.

Con IPv6, tanto la falta de direcciones como la configuración complicada se relegan al pasado. En las siguientes secciones se ofrece más información acerca de las mejoras y ventajas que ofrece IPv6 y acerca de la transición del protocolo antiguo al nuevo.

18.2.1. Ventajas

La mejora más importante y más visible que ofrece el protocolo nuevo es la enorme ampliación del espacio de direcciones disponible. Una dirección IPv6 está formada por valores de 128 bits en lugar de los 32 bits tradicionales. Esto proporciona varios cuatrillones de direcciones IP.

Sin embargo, las direcciones IPv6 no son diferentes de sus predecesoras en cuanto a la longitud. También tienen una estructura interna diferente que puede contener más información específica acerca de los sistemas y de las redes a las que pertenecen. En la Sección 18.2.2, “Tipos de direcciones y estructura” encontrará más información acerca de esto.

A continuación, se muestra una lista con algunas otras ventajas del nuevo protocolo:

Configuración automática

IPv6 proporciona a la red una capacidad “plug and play”, lo que significa que un sistema configurado recientemente se integra en la red local sin que haya que configurarlo de forma manual. El host nuevo utiliza el mecanismo de configuración automática para extraer su propia dirección a partir de la información que los routers vecinos ponen a su disposición, mediante un protocolo denominado protocolo ND descubrimiento de vecino. Este método no requiere intervención por parte del administrador y no es necesario mantener un servidor central para asignar direcciones (una ventaja adicional respecto al IPv4), donde la asignación automática de direcciones requiere un servidor DHCP.

Movilidad

IPv6 hace posible asignar varias direcciones a una interfaz de red al mismo tiempo. Esto permite a los usuarios acceder a varias redes fácilmente, algo que podría compararse con los servicios internacionales de itinerancia que ofrecen las compañías de telefonía móvil: si lleva el teléfono móvil al extranjero, el teléfono se registra en un servicio de dicho país en cuanto entra en el área correspondiente, de modo que podrá llamar y recibir llamadas desde el mismo número en todas partes, como si estuviera en su país.

Comunicación segura

Con IPv4, la seguridad de la red es una función complementaria. IPv6 incluye IPSec como una de sus funciones principales, lo que permite que los sistemas se comuniquen a través de un túnel de seguridad para evitar que los intrusos vean la información en Internet.

Compatibilidad inversa

Para ser realistas, sería imposible cambiar todo Internet de IPv4 a IPv6 a la vez. Por tanto, es fundamental que los dos protocolos puedan coexistir no sólo en Internet, sino también en un sistema. Esto se garantiza con direcciones compatibles (las direcciones IPv4 se pueden traducir en direcciones IPv6) y con el uso de varios túneles. Consulte la Sección 18.2.3, “Coexistencia de IPv4 y IPv6”. Además, los sistemas se pueden basar en una técnica de IP de stack dual para admitir los dos protocolos al mismo tiempo, lo que significa que tienen dos stacks de red completamente separados, de modo que no hay interferencias entre las dos versiones del protocolo.

Servicios personalizados mediante multidifusión

Con IPv4, algunos servicios como MIB tienen que difundir los paquetes a todos los hosts de la red local. IPv6 permite un enfoque mucho más preciso al habilitar los servidores para dirigirse a los hosts mediante la multidifusión, es decir, llegando a varios hosts como partes de un grupo (lo que es diferente de llegar a todos a través de la difusión o a cada host por separado a través de la monodifusión). Los hosts a los que se llega como grupo pueden depender de la aplicación en concreto. Hay algunos grupos predefinidos para llegar a todos los servidores de nombres (el grupo de multidifusión a todos los servidores de nombres), por ejemplo, o a todos los routers (el grupo de multidifusión a todos los routers).

18.2.2. Tipos de direcciones y estructura

Como ya se ha mencionado, el protocolo IP actual tiene dos deficiencias importantes: cada vez faltan más direcciones IP y la configuración de la red y el mantenimiento de las tablas de encaminamiento son tareas cada vez más complejas y costosas. IPv6 soluciona el primer problema ampliando el espacio de las direcciones hasta 128 bits. El segundo se contrarresta introduciendo una estructura jerárquica de direcciones, combinada con sofisticadas técnicas para asignar direcciones de red, además de multinodo (capacidad de asignar varias direcciones a un dispositivo, lo que proporciona acceso a varias redes).

Al utilizar IPv6, resulta útil conocer tres tipos de direcciones diferentes:

Monodifusión

Las direcciones de este tipo se asocian exactamente a una interfaz de red. Los paquetes con una dirección de este tipo se entregan sólo a un destino. Por tanto, las direcciones de monodifusión se utilizan para transferir paquetes a hosts por separado en la red local o en Internet.

Multidifusión

Las direcciones de este tipo están relacionadas con un grupo de interfaces de red. Los paquetes con direcciones de ese tipo se entregan en todos los destinos que pertenecen al grupo. Las direcciones de multidifusión las utilizan principalmente algunos servicios de red para comunicarse con ciertos grupos de hosts de una forma precisa.

Cualquier difusión

Las direcciones de este tipo están relacionadas con un grupo de interfaces. Los paquetes con una dirección de ese tipo se entregan al miembro del grupo más cercano al remitente, de acuerdo con los principios del protocolo subyacente de encaminamiento. Las direcciones de cualquier difusión se utilizan para facilitar que los hosts encuentren servidores que ofrezcan ciertos servicios en el área de red en cuestión. Todos los servidores del mismo tipo tienen la misma dirección de cualquier difusión. Siempre que un host solicita un servicio, recibe una respuesta del servidor más cercano, como determina el protocolo de encaminamiento. Si por algún motivo el servidor fallara, el protocolo selecciona de forma automática el segundo servidor más cercano, a continuación, el tercero, etc.

Una dirección IPv6 está formada por ocho campos de cuatro dígitos, cada uno de los cuales representa 16 bits escritos en notación hexadecimal. También se separan mediante dos puntos (:). Los bytes de ceros situados al principio de un campo se pueden eliminar, pero los ceros del campo o del final, no. Otra convención es que más de cuatro bytes consecutivos de ceros se pueden colapsar en dos signos de dos puntos. Sin embargo, sólo se permite :: por dirección. Este tipo de notación abreviada se muestra en el Ejemplo 18.3, “Dirección IPv6 de muestra”, donde las tres líneas representan la misma dirección.

Ejemplo 18.3. Dirección IPv6 de muestra

fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4
fe80 :    0 :    0 :    0 :    0 : 10 : 1000 : 1a4
fe80 :                           : 10 : 1000 : 1a4

Cada parte de una dirección IPv6 tiene una función definida. Los primeros bytes forman el prefijo y especifican el tipo de dirección. La parte central es la parte de red de la dirección, pero puede no utilizarse. El final de la dirección forma la parte del host. Con IPv6, la máscara de red se define indicando la longitud del prefijo después de una barra al final de la dirección. Una dirección, como se muestra en el Ejemplo 18.4, “Dirección IPv6 encargada de especificar la longitud del prefijo”, contiene información para que los primeros 64 bits formen la parte de red de la dirección y para que los últimos 64 formen la parte del host. En otras palabras, el 64 significa que la máscara de red se rellena con 64 valores de 1 bit de izquierda a derecha. Al igual que sucede con IPv4, la dirección IP se combina con AND con los valores de la máscara de red para determinar si el host se ubica en la misma red o en otra.

Ejemplo 18.4. Dirección IPv6 encargada de especificar la longitud del prefijo

fe80::10:1000:1a4/64

IPv6 reconoce varios tipos predefinidos de prefijos. Algunos de ellos se muestran en la Tabla 18.4, “Varios prefijos IPv6”.

Tabla 18.4. Varios prefijos IPv6

Prefijo (hex.)

Definición

00

Direcciones de compatibilidad para direcciones IPv4 y para direcciones IPv4 sobre IPv6. Éstas se utilizan para mantener la compatibilidad con IPv4, pero, para utilizarlas, sigue siendo necesario un router con capacidad para traducir paquetes IPv6 en paquetes IPv4. Varias direcciones especiales, como la del dispositivo de retrobucle, también tienen este prefijo.

2 ó 3 como primer dígito

Direcciones globales de monodifusión agregables. Como sucede con IPv4, se puede asignar una interfaz para que forme parte de una cierta subred. Actualmente, existen los siguientes espacios de direcciones: 2001::/16 (espacio de dirección de calidad de producción) y 2002::/16 (espacio de direcciones 6to4).

fe80::/10

Direcciones locales de enlace. Las direcciones con este prefijo no deberían encaminarse y, por tanto, sólo se debería llegar a ellas desde la misma subred.

fec0::/10

Direcciones locales de sitio. Éstas se pueden encaminar, pero sólo en la red de la organización a la que pertenecen. En efecto, son el equivalente de IPv6 del espacio actual de direcciones de red privada, como 10.x.x.x.

ff

Éstas son direcciones de multidifusión.

Una dirección de monodifusión consiste en tres componentes básicos:

Topología pública

La primera parte (que contiene también uno de los prefijos mencionados anteriormente) se utiliza para encaminar paquetes a través de Internet. Incluye información acerca de la compañía o de la institución que proporciona el acceso a Internet.

Topología del sitio

La segunda parte contiene información de encaminamiento acerca de la subred en la que se va a entregar el paquete.

ID de interfaz

La tercera parte identifica la interfaz en la que se va a entregar el paquete. Esto también permite que el identificador MAC forme parte de la dirección. Como el MAC es un identificador único y flexible codificado en el dispositivo por el fabricante de hardware, el procedimiento de configuración se simplifica de forma sustancial. De hecho, los primeros 64 bits de las direcciones se consolidan para formar el testigo EUI-64. De ellos, los últimos 48 bits se toman del MAC y los 24 restantes contienen información especial acerca del tipo de testigo. Esto también hace que sea posible asignar un testigo EUI-64 a las interfaces que no disponen de un MAC, como las basadas en PPP o en RDSI.

Además de esta estructura básica, IPv6 distingue entre cinco tipos diferentes de direcciones de monodifusión:

:: (no especificada)

El host utiliza esta dirección como dirección de origen cuando la interfaz se inicializa por primera vez, cuando la dirección no se puede determinar por otros medios.

::1 (retrobucle)

Dirección del dispositivo de retrobucle.

Direcciones compatibles con IPv4

La dirección IPv6 está formada por la dirección IPv4 y un prefijo que consiste en 96 bits cero. Este tipo de dirección de compatibilidad se utiliza para formar túneles (consulte la Sección 18.2.3, “Coexistencia de IPv4 y IPv6”) para permitir que los hosts IPv4 y IPv6 se comuniquen con otros que funcionan en un entorno IPv4 puro.

Direcciones IPv4 asignadas a IPv6

Este tipo de dirección especifica una dirección IPv4 pura en notación IPv6.

Direcciones locales

Éstos son dos tipos de direcciones para uso local:

local de enlace

Este tipo de dirección sólo se puede utilizar en la subred local. Los paquetes con una dirección de origen o de destino de este tipo no deberían encaminarse a Internet ni a otras subredes. Estas direcciones contienen un prefijo especial (fe80::/10) y el ID de interfaz de la tarjeta de red, cuya parte central consiste en bytes ceros. Las direcciones de este tipo se utilizan durante la configuración automática para comunicarse con otros hosts que pertenecen a la misma subred.

local de sitio

Los paquetes que tienen este tipo de dirección se pueden encaminar a otras subredes, pero no a Internet: deben permanecer dentro de la propia red de la organización. Dichas direcciones se utilizan para las intrarredes y son un equivalente del espacio de direcciones privadas definido por IPv4. Contienen un prefijo especial (fec0::/10), el ID de interfaz y un campo de 16 bits que especifica el ID de subred. De nuevo, el resto se rellena con bytes ceros.

IPv6 introduce una función completamente nueva que consiste en que cada interfaz de red consigue normalmente varias direcciones IP, con la ventaja de que se puede acceder a varias redes a través de la misma interfaz. Una de estas redes se puede configurar de forma completamente automática mediante el MAC y un prefijo conocido que hace que se pueda llegar a todos los hosts de la red local en cuanto se habilita IPv6 (mediante la dirección local de enlace). Cuando el MAC forma parte de la dirección, ésta es única en el mundo. Las únicas partes variables de la dirección son las que especifican la topología del sitio y la topología pública, en función de la red en la que funcione el host.

Para que un host retroceda y avance entre redes diferentes, necesita al menos dos direcciones. Una de ellas, la dirección personal, no sólo contiene el ID de interfaz, sino también un identificador de la red personal a la que pertenece normalmente (y el prefijo correspondiente). La dirección personal es una dirección estática y, como tal, no suele cambiar. Aún así, todos los paquetes destinados al host móvil se le pueden entregar, independientemente de si funciona en la red personal o fuera de ella. Esto es posible gracias a las funciones completamente nuevas introducidas con IPv6 como la configuración automática sin estado y el descubrimiento de vecino. Además de la dirección personal, un host móvil consigue una o varias direcciones adicionales que pertenecen a las redes externas en las que está en itinerancia. Éstas se denominan direcciones de auxilio. La red personal tiene un componente que envía los paquetes destinados al host cuando está en itinerancia. En un entorno IPv6, esta tarea la lleva a cabo el agente personal, que lleva todos los paquetes destinados a la dirección personal y los transmite a través de un túnel. Por otro lado, los paquetes destinados a la dirección de auxilio se transfieren directamente al host móvil sin ninguna desviación especial.

18.2.3. Coexistencia de IPv4 y IPv6

La migración de todos los hosts conectados a Internet de IPv4 a IPv6 es un proceso gradual. Los dos protocolos coexistirán durante algún tiempo. La coexistencia en un sistema se garantiza donde se produce una implementación de stack dual en los dos protocolos. Aún queda pendiente la cuestión de cómo debería comunicarse un host habilitado con IPv6 con un host IPv4 y cómo deberían transportarse los paquetes IPv6 por las redes actuales, que normalmente están basadas en IPv4. Las mejores soluciones ofrecen túneles y direcciones de compatibilidad (consulte la Sección 18.2.2, “Tipos de direcciones y estructura”).

Los hosts IPv6 más o menos aislados en la red (mundial) IPv4 se pueden comunicar a través de túneles: Los paquetes IPv6 se agrupan como paquetes IPv4 para desplazarlos a través de una red IPv4. Dicha conexión entre dos hosts IPv4 se denomina túnel. Para lograrlo, los paquetes deben incluir la dirección de destino IPv6 (o el prefijo correspondiente) y la dirección IPv4 del host remoto situado en el extremo receptor del túnel. Un túnel básico se puede configurar de forma manual con un acuerdo entre administradores de los hosts. También se denomina túnel estático.

Sin embargo, la configuración y el mantenimiento de los túneles estáticos suelen llevar demasiado trabajo como para utilizarlos en la comunicación diaria. Por tanto, IPv6 proporciona tres métodos diferentes de túnel dinámico:

6over4

Los paquetes IPv6 se agrupan de forma automática como paquetes IPv4 y se envían a través de una red IPv4 con capacidad de multidifusión. IPv6 se truca para ver la red entera (Internet) como una red de área local enorme (LAN). Esto hace posible determinar el extremo receptor del túnel IPv4 de forma automática. Sin embargo, el proceso de escalación de este método no es demasiado sencillo y se ve dificultado por el hecho de que la difusión múltiple IP está poco extendida en Internet. Por tanto, sólo proporciona una solución para redes corporativas o institucionales más pequeñas en las que se puede habilitar la multidifusión. Las especificaciones para este método se exponen en RFC 2529.

6to4

Con este método, las direcciones IPv4 se generan de forma automática a partir de direcciones IPv6, lo que permite a los hosts IPv6 comunicarse a través de una red IPv4. Sin embargo, se han detectado varios problemas relativos a la comunicación entre hosts IPv6 aislados e Internet. El método se describe en RFC 3056.

Tunnel Broker para IPv6

Este método se lleva a cabo en servidores especiales que proporcionan túneles específicos para los hosts IPv6. Se describe en RFC 3053.

[Important]Iniciativa 6bone

Como vestigio del “antiguo” Internet, ya existe una red distribuida en todo el mundo de subredes IPv6 conectadas mediante túneles. Ésta es la red 6bone (http://www.6bone.net), un entorno de prueba IPv6 que los programadores y los proveedores de Internet pueden utilizar para desarrollar y ofrecer servicios basados en IPv6 y adquirir la experiencia necesaria para implementar el nuevo protocolo. Encontará más información en el sitio de Internet del proyecto.

18.2.4. Configuración de IPv6

Para configurar IPv6, normalmente no es necesario realizar cambios en cada estación de trabajo. Sin embargo, se debe cargar la compatibilidad con IPv6. Para hacerlo, introduzca modprobe ipv6 como root.

Gracias al concepto de configuración automática de IPv6, a la tarjeta de red se le asigna una dirección en la red local de enlace. Normalmente, en las estaciones de trabajo no se lleva a cabo la gestión de tablas de encaminamiento. La estación de trabajo puede consultar a los routers de red, mediante el protocolo de anuncio de servicios, qué prefijo y gateways deberían implementarse. El programa radvd se puede utilizar para configurar un router IPv6. Este programa informa a las estaciones de trabajo acerca de qué prefijo y qué routers se deben utilizar para las direcciones IPv6. Como alternativa, utilice zebra para la configuración automática de las direcciones y del encaminamiento.

Consulte la página Man de ifup(8) para obtener información acerca de cómo configurar varios tipos de túneles mediante los archivos /etc/sysconfig/network.

18.2.5. Información adicional

La descripción anterior no explica el IPv6 exhaustivamente. Para obtener información más detallada acerca del nuevo protocolo, consulte la siguiente documentación en línea y los siguientes libros:

http://www.ngnet.it/e/cosa-ipv6.php

Serie de artículos que proporciona una introducción bien escrita a los aspectos fundamentales de IPv6. Buen manual para obtener las nociones básicas.

http://www.bieringer.de/linux/IPv6/

Aquí encontrará la ayuda de Linux IPv6 y muchos enlaces relacionados con el tema.

http://www.6bone.net/

Visite este sitio si desea entrar a formar parte de una red IPv6 con túneles.

http://www.ipv6.org/

Punto de partida para todo lo relacionado con IPv6.

RFC 2640

RFC fundamental acerca de IPv6.

IPv6 Essentials

Un libro que describe todos los aspectos importantes del asunto es IPv6 Essentials, escrito por Silvia Hagen (ISBN 0-596-00125-8).