Direccionamiento-Fundamentos

From Livre IPv6

Revision as of 23:01, 2 April 2012 by Jincera (Talk | contribs)

Introducción Tabla de contenido Implementación

Aspectos fundamentales de direccionamiento IPv6

Representación de direcciones

El formato y la representación de las direcciones son las modificaciones más notables para el usuario experimentado y para el ingeniero de red en esta nueva versión del protocolo: las direcciones en IPv6 también son fijas pero pasan de 32 a 128 bits. Aunque los principios son muy similares a los utilizados en IPv4, en una primera instancia el nuevo direccionamiento parece mucho más complejo. Resulta interesante conocer los principios y las reglas de atribución antes de entrar en los detalles del protocolo.

El presente capítulo muestra los distintos tipos de direcciones. Explica en detalle el plan de direccionamiento agregado que ha sido elegido para construir la Internet IPv6. También describe la forma de constituir una dirección IPv6.


Aspectos fundamentales del direccionamiento IPv6

Representación de direcciones

La representación textual de una dirección IPv6 se efectúa dividiendo la palabra de 128 bits en 8 palabras de 16 bits en formato hexadecimal, separadas por el caracter ":". Por ejemplo:

2001:0DB8:0000:0000:0400:A987:6543:210F

No es necesario escribir los ceros a la izquierda de un campo:

2001:DB8:0:0:400:A987:6543:210F

Además, varios campos nulos consecutivos, pueden abreviarse como "::". Así, la dirección anterior puede escribirse como:

2001:DB8::400:A987:6543:210F

Naturalmente, para evitar ambigüedades, la abreviación "::" sólo puede usarse una vez en una dirección. Los casos extremos son la dirección indefinida (utilizada para designar las rutas por omisión), que tiene todos los bits en cero y que se escribe de manera compacta como:

::

y la dirección de bucle local (loopback), equivalente al prefijo 127/8 en IPv4, en la que todos los bits son cero excepto el último. Ésta se escribe de forma compacta como:

::1

La representación de prefijos de red IPv6 es similar a la notación CIDR (RFC 1519) para los prefijos IPv4. Así, un prefijo IPv6 sigue el formato representado por la notación:

dirección-ipv6/longitud-del-prefijo-en-bits

Se permite el uso de formatos abreviados con "::"

2001:0DB8:7654:3210:0000:0000:0000:0000/64
2001:DB8:7654:3210:0:0:0:0/64
2001:DB8:7654:3210::/64

Debe tenerse precaución al utilizar esta notación con prefijos que no terminan en un bloque de 16 bits. Por ejemplo, el prefijo 3EDC:BA98:7654:3::/56 equivale en realidad a 3EDC:BA98:7654:0000::/56 pues se escribe 3EDC:BA98:7654:0003::/56.

Es posible combinar el prefijo de red y el identificador de la interfaz en una sola notacion. Así, esta dirección IPv6 2001:DB8:7654:3210:945:1321:ABA8:F4E2/64 indica que el prefijo de red está constituido por los primeros 64 bits.

Aprender a derrochar

Dada su longitud, una buena regla de gestión consiste en relajar las restricciones sobre las longitudes del prefijo. Así, al utilizar múltiplos de 4 cuando sea posible, permite tener un prefijo que cabe en el valor desplegado. En el ejemplo siguiente, como 47 no es múltiplo de 4, 2001:DB0:1234::/47, representa los prefijos que comienzan por 2001:DB0:1234 y por 2001:DB0:1235

Estas representaciones pueden parecer mucho más complejas que con IPv4, pero en realidad, las direcciones lógicas o concisas se forman a través de reglas precisas. Estas reglas facilitan fuertemente la manipulación y la memorización de direcciones, como se verá más adelante (cf Direccionamiento global).

En algunos casos una dirección (o varias direcciones) IPv4 puede estar contenida en una dirección IPv6. Para destacarlas puede utilizarse la notación clásica de IPv4, es decir cuatro octetos en representación decimal separados por un punto, dentro de una dirección IPv6. De esta forma,

::128.12.13.14

representa una dirección IPv6 compuesta por 96 bits en cero, seguidos de los 32 bits de la dirección IPv4 128.12.13.14

En ocasiones es necesario manipular las direcciones IPv6 literalmente. El caracter ":" utilizado para separar las palabras, puede crear ambigüedades. Ese es el caso, por ejemplo, con las URL en las que el mismo caracter también se puede utilizar para especificar el número de puerto. Así, la URL:

http://2001:DB8:12::1:8000/

podría representar tanto el puerto 8000 en el dispositivo con dirección IPv6 2001:DB8:12::1, como el dispositivo 2001:DB8:12::1:8000 que utiliza el puerto por omisión. Para evitar esta ambigüedad, el RFC 2732 propone delimitar la dirección IPv6 entre corchetes cuadrados "[ ]". Dependiendo del caso, la dirección precedente se escribiría:

http://[2001:DB8:12::1]:8000/

o

http://[2001:DB8:12::1:8000]/

Esta representación puede extenderse a otros dominios, como X-window o al protocolo de señalización para telefonía SIP.

Tipos de direcciones

IPv6 reconoce tres tipos de direcciones: unicast, multicast y anycast. El tipo de dirección define la cardinalidad de la comunicación, es decir, a cuántos destinatarios debe ser entregado el paquete.

El primero de estos tipos, la dirección unicast, identifica de manera única una interfaz. Un paquete enviado a ese tipo de dirección será entregado a la interfaz correspondiente. Entre las direcciones unicast, se pueden distinguir aquéllas que tienen una cobertura global, es decir, designan sin ambigüedad un destinatario sobre la red Internet, y las que tienen cobertura local (en el enlace o en el sitio). Estas últimas no pueden ser enrutadas sobre Internet. Es decir, un paquete que tenga una dirección destino con cobertura local, será ignorado y eliminado por un enrutador de Internet. La cobertura de una dirección señala el límite de la propiedad de unicidad.

Una dirección tipo multicast (difusión restringida) designa a un grupo de interfaces que pertenecen, en general, a nodos distintos que pueden ubicarse en cualquier parte de Internet. Cuando un paquete tiene una dirección destino multicast, éste se envía por la red a todas las interfaces miembros de ese grupo.

Cabe resaltar que desaparecen las direcciones de difusión (broadcast) que existían en IPv4; éstas son remplazadas por direcciones tipo multicast. La dirección de difusión puede ser imitada por una dirección mulitcast constituyendo un grupo que incluya todos los nodos. La ausencia de direcciones de difusión evita los problemas de saturación en las redes locales conmutadas. Por ello, una red IPv6 tiene un mejor desempeño en términos de factor de escala, sobre este tipo de redes.

El último tipo de dirección, anycast, se deriva de la oficialización de propuestas hechas para IPv4 (RFC 1546). Como en el caso multicast, una dirección de tipo anycast designa un grupo de interfaces. La principal diferencia consiste en que cuando un paquete tiene una dirección destino anycast, éste es enviado a alguno de los miembros del grupo, no a todos. El receptor del paquete podría ser, por ejemplo, el más cercano de acuerdo a la métrica de usada por los protocolos de enrutamiento. Este tipo de dirección es principalmente experimental. Consulte Direcciones anycast para más información.

