domingo, 14 de agosto de 2011

Direccionamiento IPv6 (segunda y última subsección)

Inicio de la Segunda subsección (viene de la primera parte) -..... No hay mucho que decir con esta. Un poco atrazados, pero finalmente completamos el tópico sobre direccionamiento IPv6. Estas secciones son bastante largas en general, de modo que les agradecería si encuentran errores de cualquier tipo (un correo sería lo mejor y lo mismo es válido para todo el resto del blog). Encontré un material bastante útil sobre los problemas (y sus soluciones) que puedan presentar relativos al cambio o al soporte de su equipamiento con IPv6, creo que solo está en inglés, revisaré con calma y si es así se los traigo en estos días. Hoy es lunes, así que tenemos lunes de redes!, les deseo un muy buen inicio de semana y provecho!

En IPv4, las direcciones IP no tienen relación con las direcciones utilizadas por las tecnologías de redes subyacentes de capa enlace de datos. Un host que se conecta a una red TCP/IP utilizando una tarjeta de red Ethernet (NIC) que tiene una dirección Ethernet MAC y una dirección IP, pero los dos números son distintos y no relacionados de ninguna manera. Las direcciones IP se asignan de forma manual por los administradores sin ninguna consideración por la dirección física subyacente.

El beneficio del gran tamaño de las direcciones IPv6.
Con la revisión de direccionamiento en IPv6, se presentó la oportunidad de crear una mejor forma de asignación de direcciones IP unicast y direcciones físicas de red. La aplicación de esta técnica de mapeo superior fue una de las razones por la que las direcciones IPv6 se hicieron tan grandes. Con 128 bits en total, como hemos visto en el tema anterior, incluso con un total 45 bits reservados para el prefijo de red y 16 bits para la subred de sitio, todavía nos quedamos con 64 bits a utilizar para el identificador de interfaz, que es análogo al ID de host en IPv4.

Tener tantos bits a nuestra disposición nos ofrece una gran flexibilidad. En lugar de utilizar identificadores de hosts arbitrariamente inventados, podemos basar el ID de interfaz en la dirección de hardware de la capa de enlace de datos subyacente, mientras la dirección no sea mayor de 64 bits de longitud. Dado que prácticamente todos los dispositivos utilizan direcciones de capa de enlace de datos de 64 bits o menos, no hay ningún problema con el uso de estas direcciones para el identificador de interfaz en las direcciones IP. Esto proporciona un beneficio inmediato: hace las redes más fáciles de administrar, ya que no tenemos que grabar dos números arbitrarios para cada host. La dirección IP se puede derivar de la dirección MAC y el identificador de red. También significa que en el futuro podemos inferir la dirección IP de la dirección MAC y viceversa.

El formato EUI-64 modificado IPv6.
El mapeo real de las direcciones de capa de enlace a los ID de interfaces IP depende de la tecnología en particular. Por supuesto es esencial que todos los dispositivos en la misma red utilicen la misma técnica de asignación. Con mucho, el tipo más común de direcciones de capa 2 en redes son las direcciones MAC IEEE 802, utilizadas por Ethernet y otras tecnologías de redes del proyecto IEEE 802. Como usted ya sabe, estas direcciones tienen 48 bits, organizados en dos bloques de 24. Los 24 bits "superiores" se organizan en un bloque llamado identificador único organizacional (OUI), con diferentes valores asignados a las distintas organizaciones, los 24 bits "inferiores" se utilizan entonces para un identificador para cada dispositivo específico.

El IEEE ha definido un formato llamado identificador único extendido (Extended Unique Identifier) de 64-bit, abreviado EUI-64. Es similar al formato MAC de 48-bit, excepto que mientras que el OUI se mantiene en 24 bits, el identificador del dispositivo tiene 40 bits en lugar de 24. Esto le da a cada fabricante 65.536 veces más cantidad de direcciones de dispositivos dentro de su OUI.

Una forma de este formato, llamada EUI-64 modificado, ha sido adoptado para los identificadores de interfaz IPv6. Para obtener la identificación de la interfaz EUI-64 modificado de un dispositivo, basta con tomar la dirección EUI-64 y cambiar el bit séptimo desde la izquierda (el bit "universal/local" o "U/L") de cero a uno .

