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.
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:
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.
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.
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.
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.
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).
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:
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.
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.
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.
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 |
|---|---|
| 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 |
(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:
|
| (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. |
|
(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 |
|
(multicast) Las direcciones IPv6 que
comienzan por |
La estructura de las direcciones se divide en tres partes:
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.
La segunda parte contiene información de ruta sobre la subred en la que ha de entregarse el paquete.
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.
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.
Este tipo de dirección indica la dirección IPv6 de un ordenador IPv4.
Existen dos tipos de direcciones para el uso puramente 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.
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”.
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.
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.
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.
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.
![]() | 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. | |
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.
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:
Serie de artículos que describen de forma excelente los fundamentos de IPv6. Resulta muy adecuado para irse introduciendo en este tema.
CÓMOs de IPv6 en Linux y muchos enlaces.
Acceder a IPv6 a través de un túnel.
Todo acerca de IPv6.
El RFC introductorio sobre IPv6.
Información general sobre IPv6. Silvia Hagen: IPv6 Essentials. O'Reilly & Associates, 2002. - (ISBN 0-596-00125-8).