sábado, 30 de octubre de 2010

10 cosas que deberías saber acerca del direccionamiento IPv6.

Este salió en TechRepublic hace varios días y de nuevo, como es relativo a posts anteriores lo traduje. El original lo pueden encontrar aquí, el autor es Brien Posey y tiene un sitio aquí y un blog aquí. Tiene un par de conceptos interesantes con el tunneling IPv6 a través de redes IPv4. Antes del martes les tengo una sorpresa que espero les guste. Hoy es sábado pero tenemos un par de días libres la semana que entra así que los emplearé en este trabajo.

10 cosas que deberías saber acerca del direccionamiento IPv6.

En los últimos años, IPv6 ha ido avanzando y convirtiéndose en una tecnología fundamental. Aun así muchos profesionales de TI todavía no saben por donde empezar cuando se refiere a la adopción de IPv6 debido a las diferencias entre IPv6 e IPv4. En este artículo relaciono 10 puntos que te ayudarán a entender como funciona el direccionamiento IPv6.

1.- Una dirección IPv6 es un número hexadecimal de 128 bits:
Las direcciones IPv4, a las que estamos acostumbrados, están compuestas de cuatro         octetos numéricos que combinados forman una dirección de 32 bits. Una dirección IPv6 no se parece a la IPv4. Las direcciones IPv6 tienen 128 bits de largo y están formadas por caracteres hexadecimales.
En IPv4, cada octeto consiste en un número decimal entre 0 y 255. Estos números típicamente están separados por puntos. Las direcciones IPv6 se expresan como una serie de ocho números hexadecimales de cuatro caracteres, y cada uno representa 16 bits (para un total de 128 bits). Como veremos mas adelante, las direcciones IPv6 a veces se pueden abreviar de modo que puedan expresarse con menos caracteres.

2.- Las direcciones unicast de enlaces locales  son fáciles de identificar:
IPv6 reserva ciertos encabezados (headers en el original y en lo adelante) para diferentes tipos de direcciones. Probablemente el mejor ejemplo de esto es que las direcciones unicast de enlaces locales siempre empiezan con FE80. De manera similar las direcciones multicast siempre empiezan con un FF0x, donde la x puede significar un numero entre 1 y 8.

3.- Los ceros al inicio son suprimidos:
Debido a su extensión, las direcciones IPv6 tienden a contener muchos ceros. Cuando una sección de una dirección empieza con uno o más ceros , estos ceros no son más que marcadores o espacios. De modo que cualquier cero al inicio puede ser suprimido. Para que tenga una idea mas clara, vean la siguiente dirección:

 FE80:CD00:0000:0CDE:1257:0000:211E:729C

Si esta fuera una dirección real, cualquier cero del inicio podría ser suprimido. El resultado luciría así:

 FE80:CD00:0:CDE:1257:0:211E:729C

Como pueden ver, la supresión de ceros al inicio ayuda bastante a acortar las direcciones.

4.- Los ceros en línea a veces también pueden ser suprimidos.
Las direcciones IPv6 reales tienden a contener largas secciones de nada mas que ceros, los cuales también pueden ser suprimidos. Por ejemplo consideren la siguiente dirección:

 FE80:CD00:0000:0000:0000:0000:211E:729C

En esta dirección hay 4 secciones secuenciales separadas por ceros. En vez de solo suprimir los ceros de inicio, puedes eliminar todos los ceros secuenciales y sustituirlos por 2 dos puntos (::). Los 2 dos puntos le dicen al sistema  operativo que todo lo que hay entre ellos son ceros. La dirección mostrada arriba entonces quedaría así:

 FE80:CD00::211E:729C

Deben recordar dos cosas con la supresión de ceros en línea. Primero, solo puedes eliminar secciones que solo contengan ceros. Por ejemplo si te fijas en la segunda sección del ejemplo de arriba veras que tiene dos ceros al final. Estos ceros se mantienen porque hay caracteres diferentes de cero en la sección. Segundo, solo puedes usar la notación (::) una vez en una dirección dada. 