Conversión de direcciones MAC de 48 bits a identificadores IPv6 modificados EUI-64.
Por supuesto, la mayoría de los dispositivos siguen utilizando el viejo formato de 48 bits de direcciones MAC. Estos se pueden convertir en EUI-64 y luego a EUI-64 modificado para crear un identificador de interfaz IPv6. El proceso es el siguiente:

  1. Tomamos la porción de 24-bit OUI, los 24 bits mas a la izquierda de la dirección Ethernet, y los ponemos en los correspondientes 24 bits mas a la izquierda de la ID de la interface. Tomamos la parte local de 24 bits (los 24 bits mas a la derecha de la dirección Ethernet) y lo ponemos en los 24 mas a la derecha de la ID de la interfaz. 
  2. En los restantes 16 bits en el medio del ID de interfaz ponemos el valor "11111111 11111110" ("FFFE" en hexadecimal). 
  3. La dirección está ahora en la forma EUI-64. Cambiamos el bit "universal/local" (bit 7 desde la izquierda) de un cero a uno. Esto nos da el ID de interfaz EUI-64 modificado.

Concepto clave: Los últimos 64 bits de las direcciones IPv6 unicast se utilizan para los identificadores de interfaz, que se crean en un formato especial llamado EUI-64 modificado. Se puede emplear un proceso simple para determinar el identificador de interfaz desde la dirección MAC de 48 bits de un dispositivo como una tarjeta de interfaz de red Ethernet. Esto puede ser combinado entonces con un prefijo de red (prefijo de routeo e identificador de subred) para determinar la dirección IPv6 correspondiente al dispositivo.

Tomemos como ejemplo la dirección Ethernet 39-A7-94-07-CB-D0 (que se ilustra en la Figura 98):
Figura 98: Conversión de una dirección MAC IEEE 802 a identificador EUI-64 modificado.
Clic para ampliar.
  1. Tomamos "39-A7-94", los primeros 24 bits del identificador, y los ponemos en los 24 bits mas a la derecha de la dirección. La parte local del "07-CB-D0" se convierte en los últimos 24 bits del identificador. 
  2. A los 16 bits del centro se les da el valor de "FF-FE". 
  3. Cambiamos el séptimo bit de cero a uno, lo que cambia el primer octeto de "39" a "3B".
El identificador se convierte así en "3B-A7-94-FF-FE-07-CB-D0", o notación IPv6 hexadecimal con dos puntos, 3BA7:94FF:FE07:CBD0. Los primeros 64 bits de la dirección del dispositivo se suministran usando el formato unicast global de direcciones.

El único inconveniente de esta técnica es que si cambia el hardware físico, también lo hace la dirección IPv6.

Así como ciertos rangos de direcciones IPv4 están designados para direcciones reservadas, privadas y otras direcciones "inusuales", una pequeña parte del monstruoso espacio de direcciones IPv6 se ha reservado para las direcciones especiales. El propósito de estas direcciones y bloques de direcciones es proporcionar direcciones para ciertas necesidades especiales y para el uso privado en redes IPv6. Lo bueno de IPv6, por supuesto, es que piezas relativamente pequeñas de la misma siguen siendo enormes, así que si reservamos el 0,1% del espacio de direcciones para un uso particular, al final generará más direcciones de lo que nadie va a necesitar.

Tipos especiales de direcciones IPv6
Hay cuatro tipos básicos de direcciones IPv6 "especiales": reservadas, privadas, de bucle invertido y no especificadas.

Direcciones reservadas.
Una parte del espacio de direcciones se ha apartado como reserva para los distintos usos de la IETF, tanto presentes como futuros. A diferencia de IPv4, que tiene muchos pequeños bloques reservados en varios lugares en el espacio de direcciones, en IPv6 el bloque reservado está en el "top" del espacio de direcciones: las que empiezan por "0000 0000" (o 00 para el primer octeto hexadecimal) . Esto representa 1/256 partes del espacio de direcciones total. Algunas de las direcciones especiales a continuación provienen de este bloque. Las direcciones IPv4 empotradas también se ubican dentro de esta área de reserva.


Nota: Tenga en cuenta que las direcciones reservadas no son las mismas que las direcciones no asignadas. Este último término sólo se refiere a los bloques, cuyo uso aún no ha sido determinado.

