Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Direccionamiento IPv6

Ver el código fuente en GitHub

Veamos cómo Thread identifica cada dispositivo en la red y qué tipos de direcciones usan para comunicarse entre sí.

Permisos

Permisos de OT

En la red Thread existen tres alcances para la direccionamiento de unidifusión:

  • Vínculo local: Todas las interfaces a las que se puede acceder mediante una sola transmisión de radio
  • Mesh-Local: todas las interfaces a las que se puede acceder en la misma red Thread
  • Global: todas las interfaces accesibles desde fuera de una red Thread

Los primeros dos alcances corresponden a prefijos designados por una red Thread. Link-Local tiene prefijos de fe80::/16, mientras que la malla local tiene prefijos de fd00::/8.

Unicast

Hay varias direcciones IPv6 de unidifusión que identifican un solo dispositivo Thread. Cada uno tiene una función diferente según el alcance y el caso de uso.

Antes de detallar cada tipo, obtengamos más información sobre uno común, que se llama localizador de rutas (RLOC). El RLOC identifica una interfaz de Thread, según su ubicación en la topología de la red.

Cómo se genera un localizador de rutas

Todos los dispositivos tienen asignados un ID de router y un ID secundario. Cada router mantiene una tabla de todos sus elementos secundarios, cuya combinación identifica de forma única un dispositivo dentro de la topología. Por ejemplo, considera los nodos destacados de la siguiente topología, en los que el número de un router (pentágono) es el ID del router y el número de un dispositivo final (círculo) es el ID secundario:

Topología de OT RLOC

Cada ID de router secundario corresponde a su superior (router). Como un router no es un elemento secundario, el ID secundario de un router siempre es 0. Juntos, estos valores son únicos para cada dispositivo en la red Thread y se usan a fin de crear el RLOC16, que representa los últimos 16 bits del RLOC.

Por ejemplo, a continuación, se muestra cómo se calcula el RLOC16 para el nodo superior izquierdo (ID de router = 1 e ID secundario = 1):

OT RLOC16

El RLOC16 forma parte del identificador de interfaz (IID), que corresponde a los últimos 64 bits de la dirección IPv6. Algunos IID se pueden usar para identificar algunos tipos de interfaces Thread. Por ejemplo, el IID de los RLOC siempre tiene el siguiente formato:

0000:00ff:fe00:RLOC16

El IID, combinado con un prefijo de malla local, da como resultado el RLOC. Por ejemplo, si usas un prefijo de malla local de fde5:8dba:82e1:1::/64, el RLOC para un nodo en el que RLOC16 = 0x401 es el siguiente:

LO RLOC

Esta misma lógica se puede usar para determinar el RLOC para todos los nodos destacados en la topología de muestra anterior:

Topología de OT con dirección

Sin embargo, debido a que el RLOC se basa en la ubicación del nodo en la topología, este último puede cambiar a medida que lo hace la topología.

Por ejemplo, quizás se quita el nodo 0x400 de la red de Thread. Los nodos 0x401 y 0x402 establecen vínculos nuevos a diferentes routers y, como resultado, se les asigna un RLOC16 y RLOC nuevos:

Topología de OT después del cambio

Tipos de direcciones de Unicast

El RLOC es solo una de las distintas direcciones Unicast IPv6 que puede tener un dispositivo Thread. Otra categoría de direcciones son identificadores de extremos (EID), que identifican una interfaz de Thread única dentro de una partición de red de Thread. Los EID son independientes de la topología de red de Thread.

A continuación, se muestran los tipos comunes de unidifusión.

Un EID que identifica una interfaz de Thread a la que puede acceder una sola transmisión de radio.
Ejemplofe80::54db:881c:3845:57f4
IDBasada en la dirección extendida 802.15.4
ÁmbitoVínculo local
Detalles
  • Se utiliza para descubrir vecinos, intercambiar información de enrutamiento y configurar vínculos
  • No es una dirección enrutable
  • Siempre tiene un prefijo de fe80::/16

EID local de la malla (ML-EID)

Un EID que identifica una interfaz de Thread, independiente de la topología de red. Se utiliza para acceder a una interfaz de Thread dentro de la misma partición de Thread. También se denomina dirección local única (ULA).
Ejemplofde5:8dba:82e1:1:416:993c:8399:35ab
IDAleatoria, seleccionada después de que se completa la puesta en marcha
ÁmbitoMalla local
Detalles
  • No cambia a medida que cambia la topología
  • Las aplicaciones deben utilizarlos.
  • Siempre tiene un prefijo fd00::/8

Localizador de rutas (RLOC)

Identifica una interfaz de Thread, según su ubicación en la topología de la red.
Ejemplofde5:8dba:82e1:1::ff:fe00:1001
ID0000:00ff:fe00:RLOC16
ÁmbitoMalla local
Detalles
  • Generado cuando un dispositivo se conecta a una red
  • Para entregar datagramas IPv6 dentro de una red Thread
  • Cambios a medida que cambia la topología
  • Las aplicaciones no suelen utilizarlos.

Anycast Locator (ALOC)

Identifica una interfaz Thread a través de la búsqueda de RLOC cuando no se conoce el RLOC de un destino.
Ejemplofde5:8dba:82e1:1::ff:fe00:fc01
ID0000:00ff:fe00:fcXX
ÁmbitoMalla local
Detalles
  • fcXX = ALOC destination, que busca el RLOC apropiado
  • Las aplicaciones no suelen utilizarlos.

Dirección global de unicas (GUA)