5.- Las direcciones de loopback no lucen siquiera como direcciones:
En IPv4 hay una dirección designada conocida como la dirección de loopback que apunta a la máquina local. La dirección de loopback para cualquier dispositivo que use IPv4 es 127.0.0.1.
Al igual que IPv4, también hay una dirección de loopback designada en IPv6:

 0000:0000:0000:0000:0000:0000:0000:0001

Una vez suprimidos todos los ceros, el loopback IPv6 no luce siquiera como una dirección válida. La dirección de loopback usualmente es expresada como ::1

6.- No necesitas la máscara de subred tradicional.
En IPv4 cada dirección IP viene con su correspondiente máscara de subred. IPv6 también usa subredes pero la dirección de la subred va incluida en la dirección IPv6.
En una dirección IPv6, los primeros 48 bits corresponden al prefijo de red. Los siguientes 16 bits es la ID de subred y son usados para definir las subredes. Los últimos 64 bits corresponden al identificador de interface (el cual es conocido también como la ID e interface o la ID de dispositivo).
Si es necesario, los bits que normalmente son reservados para la ID del dispositivo pueden ser usados para máscaras de subred adicionales. De todos modos normalmente esto no es necesario, toda vez que usando 16 bits para subredes y 64 bits para ID de dispositivos proporciona 65,535 subredes con quintillones de posibles ID de dispositivos por subred. Aun así algunas organizaciones ya están llegando mas allá de las ID de subredes de 16 bits

7.- El DNS sigue siendo una tecnología válida.
IPv4 emplea records de hosts (A) para mapear direcciones IP contra nombres de hosts. El DNS todavía se usa en IPv6, pero no se emplean los records (A). IPv6 emplea records AAAA, a los cuales se refieren a veces como records Quad A (4 As). El dominio ip6.arpa es usado para resoluciones inversas.

8.- IPv6 puede hacer túneles a través de redes IPv4.
Una de las causas de que la adopción de IPv6 haya tomado tanto tiempo es que en general IPv6 no es compatible con redes IPv4. A resultas de esto, un número de tecnologías de transición usan el tunneling para facilitar la compatibilidad entre redes. Dos de estas tecnologías son Teredo y 6To4. Aún cuando estas tecnologías funcionan de maneras diferentes, la idea básica detrás de ambas es encapsular paquetes IPv6 dentro de paquetes IPv4. De esta manera el tráfico IPv6 puede atravesar una red IPv4. Tenga en cuenta que se necesitarán procesadores de tunneling en ambos extremos (tunneling endpoints) para encapsular y extraer los paquetes.

9.- Puede que ya estés usando IPv6
Empezando con Windows Vista, Microsoft (MS) empezó a instalar y habilitar IPv6 por defecto. Como que la implementación de IPv6 en Windows es autoconfigurable, tu PC puede estar emitiendo trafico broadcast IPv6 sin que siquiera lo sepas. Por supuesto, esto no significa necesariamente que puedas abandonar IPv4. No todos los switches o routers soportan IPv6, al igual que algunas aplicaciones contienen referencias en el código (hard-coded en el original) a direcciones IPv4.

10.- Windows no soporta completamente IPv6
Es irónico pero, tanto como MS ha impulsado la adopción de IPv6, Windows no soporta IPv6 de todas la formas que cabría esperar. Por ejemplo, en Windows es posible incluir una dirección IP dentro de una UNC (\\127.0.0.1\C$, por ejemplo). Pero no puedes hacer lo mismo con las direcciones IPv6 porque donde Windows ve dos puntos asume que te refieres a la letra de una unidad.
Para evitar esto, MS ha establecido un dominio especial para traducciones de direcciones IPv6. Si quieres incluir una dirección IPv6 dentro de una UNC deberás reemplazar los dos puntos por guiones y adjuntar ".ipv6.literal.net" al final de la dirección; por ejemplo FE80-AB00–200D-617B.ipv6.literal.net