Direcciones privadas / sin registrar / y no routeables.
Un bloque de direcciones está reservado para las direcciones privadas, al igual que en IPv4, excepto que como todo, en IPv6, el bloque de direcciones privadas es mucho mayor. Estas direcciones privadas son locales sólo para un enlace o sitio en particular y por lo tanto, nunca se enrutan fuera de la red de una empresa en particular.

Las direcciones privadas son indicadas por las direcciones con "1111 1110 1" en los primeros nueve bits. Por lo tanto, las direcciones privadas tienen un valor de primer octeto de "FE" en hexadecimal, con el siguiente dígito hexadecimal entre "8" y "F". Estas direcciones se dividen en dos tipos en función de su alcance, descritos a continuación.

Direcciones de bucle invertido (loopback).
Al igual que en IPv4, se ha previsto una dirección de bucle especial para pruebas; los datagramas enviados a esta dirección "regresan" (loopback), al dispositivo emisor. Sin embargo, en IPv6 sólo hay una dirección para esta función, no un bloque entero (que no era necesario en primer lugar, de verdad!) La dirección de loopback es 0:0:0:0:0:0:0:1, que normalmente se expresa utilizando la compresión de cero como "::1".

Dirección no especificada.
En IPv4, una dirección IP de todos a ceros tiene un significado especial, se refiere al hosts mismo, y se utiliza cuando un dispositivo no conoce su propia dirección. En IPv6, este concepto ha sido formalizado, y la dirección de todos a ceros (0:0:0:0:0:0:0:0) es el nombre de la dirección no especificada. Se suele utilizar en el campo de origen de un datagrama enviado por un dispositivo que busca configurar su dirección IP. La compresión de ceros se puede aplicar a esta dirección, ya que es todo ceros, la dirección se convierte simplemente en "::". (Yo mismo considero esto confuso. Creo que algo como "0:0" es mucho más claro, y lo suficientemente corto).


Concepto clave: En IPv6, se reserva una dirección de loopback especial, 0:0:0:0:0:0:0:1 ("::1" en formato comprimido) para propósitos de prueba. La dirección no especificada, 0:0:0:0:0:0:0:0 ("::" en formato comprimido) se usa para indicar una dirección desconocida. Se define un bloque de direcciones privadas o locales, que es el conjunto de todas las direcciones que comienzan con "1111 1110 1" en sus primeros nueve bits.

Direcciones IPv6 privadas tipos/ámbitos.
Ahora, vamos a darle otra mirada a las direcciones privadas. En IPv6, estas son llamadas direcciones de uso local, el nombre transmite con claridad para qué sirven. A veces también se denominan direcciones de capa de enlace. Recordemos que las direcciones IPv4 privadas eran de uso general cuando no se podían usar direcciones públicas para todos los dispositivos, a veces en combinación con tecnologías como Network Address Translation (NAT). En IPv6, no son necesarios trucos como el NAT. En vez de eso, las direcciones de uso local están destinadas a la comunicación que ha sido inherentemente diseñada para ser enviada exclusivamente a los dispositivos locales. Por ejemplo, las funciones de descubrimiento de vecinos que emplean el protocolo IPv6 Neighbor Discovery (ND) emplean direcciones de uso local.

El alcance de las direcciones locales es, obviamente, una red local, y no el alcance global de direcciones de Internet. Las direcciones locales de IPv6 se dividen en dos tipos, lo que refleja una mayor división del ámbito local.

Direcciones locales del sitio.
Estas direcciones tienen el alcance de un sitio completo, o de una organización. Permiten administrar el direccionamiento dentro de una organización, sin necesidad de utilizar un prefijo público. Los routers envían los datagramas usando direcciones locales dentro del sitio, pero no fuera de este a la Internet pública.

Las direcciones locales del sitio se diferencian de las direcciones de enlace local por tener el décimo bit con un valor de "1" a continuación de los nueve bits iniciales comunes a todas las direcciones IPv6 privadas. Por lo tanto, comienzan con "1111 1110 11". En hexadecimal, las direcciones locales de sitio comienzan con "FE" y a continuación un valor entre "C" y "F" para el tercer dígito hexadecimal. Por lo tanto, estas direcciones comienzan con "FEC", "FED", "FEE" o "FEF".