Un EID que identifica una interfaz de Thread a nivel global, más allá de una red Thread.
Ejemplo2000::54db:881c:3845:57f4
ID
  • ANSAC: Aleatoriamente asignada por el dispositivo
  • DHCP: Asignado por un servidor DHCPv6.
  • Manual: Asignada por la capa de la aplicación
ÁmbitoGlobales
Detalles
  • Una dirección IPv6 pública
  • Siempre tiene un prefijo de 2000::/3

Multidifusión

La multidifusión se usa para comunicar información a varios dispositivos a la vez. En una red Thread, las direcciones específicas se reservan para el uso de multidifusión con diferentes grupos de dispositivos, según el alcance.

Dirección IPv6 Alcance Dirección de entrega:
ff02::1 Vínculo local Todos los FTD y MED
ff02::2 Vínculo local Todos los FTD
ff03::1 Malla local Todos los FTD y MED
ff03::2 Malla local Todos los FTD

Es posible que notes que los dispositivos finales con sueño (SED) no se incluyen como destinatarios en la tabla multidifusión que aparece arriba. En cambio, Thread define la dirección multidifusión IPv6 basada en prefijos local-vínculo y real-local que se usa para todos los nodos de Thread, incluidos los SED. Estas direcciones de multidifusión varían según la red de Thread, ya que se compila en el prefijo de malla local de unidicast (consulta RFC 3306 para obtener más detalles sobre las direcciones de multidifusión basadas en prefijos Unicast de Unicast).

También se admiten alcances arbitrarios más allá de los ya mencionados para dispositivos Thread.

Anycast

Anycast se usa para enrutar el tráfico a una interfaz de Thread cuando se desconoce el RLOC de un destino. Un localizador de Anycast (ALOC) identifica la ubicación de varias interfaces dentro de una partición de Thread. Los últimos 16 bits de un ALOC, llamado ALOC16, tienen el formato 0xfcXX, que representa el tipo de ALOC.

Por ejemplo, un ALOC16 entre 0xfc01 y 0xfc0f está reservado para agentes DHCPv6. Si se desconoce el RLOC del agente de DHCPv6 específico (quizás porque cambió la topología de la red), se puede enviar un mensaje a un ALOC del agente de DHCPv6 para obtener el RLOC.

Thread define los siguientes valores ALOC16:

ALOC16 Tipo
0xfc00 Líder
0xfc010xfc0f Agente DHCPv6
0xfc100xfc2f Servicio
0xfc300xfc37 Comisionado
0xfc400xfc4e Agente de detección de vecino
0xfc38-0xfc3f
0xfc4f-0xfcff
Reservado

Resumen

Qué aprendiste:

  • Una red Thread tiene tres alcances: local de vínculo, malla local y global.
  • Un dispositivo Thread tiene varias direcciones IPv6 de unidifusión.
    • Un RLOC representa la ubicación de un dispositivo en la red de Thread
    • Un ML-EID es exclusivo de un dispositivo Thread dentro de una partición y debe usarlo las aplicaciones
  • Thread usa la multidifusión para reenviar datos a grupos de nodos y routers
  • Thread usa anycast cuando el RLOC de un destino es desconocido

Para obtener más información sobre el direccionamiento IPv6 de Thread, consulta las secciones 5.2 y 5.3 de la Especificación de subprocesos.

Comprueba tus conocimientos

¿Cuáles son los tres alcances para las direcciones de unidifusión en una red Thread?
Privada
Incorrecto.
Interfaz local
Incorrecto.
Vínculo local
Correcto.
Sitio local
Incorrecto.
Malla local
Correcto.
Globales
Correcto.
¿Qué significa que un dispositivo tenga un ID de elemento secundario de 0?
El dispositivo es un elemento secundario.
Incorrecto.
El dispositivo es de REED.
Cerrar, pero es incorrecto.
El dispositivo es un router.
Correcto. Un router siempre tiene un ID secundario de 0.
Una cámara, que es un nodo en una red Thread, recibe nuevos RLOC16 y RLOC. ¿Cuál de los siguientes eventos podría haber ocasionado esta situación?
Alguien descargó imágenes de forma remota de la cámara.
Incorrecto. Este evento no tendría rumbo en la red Thread.
Un router dejó de funcionar.
Correcto. Cuando un router abandona una red, cambia la topología de la red, lo que puede provocar que el dispositivo se promocione a un router y obtenga un nuevo RLOC.
La cámara entró en modo de suspensión, lo que cambió la topología de la red.
Incorrecto. El modo de suspensión no implica necesariamente que un dispositivo reciba una nueva dirección de red.
Un dispositivo de una red Thread se suscribe a la dirección multidifusión ff03::2. ¿Qué nos dice esto del dispositivo?
Es un dispositivo final mínimo (MED).
Incorrecto.
Es un dispositivo de extremo completo (FED).
Incorrecto. (Sugerencia: Puede ser una FED o no).
Es un dispositivo de subprocesos mínimo (MTD).
Incorrecto.
Es un dispositivo de subproceso completo (FTD).
Correcto. Solo los dispositivos de conversación completa se suscriben a la dirección multidifusión ff03::2. Lo hacen en el alcance de la malla local.
¿Qué tipo de asignación de direcciones usa Thread para reenviar datos a grupos de nodos y routers?
Unicast
Incorrecto.
Anycast
Incorrecto.
multidifusión
Correcto.
anuncio
Incorrecto.
¿Qué tipo de asignación de direcciones usa un dispositivo Thread cuando se desconoce la RLOC del destinatario de su mensaje previsto?
Unicast
Incorrecto.
Anycast
Correcto. Anycast permite que un dispositivo llegue a un nodo cuyo RLOC no se conoce abordando el ALOC del dispositivo.
multidifusión
Incorrecto.
anuncio
Incorrecto.