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

Debido a la aparición de la WWW (World Wide Web), Internet y la cantidad de ordenadores que se comunican vía TCP/IP han crecido vertiginosamente. Desde la invención de la WWW por parte de Tim Berners-Lee, que trabajaba en el CERN (http://public.web.cern.ch/) en el año 1990, la cantidad de los ordenadores en Internet ha crecido de algunos miles hasta alrededor de 100 millones actualmente.

Como ya sabemos, una dirección IP sólo tiene 32 bits. Muchas de las direcciones IP se pierden por la forma en que están organizadas las redes. Internet se divide en subredes. El número de direcciones disponibles en una subred es dos elevado a la potencia del número de bits menos dos. Por eso una subred se compone por ejemplo de 2, 6, 14, 30, etc. direcciones IP. Para conectar por ejemplo 128 ordenadores a Internet, se necesita una subred con 256 direcciones IP de las que hay 254 útiles. Hay que restar dos direcciones para la dirección base de la red y para la de broadcast.

Para contrarrestar la previsible escasez de direcciones, en el protocolo utilizado actualmente, IPv4, se emplean mecanismos como DHCP o NAT (Network Address Translation). Ambos procedimientos atenúan relativamente la escasez de direcciones en Internet junto con la convención de zonas de direcciones de red públicas y privadas. El mayor inconveniente de estos métodos radica en su compleja configuración, que requiere además un mantenimiento muy intensivo. Para configurar un ordenador en la red IPv4 es necesario introducir numerosos datos como la dirección IP propia, la máscara de subred, dirección de la pasarela y en ocasiones incluso un servidor de nombres. Tiene que “saber” esta información que no puede deducirse de ningún sitio.

Con IPv6, la escasez de direcciones y la compleja configuración pertenecen al pasado. En las secciones siguientes le ofrecemos información adicional sobre las novedades y ventajas de IPv6 y sobre la transición del antiguo al nuevo protocolo.

22.2.1. Ventajas de IPv6

La ventaja más importante y llamativa del nuevo protocolo es la considerable ampliación del espacio direccional. Una dirección IPv6 contiene 128 bits en lugar de los tradicionales 32, con lo que el número de direcciones IP disponibles asciende a miles de billones

Las direcciones IPv6 se diferencian de sus predecesoras no sólo en la longitud, sino también en su estructura interna. Esta estructura permite codificar información especial sobre el sistema correspondiente y su red. Esta información se amplía en la Sección 22.2.2, “El sistema de direcciones de IPv6”.

Entre las ventajas importantes del nuevo protocolo cabe también destacar:

Configuración automática

IPv6 aplica a la red el principio “plug and play”. Un sistema recién instalado puede integrarse sin problemas en la red (local). El mecanismo automático de configuración del terminal deduce la propia dirección de la información transmitida a través del protocolo ND (“Neighbor Discovery Protocol”) por los enrutadores adyacentes. Este procedimiento no requiere la intervención del administrador y tiene la ventaja adicional de que, a diferencia del distribuidor de direcciones DHCP usado en IPv4, hace innecesario el mantenimiento de un servidor central con las direcciones disponibles.

Movilidad

IPv6 permite asignar varias direcciones paralelas a una interfaz de red. Esto significa para usted como usuario que puede acceder a diversas redes cómoda y fácilmente. Puede comparar este mecanismo con el “roaming” de las redes de telefonía móvil: aunque usted se encuentre en otro país, su teléfono móvil se introduce en la nueva red garantizando que siga disponible bajo el mismo número de teléfono. Usted llama por teléfono en la red externa como si se tratase de su red habitual.

Comunicación segura

Mientras que en IPv4 la comunicación segura constituía una función adicional, IPv6 incluye IPSec y por tanto la comunicación segura entre dos sistemas mediante un túnel a través de Internet.

Compatibilidad con la versión anterior

No es realista creer que la migración de la totalidad de Internet de IPv4 a IPv6 se va a llevar a cabo rápidamente. Por eso es importante que ambas versiones puedan coexistir en Internet e incluso en un mismo sistema. La coexistencia de ambos protocolos en Internet está asegurada por el uso de direcciones compatibles (las direcciones IPv4 pueden convertirse fácilmente a direcciones IPv6) y la utilización de distintos “túneles” (véase la Sección 22.2.3, “Coexistencia de IPv4 e IPv6”). El uso de las direcciones IP de doble pila (“dual-stack-IP”) posibilita el soporte de ambos protocolos en el mismo sistema. Cada protocolo utiliza su propia pila de red para que no se produzcan conflictos entre ambas versiones.

Multicasting: servicios a la medida

Mientras que en IPv4 algunos servicios (por ej. SMB) tenían que enviar por broadcast sus paquetes a todos los miembros de la red local, IPv6 permite un procedimiento muy distinto: con multicast es posible dirigirse al mismo tiempo a un grupo de ordenadores. Es decir, no a todos (broadcast) o sólo a uno (unicast), sino a un grupo. De qué grupo se trate depende de la aplicación. No obstante, existen algunos grupos ya definidos como “todos los servidores de nombres” (all nameservers multicast group) o “todos los enrutadores” (all routers multicast group).

22.2.2. El sistema de direcciones de IPv6

Como ya se ha mencionado, el protocolo IP utilizado hasta la fecha presenta dos inconvenientes importantes. Por un lado, las direcciones IP disponibles son cada vez más escasas y por otro, la configuración de red y la administración de tablas de enrutamiento son cada vez más complicadas y requieren un gran esfuerzo de mantenimiento. IPv6 resuelve el primer problema con la ampliación del espacio de direcciones a 128 bits. En cuanto al segundo problema, la solución se encuentra en la estructura jerárquica de direcciones, los sofisticados mecanismos de asignación de direcciones en la red y la posibilidad del “multi-homing”, es decir, la existencia de varias direcciones para cada interfaz con acceso a distintas redes.

En relación a IPv6 se distingue entre tres tipos de direcciones:

unicast

Las direcciones de este tipo pertenecen a una única interfaz de red y los paquetes con una dirección unicast se entregan a un solo destinatario. Las direcciones de esta clase se utilizan para dirigirse a ordenadores individuales en una red local o en Internet.

multicast

Las direcciones de este tipo hacen referencia a un grupo de interfaces. Los paquetes con una dirección multicast se entregan a todos los destinatarios pertenecientes a ese grupo. Este tipo de direcciones es utilizado principalmente por ciertos servicios de red para dirigirse a grupos determinados.

anycast

Las direcciones de este tipo hacen referencia a un grupo de interfaces. Los paquetes con una dirección anycast se entregan a los miembros del grupo más cercano al remitente según lo determine el protocolo de enrutamiento utilizado. Las direcciones de este tipo son utilizadas por terminales para encontrar servidores que ofrezcan un servicio determinado en su sector de red. Todos los servidores reciben la misma dirección anycast. Cuando un terminal solicita un servicio, el servidor que responde es aquel que se encuentre más cercano al ordenador según el protocolo de enrutamiento empleado. Si este servidor no está disponible, se utiliza automáticamente el segundo más cercano y así sucesivamente.

Las direcciones IPv6 se representan de forma hexadecimal y están formadas por ocho bloques de 16 bits cada uno separados por dos puntos (:). Está permitido suprimir bytes de cero al principio, pero no en medio ni al final de un grupo. Es posible sustituir más de cuatro bytes de cero sucesivos con el comodín ::. No se permite utilizar más de un comodín en una dirección. El proceso de suprimir los ceros se denomina en inglés “collapsing”. En el Ejemplo 22.3, “Ejemplo de dirección IPv6” se ilustra este procedimiento a través de una misma dirección escrita de tres formas equivalentes.

Ejemplo 22.3. Ejemplo de dirección IPv6

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 un significado determinado. Los primeros bytes forman un prefijo que indica el tipo de la dirección. La parte central hace referencia a una red o bien no representa nada, y el final de la dirección es la parte del ordenador o host. Las máscaras de red se definen en IPv6 mediante la longitud del prefijo que se indica al final de la dirección con /. Según la dirección representada en el Ejemplo 22.4, “Dirección IPv6 con prefijo”, los últimos 64 bits integran la parte del ordenador y los primeros 64 la parte de red de la dirección. En otras palabras, la cifra 64 significa que la máscara de red se rellena bit por bit comenzando por la izquierda. Por eso la máscara de red tiene 64 bits. Al igual que en IPv4, un enlace del tipo Y de la máscara de red con la dirección IP determina si el ordenador se encuentra en la misma subred o en otra.

Ejemplo 22.4. Dirección IPv6 con prefijo

fe80::10:1000:1a4/64

IPv6 admite distintos prefijos con un significado definido (ver la Tabla 22.4, “Diferentes prefijos IPv6”).

Tabla 22.4. Diferentes prefijos IPv6

Prefijo (hexadecimal)

Uso

00

Direcciones IPv4 y compatibles con IPv4 sobre IPv6. Son direcciones compatibles con IPv4. Un router adecuado tiene que convertir el paquete IPv6 a IPv4. Hay otras direcciones especiales (por ejemplo loopback device) que utilizan este prefijo.

Primera cifra 2 ó 3

(Aggregatable Global Unicast Address) Igual que ahora, también en el caso de IPv6 se puede recibir la asignación de subredes a través de un proveedor. En la actualidad existen los siguientes espacios de direcciones: 2001::/16 (production quality address space) y 2002::/16 (6to4 address space).

fe80::/10

(link-local) Las direcciones con este prefijo no pueden ser enrutadas y por tanto sólo se puede acceder a ellas en la misma subred.

fec0::/10

(site-local) Estas direcciones pueden ser enrutadas pero solamente dentro de una misma organización. Estas direcciones corresponden a las direcciones “privadas” actuales (por ejemplo 10.x.x.x).

ff

(multicast) Las direcciones IPv6 que comienzan por ff son direcciones multicast.

La estructura de las direcciones se divide en tres partes:

Public topology

La primera parte, que incluye entre otras cosas uno de los prefijos mencionados en las líneas superiores, sirve para enrutar el paquete en Internet. Contiene información codificada sobre el proveedor o la institución que proporciona la conexión de red.

Site topology

La segunda parte contiene información de ruta sobre la subred en la que ha de entregarse el paquete.

Interface ID

La tercera parte identifica de forma unívoca la interfaz a la que va dirigida el paquete. Aquí se permite utilizar la dirección MAC como parte de la dirección, lo que simplifica enormemente la configuración del ordenador al ser una dirección única en el mundo y estar determinada por el fabricante de hardware. De hecho, los primeros 64 bits se agrupan incluso en un identificador EUI-64 en el que los últimos 48 bits se toman de la dirección MAC y los 24 restantes incluyen información especial sobre el tipo de identificador. Esto también permite asignar un identificador EUI-64 a dispositivos sin dirección MAC (conexiones PPP y RDSI).

Partiendo de esta estructura básica, se distinguen cinco tipos de direcciones unicast:

:: (unspecified)

Esta es la dirección de salida utilizada por un ordenador cuando su interfaz de red se inicia por primera vez y todavía no dispone de información sobre la propia dirección.

::1 (loopback)

Dirección del dispositivo loopback.

Dirección compatible con IPv4

La dirección IPv6 está compuesta por la dirección IPv4 y un prefijo de 96 bits 0 al principio de la dirección. Este tipo de direcciones compatibles se utiliza en el tunneling (ver la Sección 22.2.3, “Coexistencia de IPv4 e IPv6”). De esta forma, los ordenadores IPv4/IPv6 pueden comunicarse con otros situados en redes exclusivamente IPv4.

Direcciones IPv6 asignadas a IPv4

Este tipo de dirección indica la dirección IPv6 de un ordenador IPv4.

Direcciones locales

Existen dos tipos de direcciones para el uso puramente local:

link-local

Este tipo de dirección se utiliza exclusivamente en la subred local. Los enrutadores no pueden enviar los paquetes que cuenten con una dirección de salida o destino de este tipo a Internet o a otras subredes. Estas direcciones se caracterizan por un prefijo especial (fe80::/10) y el ID de interfaz de la tarjeta de red. La parte central de la dirección se compone de bytes 0 sin significado. Este tipo de dirección se emplea en los procesos de configuración automática para dirigirse a ordenadores en la misma subred.

site-local

Este tipo de dirección puede enrutarse entre distintas subredes pero no fuera de una organización (site) hacia Internet. Estas direcciones se utilizan en intranets y equivalen a las direcciones privadas de IPv4. Además de un prefijo definido (fec0::/10) y del ID de interfaz, estas direcciones incluyen un campo de 16 bits en el que está codificado el ID de subred. El resto se rellena con bytes 0.

En IPv6 existe además una novedad: a una interfaz de red se le asignan por lo general varias direcciones IP, pudiendo así disponer de redes distintas. Una de ellas puede configurarse por completo automáticamente con ayuda de la dirección MAC y un prefijo conocido. De esta forma, todos los ordenadores de la red local (direcciones link-local) están disponibles inmediatamente después de iniciar IPv6 sin procesos de configuración adicionales. Gracias a las direcciones MAC integradas en las direcciones IP, estas direcciones pueden distinguirse a nivel global. Las partes de la “Site Topology” o “Public Topology” pueden variar dependiendo de la red en la que el ordenador se encuentre en ese momento.

Si un ordenador se “mueve” entre distintas redes, necesita al menos dos direcciones. Una de ellas (“home address”) contiene, además del ID de interfaz, información sobre la red local en la que funciona normalmente el ordenador y el prefijo correspondiente. La “home address” es estática y no se modifica. Todos los paquetes dirigidos a este ordenador se entregan tanto en la red local como en la externa. La entrega de paquetes en la red externa es posible gracias a importantes novedades del protocolo IPv6: stateless autoconfiguration y neighbor discovery. Además de la “home address”, un ordenador móvil cuenta con una o varias direcciones adicionales pertenecientes a las redes externas en las que se mueve. Este tipo de direcciones se denomina “care-of address”. La red local del ordenador móvil debe contener una instancia que “reenvíe” los paquetes dirigidos a la “home address” en caso de que el ordenador se encuentre en otra red. En entornos IPv6, esta función la realiza un “home agent” que entrega todos los paquetes dirigidos a la dirección local del ordenador móvil mediante un túnel. Aquellos paquetes cuya dirección destino sea la “care-of address” pueden ser entregados directamente a través del “home agent”.

22.2.3. Coexistencia de IPv4 e IPv6

La migración de todos los ordenadores en Internet de IPv4 a IPv6 no va a producirse de la noche a la mañana, sino que ambos protocolos coexistirán durante algún tiempo. La coexistencia en un ordenador se resuelve gracias a la doble pila o “dual stack”. No obstante, queda la pregunta de cómo se comunican los ordenadores IPv6 con ordenadores IPv4 y cómo se transporta IPv6 a través de las redes IPv4 aún predominantes. El método de tunneling y las direcciones compatibles (ver la Sección 22.2.2, “El sistema de direcciones de IPv6”) constituyen la respuesta a estos problemas.

Las islas IPv6 individuales en medio de una red (global) IPv4 intercambian sus datos a través de túneles. Este método consiste en empaquetar los paquetes IPv6 en paquetes IPv4 para poder transportarlos a través de una red exclusivamente IPv4. Un túnel se define como la conexión entre dos puntos finales IPv4. Aquí debe especificarse la dirección destino IPv6 (o el prefijo correspondiente) a la que se dirigen los paquetes IPv6 encubiertos y la dirección remota IPv4 en la que han de recibirse los paquetes enviados por el túnel. En el caso más sencillo, los administradores configuran manualmente estos túneles entre su red y el punto destino. Este método se denomina tunneling estático.

Sin embargo, el método manual no siempre basta para configurar y administrar los túneles necesarios para el trabajo diario en red. Por este motivo se han desarrollado tres métodos que permiten el tunneling dinámico.

6over4

Los paquetes IPv6 se empaquetan automáticamente en paquetes IPv4 y se envían a través de una red IPv4 en la que se ha activado el multicasting. De cara a IPv6 se actúa como si toda la red (Internet) fuese una única LAN (Local Area Network) de proporciones gigantescas. Así se detecta automáticamente el punto final IPv4 del túnel. Los inconvenientes de este mecanismo son una escalabilidad deficiente y el hecho de que el multicasting no está ni mucho menos disponible en toda Internet. Este método, que se describe en el RFC 2529, resulta adecuado para empresas pequeñas o redes de instituciones que dispongan de multicasting.

6to4

En este método se generan automáticamente direcciones IPv4 a partir de direcciones IPv6, permitiendo así que las islas IPv6 se comuniquen entre sí a través de una red IPv4. No obstante, también existen algunos problemas en la comunicación entre las islas IPv6 e Internet. Este método se basa en el RFC 3056.

IPv6 Tunnel Broker

En este método se utilizan servidores especiales que se encargan de crear automáticamente túneles para los equipos con direcciones IPv6. Este procedimiento se describe en el RFC 3053.

[Important]La iniciativa 6Bone

En medio de la “anticuada” Internet, existe una red mundial de subredes IPv6 conectadas entre sí por medio de túneles. Dicha red se conoce como 6Bone (http://www.6bone.net) y en ella se prueba IPv6. Los desarrolladores de software y proveedores que desarrollan u ofrecen servicios IPv6 pueden servirse de este entorno de pruebas para acumular experiencias con el nuevo protocolo. Puede obtener información adicional en la página web del proyecto 6Bone.

22.2.4. Configuración de IPv6

Para utilizar IPv6 normalmente no hace falta configurar nada especial en el lado del cliente. Únicamente es necesario cargar el soporte de IPv6 por ejemplo ejecutando el comando modprobe ipv6 como usuario root.

De acuerdo con la filosofía de autoconfiguración en IPv6, se asigna a la tarjeta una dirección de red dentro de la red link-local. Normalmente no se mantiene ninguna tabla de enrutamiento en un ordenador cliente, ya que éste puede consultar mediante el Router Advertisement Protocol los enrutadores que existen en la red y el prefijo que se ha de utilizar. El programa radvd sirve para configurar un enrutador IPv6. Este programa indica a los clientes el prefijo utilizado para las direcciones IPv6 y el/los enrutador(es) en la red. Asimismo, el programa zebra también se puede utilizar para la configuración automática de direcciones y enrutadores.

La página del manual de ifup (man ifup) contiene información muy útil sobre la configuración de túneles con ayuda de los archivos de /etc/sysconfig/network.

22.2.5. Literatura y enlaces sobre IPv6

El resumen de IPv6 presentado no pretende ser una introducción completa acerca del amplio tema IPv6. Para más información (en inglés), puede consultar la literatura impresa o en línea que se presenta a continuación:

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

Serie de artículos que describen de forma excelente los fundamentos de IPv6. Resulta muy adecuado para irse introduciendo en este tema.

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

CÓMOs de IPv6 en Linux y muchos enlaces.

http://www.6bone.net/

Acceder a IPv6 a través de un túnel.

http://www.ipv6.org/

Todo acerca de IPv6.

RFC 2640

El RFC introductorio sobre IPv6.

IPv6 Essentials

Información general sobre IPv6. Silvia Hagen: IPv6 Essentials. O'Reilly & Associates, 2002. - (ISBN 0-596-00125-8).


SUSE LINUX Manual de administración 9.3