Identificadores de interfaz de IPv6
Los últimos 64 bits de una dirección IPv6 corresponden al identificador de la interfaz, que es único para el prefijo de 64 bits de la dirección IPv6. Las formas de determinar un identificador de interfaz son las siguientes:
-
En el documento RFC 2373 se indica que todas las direcciones de unidifusión que utilicen los prefijos del 001 al 111 deben utilizar también un identificador de interfaz de 64 bits derivado de la dirección EUI-64 (<i>Extended Unique Identifier</i> o Identificador único extendido).
-
En el documento RFC 3041 se describe un identificador de interfaz generado aleatoriamente que cambia al cabo del tiempo para proporcionar un nivel de anonimato.
-
Un identificador de interfaz que se asigna durante la configuración automática de direcciones con estado (por ejemplo, mediante DHCPv6). Los estándares DHCPv6 se están definiendo actualmente. En la familia de Windows Server 2003 y en Windows XP, el protocolo IPv6 no admite la configuración de direcciones con estado ni DHCPv6.
-
Un identificador de interfaz configurado manualmente.
Identificadores de interfaz basados en direcciones EUI-64
El Institute of Electrical and Electronic Engineers (IEEE) define la dirección EUI-64 de 64 bits. Las direcciones EUI-64 se asignan a un adaptador de red o se derivan de las direcciones IEEE 802.
Direcciones IEEE 802
Los identificadores de interfaz tradicionales para los adaptadores de red utilizan una dirección de 48 bits que se llama dirección IEEE 802. Esta dirección consta de un Id. de compañía (también llamado Id. de fabricante) de 24 bits y un Id. de extensión (también llamado Id. de tarjeta) de 24 bits. La combinación del Id. de compañía, que se asigna de forma única a cada fabricante de adaptadores de red, y el Id. de tarjeta, que se asigna de forma única a cada adaptador de red en el momento del ensamblaje, genera una dirección única global de 48 bits. Esta dirección de 48 bits también se denomina dirección física, de hardware o de control de acceso a medios (MAC, <i>Media Access Control</i>).
.gif)
Los bits definidos en la dirección IEEE 802 son los siguientes:
-
Universal o local (U/L)
El bit U/L es el séptimo bit del primer byte y se utiliza para determinar si la dirección se administra de forma universal o local. Si el bit U/L está establecido en 0, la administración de la dirección corresponde a IEEE, mediante la designación de un Id. de compañía único. Si el bit U/L está establecido en 1, la dirección se administra de forma local. El administrador de la red ha suplantado la dirección de fábrica y ha especificado una dirección distinta.
-
Individual o grupo (I/G)
El bit I/G es el bit de orden inferior del primer byte y se utiliza para determinar si la dirección es individual (unidifusión) o de grupo (multidifusión). Si está establecido en 0, la dirección es de unidifusión. Si está establecido en 1, la dirección es de multidifusión.
En una dirección típica de adaptador de red 802.x, los bits U/L e I/G están establecidos en 0, lo que corresponde a una dirección MAC de unidifusión administrada de forma universal.
Direcciones IEEE EUI-64
La dirección IEEE EUI-64 representa un nuevo estándar para el direccionamiento de interfaces de red. El Id. de compañía sigue teniendo 24 bits de longitud, pero el Id. de extensión tiene 40 bits, por lo que se crea un espacio de direcciones mucho mayor para los fabricantes de adaptadores de red. La dirección EUI-64 utiliza los bits U/L e I/G de la misma forma que la dirección IEEE 802.
.gif)
Asignación de direcciones IEEE 802 a direcciones EUI-64
Para crear una dirección EUI-64 a partir de una dirección IEEE 802, los 16 bits de 11111111 11111110 (0xFFFE) se insertan en la dirección IEEE 802 entre el Id. de compañía y el Id. de extensión. En la siguiente ilustración se muestra la conversión de una dirección IEEE 802 en una dirección EUI-64.
.gif)
Asignación de direcciones EUI-64 a identificadores de interfaz IPv6
Para obtener el identificador de interfaz de 64 bits para las direcciones IPv6 de unidifusión, se complementa el bit U/L de la dirección EUI-64 (si es 1, se establece en 0; y si es 0, se establece en 1). En la ilustración siguiente se muestra la conversión de una dirección EUI-64 de unidifusión administrada de forma universal.
.gif)
Para obtener un identificador de interfaz IPv6 a partir de una dirección IEEE 802, primero se debe asignar la dirección IEEE 802 a una dirección EUI-64 y, después, complementar el bit U/L. En la ilustración siguiente se muestra el proceso de conversión de una dirección IEEE 802 de unidifusión administrada de forma universal.
.gif)
Ejemplo de conversión de una dirección IEEE 802
El host A tiene la dirección MAC de Ethernet de 00-AA-00-3F-2A-1C. Primero, se convierte al formato EUI-64 insertando FF-FE entre el tercer y cuarto bytes, con el resultado de 00-AA-00-FF-FE-3F-2A-1C. Después, se complementa el bit U/L, que es el séptimo bit del primer byte. El primer byte en formato binario es 00000000. Al complementar el séptimo bit, se convierte en 00000010 (0x02). El resultado final es 02-AA-00-FF-FE-3F-2A-1C que, cuando se convierte a notación hexadecimal con dos puntos, da como resultado el identificador de interfaz 2AA:FF:FE3F:2A1C. En consecuencia, la dirección local del vínculo correspondiente al adaptador de red que tiene la dirección MAC de 00-AA-00-3F-2A-1C es FE80::2AA:FF:FE3F:2A1C.
Nota
-
Al complementar el bit U/L, se debe sumar 0x2 al primer byte si la dirección EUI-64 se administra de forma universal, y restar 0x2 del primer byte si la dirección EUI-64 se administra de forma local.
Identificadores de interfaz de direcciones temporales
En la actual red Internet basada en IPv4, un usuario típico de Internet conecta con un proveedor de servicios Internet (ISP) y obtiene una dirección IPv4 mediante el Protocolo punto a punto (PPP, <i>Point-to-Point Protocol</i>) y el Protocolo de control de protocolo Internet (IPCP, <i>Internet Protocol Control Protocol</i>). Cada vez que el usuario se conecta, obtiene una dirección IPv4 distinta. Debido a esto, es difícil hacer un seguimiento del tráfico de un usuario en Internet sobre la base de la dirección IP.
En las conexiones de acceso telefónico basadas en IPv6, se asigna al usuario un prefijo de 64 bits después de realizar la conexión mediante descubrimiento de enrutadores y configuración automática de direcciones sin estado. Si el identificador de interfaz siempre se basa en la dirección EUI-64 (derivada de la dirección IEEE 802 estática), es posible identificar el tráfico de un nodo específico independientemente del prefijo, por lo que resulta fácil hacer un seguimiento de un usuario específico y del uso que hace de Internet. Para solucionar este problema y proporcionar un nivel de anonimato, en el documento RFC 3041 se describe un identificador de interfaz IPv6 alternativo que se genera aleatoriamente y cambia al cabo del tiempo.
El identificador de interfaz inicial se genera mediante números aleatorios. En los sistemas IPv6 que no pueden almacenar información de historial para la generación de futuros valores de identificador de interfaz, se genera un nuevo identificador de interfaz aleatorio cada vez que se inicializa el protocolo IPv6. En los sistemas IPv6 que tienen capacidades de almacenamiento, se almacena un valor de historial y, al inicializar el protocolo IPv6, se crea un nuevo identificador de interfaz mediante el proceso siguiente:
-
Se recupera el valor de historial almacenado y se anexa el identificador de interfaz basado en la dirección EUI-64 del adaptador.
-
Se calcula el algoritmo hash de cifrado unidireccional de Síntesis del mensaje 5 (MD5, <i>Message Digest-5</i>) con la cantidad del paso 1.
-
Se guardan los últimos 64 bits del algoritmo hash MD5 calculado en el paso 2 como valor de historial para el siguiente cálculo de identificador de interfaz.
-
Se toman los primeros 64 bits del algoritmo hash MD5 calculado en el paso 2 y el séptimo bit se establece en cero. El séptimo bit corresponde al bit U/L que, cuando está establecido en 0, indica un identificador de interfaz administrado de forma local. El resultado es el identificador de interfaz.
La dirección IPv6 resultante, basada en este identificador de interfaz aleatorio, se conoce como dirección temporal. Las direcciones temporales se generan para prefijos de direcciones públicas que utilizan configuración automática de direcciones sin estado. Las direcciones temporales se utilizan para el menor de los siguientes valores de duración válida y duración preferida:
-
Las duraciones incluidas en la opción Información de prefijo del mensaje de anuncio de enrutador recibido.
-
Valores locales predeterminados de 1 semana para la duración válida y 1 día para la duración preferida.
Cuando caduca la duración válida de la dirección temporal se genera un nuevo identificador de interfaz y una nueva dirección temporal.
En la familia de Windows Server 2003, el protocolo IPv6 no crea direcciones temporales para los prefijos de direcciones globales de forma predeterminada. Puede modificar esta configuración predeterminada mediante el comando netsh interface ipv6 set privacy state=enabled. Para obtener más información, vea Comandos Netsh para la interfaz IPv6.