Direcciones de enlace local.
Estas direcciones tienen un menor alcance que las direcciones locales de sitio, sólo se refieren a un enlace físico particular (red física). Los routers no envían datagramas con direcciones de enlace locales en absoluto, ni siquiera dentro de la organización, sino que son sólo para la comunicación local en un segmento de red física en particular. Pueden ser utilizadas para la configuración de direcciones o para las funciones de ND como la resolución de la direcciones y el descubrimiento de vecinos.

Las direcciones de enlace locales se diferencian de las direcciones locales de sitio por tener el décimo bit con un valor de "0" a continuación de los nueve bits iniciales de la dirección comunes a todas las direcciones IPv6 privadas: "1111 1110 1". Por lo tanto, las direcciones de enlace locales comienzan con "FE" y a continuación toman un valor de entre "8" y "B" para el tercer dígito hexadecimal. Así pues, estas direcciones comienzan con "FE8", "FE9", "FEA" o "FEB".


Concepto clave: Las direcciones IPv6 locales de sitio permiten que los datos se envíen sólo a los dispositivos dentro de un sitio u organización. Comienzan con "FEC", "FED", "FEE" o "FEF" en hexadecimal. Las direcciones IPv6 de enlace locales se utilizan sólo en un determinado enlace local (red física), por lo general con fines especiales, tales como la resolución de direcciones o el descubrimiento de vecinos. Comienzan con "FE8", "FE9", "FEA" o "FEB".

Tenga en cuenta que las direcciones IPv6 locales de sitio son el equivalente de las direcciones privadas IPv4, ya que se dirigen a toda la organización. El concepto de ámbito de enlace local es algo nuevo en IPv6.

Debido a la importancia del Protocolo de Internet y el significado de los cambios realizados en IPv6, el despliegue de la nueva versión del protocolo no se producirá de un solo viaje. Se requiere una transición de IPv4 a IPv6, lo que requiere una planificación cuidadosa. Se prevé que la migración de IPv4 a IPv6 llevará muchos años. Discuto esto en un tema especial dedicado a las cuestiones de la transición IPv4/IPv6.

IPv6 es compatible con IPv4, siempre y cuando se empleen técnicas especiales. Por ejemplo, para permitir la comunicación entre "islas" de dispositivos IPv6 conectados mediante redes IPv4, se pueden emplear túneles. Para soportar la compatibilidad IPv4/IPv6 ha sido desarrollado un esquema que permite que las direcciones IPv4 puedan ser empotradas dentro de la estructura de la dirección IPv6. Este método toma direcciones IPv4 regulares y las pone en un formato IPv6 especial de modo que sean reconocidas como direcciones IPv4 por ciertos dispositivos IPv6.

Dado que el espacio de direcciones IPv6 es mucho más grande que el espacio IPv4, la incorporación de este último en el primero es fácil, es como meter un sedán compacto en la bodega de un barco de carga. El espacio de direcciones empotradas forma parte del bloque de direcciones reservadas cuya dirección comienza con ocho bits en cero, pero sólo una parte relativamente pequeña del mismo. Se emplean dos formatos de empotrado diferentes. Ambos tienen ceros en los primeros 80 bits de la dirección, y empotran la dirección IPv4 en los últimos 32 bits del formato de dirección IPv6. Se diferencian en el valor de los 16 bits restantes en medio (los bits del 81 al 96, contando desde la izquierda):

Los dos formatos de empotrado se utilizan para indicar las capacidades del dispositivo utilizando la dirección integrada.

Direcciones IPv6 compatibles con IPv4.
Estas son direcciones especiales asignadas a dispositivos son soporte para IPv6, llamados dispositivos de "doble pila" que hablan tanto IPv4 como IPv6. Ellas tienen los 16 bits del centro con un valor de cero, por lo que comienzan con una cadena de 96 ceros, seguida de la dirección IPv4. Un ejemplo de dicha dirección, mostrada en la Figura 99, sería 0:0:0:0:0:0:101.45.75.219 en notación mixta, o más brevemente,::101.45.75.219.

Clic para ampliar.
Direcciones IPv6 mapeadas a IPv4.
Estas son direcciones IPv4 regulares que se han asignado en el espacio de direcciones IPv6, y se utilizan para los dispositivos que solo soportan IPv4. Estas tienen los 16 bits de en medio, que siguen a los 80 bits iniciales, con un valor de "uno", y luego la dirección IPv4. Por lo tanto, si un dispositivo tiene la dirección IPv4 222.1.41.90, como la de la figura 100, que se representaría como 0:0:0:0:0:FFFF:222.1.41.90, o ::FFFF:222.1.41.90.

