Capítulo 2: Conexión de sistemas en red

El protocolo TCP/IPv6

Hasta este punto de la documentación, cada vez que hemos hablado del protocolo IP nos referíamos a IPv4, que se implementó en 1983 para su uso en la red ARPANET.

En aquella época, los 4294967296 (232) direcciones únicas parecían más que suficientes, pero después del crecimiento que ha sufrido Internet desde entonces, han sido completamente insuficientes. Sobre todo por varios motivos:

  • Porque muchas de ellas están reservadas para redes locales

  • Porque en la actualidad cada usuario individual puede tener múltiples dispositivos conectados a Internet (ordenadores, teléfonos, tablets, etc.)

  • Porque en el futuro inmediato, con la generalización del Internet de las cosas, se prevé que los tipos de dispositivos conectados se diversifique mucho más (vehículos, televisores y otros muchos dispositivos domésticos)

Cómo se forma una dirección IPv6

Una dirección IPv4 está formada por cuatro grupos de 8 bits cada uno.

Para resolver esta situación, se diseñó la versión IPv6, que propone direcciones de 128 bits. Es decir, podremos obtener hasta 340.282.366.920.938.463.463.374.607.431.768.211.456 (2128) direcciones diferentes.

Para escribir una dirección IPv6 se utilizan 8 campos de 16 bits separados por dos puntos. Por otro lado, en lugar de la notación decimal que suele utilizarse en IPv4, en IPv6 se emplea notación hexadecimal para representar cada uno de los campos. Además, se utilizan dos puntos (:) para separar un campo del siguiente. Así, una dirección TCP/IPv6 tendría el siguiente aspecto:

2001:0db8:ac10:0013:0000:0000:2b4e:0c11

Notación simplificada

Como, a pesar de todo, las direcciones IPv6 tienden a ser difíciles de manejar, existen formas abreviadas de escribir algunas de ellas:

  • Si en la dirección IPv6 tenemos campos cuyo valor es cero, podemos representarlos con un único cero en lugar de cuatro. Por ejemplo, la dirección anterior, podríamos escribirla como 2001:0db8:ac10:0013:0:0:2b4e:0c11

  • Incluso podemos ir más allá y eliminar el campo por completo: 2001:0db8:ac10:0013:::2b4e:0c11
    Sin embargo, esto no podemos hacerlo dos veces en la misma dirección. Es decir, si la dirección original fuese 2001:0db8:ac10:0000:0000:0013:0000:0000, podríamos eliminar completamente uno de los dos bloques de ceros, pero no ambos.

    Por lo tanto, serían válidas las siguientes abreviaturas: 2001:0db8:ac10::0013:0:0 y 2001:0db8:ac10:0:0:0013::.
    Si el número de campos consecutivos que se encuentran a cero son más de dos, la abreviatura sería la misma. Es decir, si la dirección original fuese 2001:0db8:0000:0000:0000:0000:2b4e:0c11, podríamos escribir 2001:0db8::2b4e:0c11

  • También pueden omitirse los dígitos a la izquierda de un campo cuando su valor es cero. Además, podemos utilizarlo como complemento a cualquiera de los métodos anteriores. Por ejemplo: 2001:db8::2b4e:c11

Partes de una dirección IPv6

Desde un punto de vista lógico, las direcciones IPv6 se dividen en tres partes:

  • Prefijo del sitio: Ocupa, como máximo, los tres primeros campos (48 bits) y forman la parte pública de la dirección. Suele expresarse en notación CIDR. Así, cuando escribimos 2001:db8:ac10:13:0:0:2b4e:c11/48 estaremos indicando que el prefijo ocupa los tres primeros campos.

    Si queremos referirnos únicamente al prefijo, podríamos utilizar la notación con ceros comprimidos: 2001:db8:ac10::/48

  • La dirección MAC es un identificador único de cada dispositivo de red.

    Utiliza 48 bits. Los primeros 24 los asigna el fabricante y el resto el IEEE.

  • Prefijo de subred: suele ocupar el cuarto campo (16 bits) y le permite al enrutador (router) identificar la topología interna de la red.
    Para expresar la subred suele emplearse también notación CIDR. Por ejemplo: 2001:db8:ac10:13::/64
    La suma entre los bits del prefijo del sitio y los del prefijo de subred será siempre 64.

  • ID de la interfaz : Serán los cuatro últimos campos (64 bits). Suele llamarse token y su valor puede asignarse manualmente o provenir de la dirección MAC (del inglés, Media Access Control) de la tarjeta de red.

Configuración de Ipv6

Existen tres formas diferentes de configurar un equipo para el uso de Ipv6:

  • Manual: El administrador del equipo introduce manualmente los valores de confiugración para el protocolo TCP/IPv6

  • Autoconfiguración (también conocida como Configuración Automática de Dirección Sin Estado Ipv6): El equipo buscará en la red un enrutador IPv6 que le devuelve el prefijo de subred. A continuación, el equipo añade su dirección de capa de enlace (dirección MAC) en formato EUI-64 Modificado.

  • Mediante un servidor (Configuración de Direcciones con Estado IPv6): Usando un servidor DHCP de la red.

El formato EUI-64 modificado utiliza los 48 bits de la dirección MAC para crear el ID de la interfaz en la dirección IPv6.

Dado que el ID de la interfaz emplea 64 bits, los 16 bits que faltan se completan con el valor FF:FE. Este valor se inserta en el centro de la dirección MAC, de modo que, si la dirección original fuese 3a:87:b0:47:22:11, el ID de la interfaz para la dirección IPv6 sería 3a87:b0ff:fe47:2211.

Si el ID de la interfaz va a formar parte de una dirección IPv6, también se invierte su séptimo bit por la derecha (llamado bit Universal/Local). Así, el ID resultante sería 3887:b0ff:fe47:2211. De esta forma, se disminuyen las posibilidades de que coincida con una dirección asignada manualmente en otro equipo de la red.

Direcciones IPv6 con direcciones IPv4 incrustadas

Es posible combinar direcciones IPv6 y direcciones IPv4 de forma que éstas últimas se incrusten en las primeras.

Para lograrlo, la dirección IPv6 se divide en dos partes:

  • La primera sigue utilizando notación hexadecimal y representa los 6 primeros campos de la dirección.

  • La segunda (el segmento IPv4) tiene cuatro campos y utiliza notación decimal con valores de 8 bits.

Así, se asegura la compatibilidad de los equipos que aún funcionen con una configuración IPv4 y los que ya dispongan de configuración IPv6 dentro de la misma red. De este modo, los dispositivos de red que trabajen con IPv6 representarán las direcciones de los dispositivos IPv4 como direcciones IPv6

Veamos un ejemplo: 0:0:0:0:0:ffff:192.1.1.25

También podemos escribirlo en formato abreviado así: ::ffff:192.1.1.25/96.