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

Una red Thread tiene tres alcances para el direccionamiento unificado:
- Vínculo local: Todas las interfaces a las que se puede acceder mediante una sola transmisión de radio
- Malla-local: todas las interfaces accesibles en la misma red Thread
- Global: Todas las interfaces accesibles desde fuera de la red Thread
Los dos primeros alcances corresponden a los prefijos designados por una red Thread.
Link-Local tiene prefijos de fe80::/16
, mientras que Mesh-Local tiene prefijos de fd00::/8
.
Unicast
Existen 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 práctico.
Antes de detallar cada tipo, veamos más información sobre uno común, llamado localizador de enrutamiento (RLOC). El RLOC identifica una interfaz Thread según su ubicación en la topología de red.
Cómo se genera un localizador de rutas
A todos los dispositivos se les asigna 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 en la siguiente topología, en la que el número de un router (pentagon) es el ID de router y el número de un dispositivo final (círculo) es el ID de secundario:

El ID de router de cada elemento secundario corresponde a su superior (router). Debido a que un router no es un elemento secundario, el ID secundario de un router siempre es 0. En conjunto, 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, aquí se muestra cómo se calcula el RLOC16 para el nodo superior izquierdo (ID de router = 1 y ID secundario = 1):

El RLOC16 es 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 de Thread. Por ejemplo, el IID de los RLOC siempre tiene la siguiente forma:
0000:00ff:fe00:RLOC16
El IID, combinado con un prefijo de malla local, da como resultado el RLOC. Por ejemplo, mediante un prefijo de malla local de fde5:8dba:82e1:1::/64
, el RLOC para un nodo en el que RLOC16 = 0x401
es el siguiente:

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

Sin embargo, debido a que el RLOC se basa en la ubicación del nodo en la topología, el RLOC de un nodo puede cambiar a medida que cambia la topología.
Por ejemplo, quizás se quita el nodo 0x400
de la red Thread. Los nodos 0x401
y 0x402
establecen vínculos nuevos para routers diferentes y, como resultado, se les asigna un RLOC16 y RLOC nuevos:

Tipos de direcciones de acceso único
El RLOC es solo una de las muchas direcciones IPv6 de unidifusión que puede tener un dispositivo Thread. Otra categoría de direcciones se llama 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 la red de Thread.
A continuación, se detallan los tipos comunes de unicast.
Link-Local Address (LLA) |
|
---|---|
Es un EID que identifica una interfaz Thread a la que puede acceder una única transmisión de radio. | |
Ejemplo | fe80::54db:881c:3845:57f4 |
IID | Basado en la dirección extendida 802.15.4 |
Alcance | Vínculo local |
Detalles |
|
EID local de la malla (ML-EID) |
|
---|---|
Es un EID que identifica una interfaz de Thread, independiente de la topología de red. Se utiliza para alcanzar una interfaz de Thread dentro de la misma partición de Thread. También se conoce como dirección local única (ULA). | |
Ejemplo | fde5:8dba:82e1:1:416:993c:8399:35ab |
IID | Aleatorio, se elige luego de que se completa la puesta en marcha |
Alcance | Malla-local |
Detalles |
|
Localizador de rutas (RLOC) |
|
---|---|
Identifica una interfaz Thread, según su ubicación en la topología de red. | |
Ejemplo | fde5:8dba:82e1:1::ff:fe00:1001 |
IID | 0000:00ff:fe00:RLOC16 |
Alcance | Malla-local |
Detalles |
|
Localizador de Anycast (ALOC) |
|
---|---|
Identifica una interfaz Thread mediante la búsqueda de RLOC cuando no se conoce el RLOC de un destino. | |
Ejemplo | fde5:8dba:82e1:1::ff:fe00:fc01 |
IID | 0000:00ff:fe00:fcXX |
Alcance | Malla-local |
Detalles |
|
Dirección global de Unicast (GUA) |
|
---|---|
Un EID que identifica una interfaz Thread en un alcance global, más allá de una red Thread. | |
Ejemplo | 2000::54db:881c:3845:57f4 |
IID |
|
Alcance | Global |
Detalles |
|
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 su uso en 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 Sleepy End (SED) no están incluidos como destinatario en la tabla de multidifusión anterior. En cambio, Thread define la dirección de multidifusión IPv6 basada en prefijos de vínculo local y realm-local de alcance que se usa para todos los nodos de subprocesos, como los SED. Estas direcciones de multidifusión varían según la red Thread, ya que se compila en el prefijo de malla local unicast (consulta RFC 3306 para obtener más detalles sobre las direcciones de multidifusión IPv6 basadas en prefijos de unidifusión).
Los alcances arbitrarios aparte de los ya mencionados también son compatibles con los dispositivos de Thread.
Anycast
Anycast se usa para enrutar el tráfico a una interfaz de Thread cuando no se conoce 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 de 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:
ALOC‐16 | Tipo |
---|---|
0xfc00 |
Líder |
Desde el 0xfc01 al 0xfc0f |
Agente de DHCPv6 |
Desde el 0xfc10 al 0xfc2f |
Servicio |
Desde el 0xfc30 al 0xfc37 |
Comisionado |
Desde el 0xfc40 al 0xfc4e |
Agente de Neighbor Discovery |
0xfc38 -0xfc3f 0xfc4f -0xfcff |
Reservado |
Resumen
Qué aprendiste:
- Una red Thread tiene tres alcances: vínculo local, malla local y global.
- Un dispositivo Thread tiene varias direcciones IPv6 unicast
- Un RLOC representa la ubicación de un dispositivo en la red Thread
- Un AA-EID es único para un dispositivo Thread dentro de una partición y debe usarse en aplicaciones
- Thread usa multidifusión para reenviar datos a grupos de nodos y routers.
- El subproceso usa Anycast cuando se desconoce la RLOC de un destino
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 tu comprensión
ff03::2
. ¿Qué nos indica el dispositivo?ff03::2
. Lo hacen en el permiso Mesh-Local.