Clic para ampliar.

Concepto clave: La incorporación de direcciones IPv4 se utiliza para crear una relación entre una dirección IPv4 y una dirección IPv6 para ayudar en la transición de IPv4 a IPv6. Un primer tipo, las direcciones compatibles con IPv4-IPv6, se utilizan para los dispositivos que son compatibles tanto con IPv4 como con IPv6, y comienza con 96 bits a cero. El segundo tipo, las direcciones mapeadas IPv4, se utilizan para la asignación a dispositivos IPv4 que no son compatibles con IPv6 en el espacio de direcciones IPv6, y comienza con 80 ceros seguidos de 16 "unos".

Comparando direcciones IPv6 empotradas IPv4-compatible y IPv4-mapeadas.
La diferencia entre estos dos tipos de direcciones es sutil, pero importante. Los primeros 80 bits son siempre cero, así que cuando vea esto sabrá que es una dirección IPv4 empotrada de algún tipo. Las direcciones compatibles IPv4-IPv6 sólo se utilizan para los dispositivos que en realidad son compatibles con IPv6, la dirección IPv4-compatible, se "adiciona" su dirección IPv6 convencional. Por el contrario, si ve "FFFF" siguiendo a los primeros 80 bits, esto designa un dispositivos IPv4 convencional cuya dirección IPv4 se ha mapeado en el formato IPv6. No es un dispositivo con capacidad IPv6.

Una de las modificaciones más significativas en el modelo general de direccionamiento en IPv6 fue la modificación de los tipos básicos de direcciones y cómo se utilizan. Las direcciones unicast siguen siendo la opción para la gran mayoría de las comunicaciones como en IPv4, pero el "grueso" de los métodos de direccionamiento son diferentes en IPv6. La dirección de difusión (broadcast) como un tipo específico de dirección ha sido eliminada. En cambio, el soporte al direccionamiento multicast se ha ampliado y convertido en una parte necesaria del protocolo, y un nuevo tipo de direccionamiento llamado anycast se ha implementado.

Las direcciones IPv6 Multicast.
Vamos a empezar analizando el multicast en IPv6. La multidifusión se utiliza para permitir que un solo dispositivo envíe un datagrama a un grupo de destinatarios. IPv4 soporta el direccionamiento multicast utilizando el bloque de la clase D en el esquema de direccionamiento "classful". Bajo IPv6, las direcciones de multidifusión se asignan desde el bloque de multidifusión. Esto es 1/256 del espacio de direcciones, que consiste en todas las direcciones que comienzan con "1111 1111". Por lo tanto, cualquier dirección que inicie con "FF" en la notación hexadecimal con dos puntos es una dirección IPv6 multicast.

Los restantes 120 bits de espacio de direcciones son suficientes para permitir la definición de, bueno, tropecientos o tres direcciones de multidifusión. (Bueno, son oficialmente cerca de 1,3 billones de billones de billones de direcciones). Gran parte de la forma en que se organiza la asignación de direcciones unicast emplea un formato especial para dividir tantos bits, lo mismo se hace para las direcciones de multidifusión.

Formato de la dirección de multidifusión IPv6. 
El formato para las direcciones multicast se explica en la Tabla 65 y se ilustra en la Figura 101.


Clic para ampliar.
Ámbitos de multidifusión.
La noción de definir explícitamente el alcance de las direcciones de multidifusión es importante. Las direcciones de multidifusión de ámbito global a nivel mundial deben ser únicas en todo el Internet, pero las direcciones de ámbitos locales son únicas dentro de la organización. Esto proporciona una gran flexibilidad, ya que cada tipo de dirección de multidifusión en realidad viene en varias "versiones": una que difunde solamente dentro de un nodo, una en el enlace local (red local), una en el sitio local y así sucesivamente. El ámbito también permite a los routers determinar de inmediato hasta donde deben propagar los datagramas de multidifusión, para mejorar la eficiencia y eliminar los problemas de tráfico enviado fuera de la zona que se pretende. La figura 102 ilustra la noción de ámbito de forma gráfica (y es muy bonita, ¿no le parece?) 
Clic para ampliar.
Este diagrama muestra cómo la noción de ámbito de multidifusión IPv6 permite limitarse a esferas de influencia específicas. El ámbito de aplicación "más estrecho" es el ámbito de nodo local, con un valor de identificador de ámbito de 1. A medida que aumenta el valor del ID de ámbito, el ámbito se expande para cubrir la red local, el sitio, la organización y, por último, la totalidad de Internet.