Algunos tipos de direcciones se identifican por su prefijo (RFC 3513). La tabla siguiente muestra la lista de estos prefijos (fuente: http://www.iana.org/assignments/ipv6-address-space). El bloque "reservado" del prefijo 0::/8 es utilizado por las direcciones llamadas especiales (dirección indeterminada, de bucle (loop), mapeada, compatible). Se observa que más del 70% del espacio disponible no se ha asignado, lo que permite contar con una gran flexibilidad para el futuro.

Prefijo IPv6 Asignar Referencia
0000::/8 Reservado para la transición y para loopback RFC 3513
0100::/8 Reservado RFC 3513
0200::/7 Reservado (Ej. NSAP) RFC 4048
0400::/6 Reservado (Ej. IPX) RFC 3513
0800::/5 Reservado RFC 3513
1000::/4 Reservado RFC 3513
2000::/3 Unicast global RFC 3513
4000::/3 Reservado RFC 3513
6000::/3 Reservado RFC 3513
8000::/3 Reservado RFC 3513
A000::/3 Reservado RFC 3513
C000::/3 Reservado RFC 3513
E000::/4 Reservado RFC 3513
F000::/5 Reservado RFC 3513
F800::/6 Reservado RFC 3513
FC00::/7 Unicast local única RFC 4193
FE00::/9 Reservado RFC 3513
FE80::/10 Local al enlace RFC 3513
FEC0::/10 Reservado RFC 3879
FF00::/8 Multicast RFC 3513

Generalmente, una interfaz poseerá varias direcciones IPv6. En IPv4 este comportamiento es excepcional, pero resulta trivial en IPv6.

Direccionamiento global: Plan de direccionamiento agregado

Este plan, propuesto en el RFC 3587, especifica la estructura de direccionamiento IPv6 definida en el RFC 3513, estableciendo el tamaño de cada bloque. Se gestiona de la misma manera que CIDR en IPv4. Una dirección incluye tres niveles de jerarquía:

Direcciones Globales
Figure : Direcciones Globales

  • una topología pública (llamada "Prefijo Global") codificada en 48 bits asignados por el proveedor de acceso (ISP, Internet Service Provider;
  • una topología de sitio codificada en 16 bits (denominada "ID de subred, SID"). Este campo se utiliza para codificar los números de subred del sitio;
  • un identificador de interfaz de 64 bits (llamado "ID de interfaz") para distinguir los diferentes dispositivos en el enlace.

Estructuración del prefijo global (GP)

Para comprender los tamaños

France Télécom (FT) obtuvo de RIPE-NCC un prefijo /19. Si se descartan los primeros tres bits, 001, que designan el plan de direccionamiento, entonces es posible tener 216 operadores. Considerando que hay 192 países en la ONU, cada uno podría albergar a 320 operadores del tamaño de FT; cada uno de ellos podría asignar hasta 229 prefijos /48, lo que equivale a 536,870,912 sitios

Aparte del prefijo 2002:: que está reservado para el mecanismo de transición 6to4, este espacio es administrado jerárquicamente como en IPv4. El IANA delega a las cinco autoridades regionales (RIR) prefijos (con una longitud actual de 12 bits, cf http://www.iana.org/assignments/ipv6-unicast-address-assignments) que redistribuyen entre los ISP de su región. En función de su tamaño, los operadores reciben un prefijo mayor o menor. En el sitio http://www.sixxs.net/tools/grh/ se pueden observar en tiempo real las asignaciones de prefijos por región, operador y país.

En la actualidad se reconoce que el prefijo asignado por un operador a sus clientes puede ser también de longitud /56, pues si se mantiene la asignación de prefijos de longitud 48 para los sitios terminales y se integran las redes domésticas, los operadores pueden justificar la necesidad de un número importante de direcciones, que las autoridades regionales no podrían rechazar.

TODO Añadir cómo obtener un prefijo en RIPE-NCC (o en otro RIR)

Estructuración del identificador de subred (SID)

No se tienen reglas para la asignación de identificadores de subred dentro de un sitio. Se pueden utilizar varias técnicas (no excluyentes) como:

  • enumerar de forma incremental las subredes: 0001, 0002, ... Esta técnica es fácil de implementar en las redes experimentales, pero puede dar lugar a un esquema de direccionamiento plano, difícil de recordar. Se puede utilizar, por ejemplo, para una subred dedicada a los servidores con el fin de simplificar la escritura y la memorización de direcciones;
  • utilizar el número de VLAN. Permite no tener que memorizar múltiples niveles de numeración;
  • separar los tipos de redes y utilizar las cifras a la izquierda para designarlos. Esta técnica facilita las reglas de filtrado, utilizando al mismo tiempo reglas adecuadas para la gestión de estas subredes en el segmento del lado derecho. A manera de ejemplo, la siguiente tabla contiene el plan de numeración de una universidad con varios planteles, tomando en cuenta las diferentes comunidades de usuarios:
Comunidad 4bits 8bits 4bits
Infraestructura 0 valores específicos
Pruebas 1 valores específicos
Túneles 6 asignación de /60 a los usuarios
Invitados Wi-Fi 8 valores específicos
Personal A Entidad Subred
Estudiantes E Entidad Subred
Otros (Start up, etc.) F valores específicos
Asignación de SID en una universidad

De esta manera, el prefijo:

  • 2001:DB8:1234::/52 será para la creación de la infraestructura; en particular, las direcciones de interfaz de los enrutadores, serán asignadas de este espacio;
  • 2001:DB8:1234:8000::/52 será para la red Wi-Fi de los invitados. La forma en que los 12 bits del SID sobrantes serán administrados, no se especifica;
  • 2001:DB8:1234:E000::/52 será para la red de los estudiantes. La entidad representa la localización geográfica del plantel. En cada uno de estos campi, será posible tener hasta 16 subredes diferentes para cada comunidad.

Direccionamiento local : Direcciones locales al enlace

Las direcciones del tipo Enlace_local (link local use address) sólo son válidas dentro del enlace, es decir, sobre el conjunto de interfaces directamente accesibles sin la intervención de un enrutador, por ejemplo, dispositivos en una misma red local Ethernet, máquinas unidas por una conexión PPP, o puntos extremos de un túnel. Las direcciones locales al enlace se configuran automáticamente al inicializar la interfaz y permiten la comunicación entre nodos vecinos. La dirección se obtiene concatenando el prefijo FE80::/64 a los 64 bits del identificador de interfaz. Aunque generalmente el identificador de interfaz está basado en la dirección MAC, no se compromete la privacidad ya que, a diferencia de las direcciones globales, las locales al enlace nunca salen de la red donde son utilizadas.

Direcciones locales al enlace
Figure : Direcciones locales al enlace

Estas direcciones se utilizan por los protocolos de configuración de dirección global, de descubrimiento de vecinos (neighbor discovery) y de descubrimiento de enrutadores (router discovery). Se trata de mecanismos, el primero de ellos para suplantar al protocolo ARP (Address Resolution Protocol), que permiten que una red local se configure automáticamente (ver Descubrimiento de vecinos). También son muy utilizadas por los protocolos de enrutamiento tanto para el intercambio de datos (cf RIPng, OSPFv3), como en las tablas de enrutamiento dado que el campo "siguiente enrutador" se refiere siempre a un dispositivo directamente accesible dentro del enlace.

Unicidad sobre el enlace

Las direcciones locales al enlace son únicas al interior de un enlace. Esto lo garantiza el protocolo de detección de direcciones duplicadas (ver Detección de dirección duplicada). En cambio, la duplicación de direcciones locales al enlace en dos enlaces distintos o entre dos interfaces de un mismo nodo, está permitida.

En ningún caso un enrutador podrá retransmitir un paquete que tenga como dirección fuente o destino una dirección de tipo Enlace_local.

El hecho de que estas direcciones tengan una cobertura tan corta, las limita en la práctica a casos en los que se necesita un arranque automático (bootstrap). Su uso no debe generalizarse para aplicaciones convencionales en condiciones de operación estable.

Ámbito de una dirección (scoped address)

Una dirección local al enlace (o una multicast) no indica de forma intrínseca la interfaz de salida ya que todas las interfaces comparten el mismo prefijo fe80::/10. Por consiguiente, es necesario indicar explícitamente a través de qué interfaz deben emitirse los paquetes. Bajo algunos sistemas operativos (BSD, Mac OS, Windows), ésta se puede especificar agregando al final de la dirección el nombre de la interfaz deseada, precedida del caracter "%". Bajo Linux, la interfaz de salida se designa mediante un argumento, generalmente "-I".

Dirección local única

El RFC 4193 define un nuevo formato de dirección unicast: las direcciones locales únicas (ULA: Unique Local Address). Estas direcciones son para uso local. No están pensadas para ser enrutadas en Internet, sino dentro de un área acotada, como un sitio o un número limitado de sitios. Con un prefijo de 48 bits, pueden ser manipuladas como las direcciones globales, con un identificador de Subred (SID) de 16 bits y un identificador de interfaz (IID) de 64 bits.

Las direcciones locales únicas se crean utilizando un identificador global (Global ID) generado de forma pseudo-aleatoria. Estas direcciones tienen el formato siguiente:

  • Prefix (7 bits): FC00::/7 prefijo para identificar las direcciones IPv6 locales (ULA)
  • L (1 bit): Puesto a 1, el prefijo es asignado localmente. el valor 0 está reservado para usos futuros.
  • Global ID (40 bits): Identificador global utilizado para la creación de un prefijo "único" (Globally Unique Prefix).
  • Subnet ID (16 bits): Identificador de subred al interior del sitio.
  • Interface ID (64 bits): El identificador de interfaz, tal como está definido en Identificador de interfaz.

El sitio http://www.sixxs.net/tools/grh/ula/ permite crear y registrar su propia dirección ULA a partir de una dirección MAC.


Introducción Tabla de contenido Implementación
Views
Personal tools
Navigation
Tools