Concepto clave: Las direcciones de multidifusión se utilizan para enviar datos a un número de dispositivos en una red interna de forma simultánea. En IPv6 cada dirección de multidifusión se puede especificar para una variedad de diferentes ámbitos, lo que permite a una transmisión el ser dirigida a una audiencia ya sea amplia o estrecha de dispositivos receptores.

Direcciones multicast bien conocidas.
La bandera de transitorios permite la determinación explícita de que direcciones de multidifusión están disponibles para su uso normal en comparación a las que se dejan a un lado como "conocidas". Se definen varias direcciones multicast predefinidas "bien-conocidas", reservando ciertos identificadores de grupo que se utilizan para un número de diferentes valores de ID de ámbito. La tabla 66 muestra estos valores, la "x" en el patrón de dirección de multidifusión es el dígito hexadecimal correspondiente al campo de 4 bits de ID de ámbito.

Las direcciones de multidifusión "todos los nodos" y "todos los routers" activan que solía llevar a cabo la dirección de broadcast en IPv4. Una vez más, el concepto de ámbito es importante en una multidifusión de este tipo porque no queremos tratar de enviar un mensaje a "todos los nodos" en toda la Internet, por ejemplo. Por lo tanto, cuando se utiliza la dirección "todos los routers" con un valor de ambito de 2, que significa "todos los routers en el enlace local". Si se utiliza con un valor de 5, significa entonces "todos los routers en este sitio".

Clic para ampliar.
Direcciones Multicast de nodo solicitado.
Además de las direcciones de multidifusión regulares, cada dirección unicast tiene una dirección especial llamada dirección de nodo solicitado. Esta dirección se crea a través de una asignación especial de la dirección unicast del dispositivo. Las direcciones de nodo solicitado son utilizadas por el protocolo IPv6 Neighbor Discovery (ND) para proporcionar una resolución de direcciones más eficiente que la técnica ARP utilizada en IPv4.

Todas las direcciones de nodo solicitado tiene su bandera T a cero y un ID de ámbito con un valor de 2, por lo que empiezan con "FF02". El ID del grupo de 112 bits se divide de la siguiente manera (ver Figura 103):
Clic para ampliar.
La dirección multicast del nodo solicitado se calcula a partir de una dirección unicast, tomando los últimos 24 bits de la dirección y anteponiéndole la dirección IPv6 parcial "FF02:0:0:0:0:1:FF". Para usar el ejemplo de la figura 95 se convierte en su dirección de nodo solicitado, FF02::1:FFC8:1fff.
  • 80 bits que constan de 79 ceros seguidos por un solo "uno", lo que significa que en la notación hexadecimal con dos puntos, los próximos cinco valores hexadecimales son "0000:0000:0000:0000:0001", o más brevemente, "0:0:0:0:1". 
  • 8 "unos": "FF". 
  • 24 bits tomados de los 24 bits inferiores de la dirección unicast.
Por lo tanto, estas direcciones comienzan con "FF02:0:0:0:0:1:FF" seguido de los 24 bits inferiores de la dirección unicast. Por lo tanto, el nodo con la dirección IP 805B:2D9D:DC28:0:0:FC57:D4C8:1fff tendría una dirección de nodo solicitado de FF02:0:0:0:0:1:FFC8:1fff (o FF02::1:FFC8:1fff).


Concepto clave: Cada dirección unicast tiene una dirección equivalente de nodo solicitado de multidifusión, creada a partir de la dirección unicast y utilizada cuando otros dispositivos necesitan llegar a él en la red local.

Las direcciones anycast son un tipo exclusivo de direcciones que son nuevas para el protocolo IP en IPv6, la implementación de IPv6 se basa en el material en el RFC 1546, el Servicio de host anycasting. Las direcciones anycast se pueden considerar una mezcla conceptual entre las direcciones unicast y multicast. Donde unicast dice "enviar a esta dirección" y multicast dice "enviar a todos los miembros de este grupo", anycast dice "enviar a cualquiera de los miembros de este grupo". Naturalmente, en la elección de a que miembros enviar, nosotros por razones de eficiencia normalmente enviaríamos al más cercano -- cercano en términos de enrutamiento. Por lo tanto, normalmente podemos considerar que anycast dice "enviar al miembro mas cercano de este grupo".

La idea detrás de anycast es la de habilitar una funcionalidad que antes era difícil de implementar en TCP/IP. Anycast fue pensado específicamente para proporcionar flexibilidad en situaciones en que necesitamos un servicio que es proporcionado por un número de diferentes servidores o routers, sin importar cual de ellos lo proporciona. En el routeo, anycast permite enviar datagramas a cualquier router que esté mas cercano de un grupo de routers equivalentes, para permitir el balance de carga entre routers y una flexibilidad dinámica si determinados routers quedan fuera de servicio. Los datagramas enviados a la dirección anycast serán automáticamente entregados al dispositivo más fácil de alcanzar.

Tal vez sorprendentemente, no hay un esquema de direccionamiento anycast especial: las direcciones anycast son las mismas que las direcciones unicast. Una dirección anycast se crea "automáticamente" cuando una dirección unicast es asignada a más de una interfaz.

Como multicast, anycast genera más trabajo para los routers, pues es más complicado que el direccionamiento unicast. En particular, mientras más alejado esté el dispositivos que comparte la dirección anycast, mayor complejidad se crea. El anycasting a través de la Internet global sería potencialmente difícil de implementar, y el anycasting IPv6 ha sido diseñado para dispositivos que están próximos entre sí, en general, en la misma red. Además, debido a la relativa inexperiencia de la comunidad de Internet en el uso de anycast, las direcciones anycast actualidad se utilizan sólo por los routers y no por hosts individuales.


Concepto clave: Las direcciones anycast son nuevas en IPv6 y se pueden utilizar para crear un grupo de dispositivos cualesquiera de los cuales puede responder a una solicitud enviada a una dirección IP única.

Una de las características de direccionamiento más interesantes y potencialmente valiosas implementadas en IPv6 es una funcionalidad que permite a los dispositivos en IPv6 configurarse realmente a si mismos de forma independiente. En el direccionamiento IPv4 los hosts se configuraban originalmente de forma manual. Más tarde, ciertos protocolos de configuración de hosts, como el DHCP daban la posibilidad a los servidores de poder asignar direcciones IP a los hosts que se unían a la red. IPv6 lleva esto un paso más allá, mediante la definición de un método para algunos dispositivos de configurar automáticamente su dirección IP y otros parámetros sin necesidad de un servidor. También define un método por el cual las direcciones IP en una red pueden ser re-numeradas (cambiadas en masa). Este es el tipo de características que hacen babear a los administradores de redes TCP/IP.

La función de autoconfiguración y re-numeración en IPv6 se define en el RFC 2462, "IPv6 Stateless Address Autoconfiguration". La palabra "stateless", contrasta este método con el método basado en servidores usando algo como DHCPv6, que se llama "stateful" (*). (Otra palabra como "classful" que me hace temblar.) Este método se conoce como "stateless", ya que comienza a partir de un "inicio muerto" sin información (o "estado") con la que pueda trabajar el host, y no tiene necesidad de un servidor DHCP.

Autoconfiguración "stateless" IPv6.
La autoconfiguración "stateless" explota varias otras nuevas características de IPv6, incluyendo las direcciones de enlace local, multicasting, el protocolo Neighbor Discovery (ND), y la capacidad de generar el identificador de interfaz de una dirección partiendo de la dirección de capa de enlace de datos subyacente. La idea general es tener un dispositivo que genera una dirección temporal hasta que pueda determinar las características de la red en la que está, y luego crear una dirección permanente sobre la base de esa información. En el caso de dispositivos con varias interfaces, la configuración automática se realiza para cada interfaz por separado, como era de esperar.

El siguiente es un resumen de los pasos que toma un dispositivo cuando utiliza la configuración automática "stateless":
  1. Generación de direcciones de enlace local: El dispositivo genera una dirección de enlace local. Recordemos que este es uno de los dos tipos de direcciones locales usadas en IPv6. Las direcciones de enlace locales llevan "1111 1110 10" en los primeros diez bits. La dirección generada utiliza estos diez bits seguidos de 54 ceros y luego el identificador de interfaz de 64 bits. Normalmente, esto se deriva de la dirección de la capa de enlace de datos (MAC), como se explica en el tema de los identificadores de interfaz, o puede ser una "señal" generada en alguna otra forma. 
  2. Comprobación de la unicidad de la dirección de enlace local: El nodo comprueba para asegurarse de que la dirección generada no está por alguna razón en uso en la red local. (Esto es muy poco probable que sea un problema si la dirección de enlace local proviene de una dirección MAC pero es más probable si se basa en una muestra generada.) El host envía un mensaje de solicitud de vecino utilizando el protocolo Neighbor Discovery (ND). A continuación, escucha un anuncio de vecino en respuesta, que indica que otro dispositivo ya está utilizando su dirección de enlace local, si es así, o genera una nueva dirección, o falla la configuración automática y debe emplear otro método. 
  3. Asignación de direcciones de enlace local: Asumiendo que pasa la prueba de unicidad, el dispositivo asigna la dirección de enlace local a su interfaz IP. Esta dirección puede ser utilizado para la comunicación en la red local, pero no en la Internet en general (dado que las direcciones de enlace local no se enrutan). 
  4. Contacto con el Router: A continuación el nodo intenta contactar con un router local para obtener más información referida a su configuración. Esto se hace ya sea mediante la escucha de mensajes de anuncio del router enviados periódicamente por estos, o mediante el envío de una solicitud al router específico para pedir información sobre qué hacer a continuación. Este proceso se describe en la sección sobre el protocolo IPv6 Neighbor Discovery
  5. Dirección del router: El router proporciona indicaciones al nodo sobre cómo proceder con la configuración automática. Puede que le indique al nodo de esta red usa autoconfiguración "statefull", y le indicará la dirección de un servidor DHCP para su uso. Alternativamente, le dirá al host como determinar su dirección de Internet a nivel mundial. 
  6. Configuración de direcciones globales: Suponiendo que la red emplee autoconfiguración "stateless", el host configurará por si mismo una dirección de Internet globalmente única. Esta dirección generalmente está formada por un prefijo de red proporcionado a la máquina por el router, junto con el identificador que el dispositivo genera en el primer paso.
Evidentemente, este método tiene numerosas ventajas sobre las configuraciones manual y basada en servidor. Es particularmente útil en el soporte a la movilidad de los dispositivos IP, ya que pueden trasladarse a las nuevas redes y obtener una dirección válida sin ningún conocimiento de los servidores locales o prefijos de red. Al mismo tiempo, se sigue permitiendo la gestión de direcciones IP a través de la versión (compatible con IPv6) de DHCP, si se desea. Los routers de la red local por lo general le indican a los hosts el tipo de configuración automática soportada usando banderas especiales en los mensajes ICMPv6 de anuncio de router.


Concepto clave: IPv6 incluye una característica interesante llamada autoconfiguración de direcciones "stateless", lo que le permite a un host determinar su dirección IPv6 utilizando su dirección de capa dos, y siguiendo un procedimiento especial.

Re-numeración de dispositivos IPv6.
La re-numeración de los dispositivos es un método relativo a la configuración automática. Como la configuración de los hosts, puede ser implementada a través de protocolos como DHCP, mediante el uso de "arrendamiento" de direcciones IP que expiran después de un período de tiempo. Bajo IPv6, las redes pueden ser re-numeradas teniendo routers que especifican un intervalo de caducidad para los prefijos de la red cuando se realiza la configuración automática. Más tarde, pueden enviar un nuevo prefijo para decirle a los dispositivos que regeneren sus direcciones IP. Los dispositivos en realidad puede mantener la dirección "obsoleta" por un tiempo y luego pasar a la nueva dirección.

Una técnica similar se ha definido también para re-numerar las direcciones de los routers, en el RFC 2894. Esta utiliza los mensajes especiales de ICMPv6 y se describe en un tema en esa sección.


(*)- Creo que les he aclarado antes el detalle de los términos "stateless" y "stateful", si no recuerden que refieren procesos en general que tienen (stateful) o no (stateless) en cuenta estados previos en el flujo de ejecución para ejecutar lo que sea que hagan (bloquear un paquete, si es un firewall, o decidir que hacer para obtener una dirección IP en el caso que nos ocupa) (NDT). Regresar.