O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Endereçamento IPv6

Ver fonte no GitHub

Vamos dar uma olhada em como o Thread identifica cada dispositivo na rede e que tipos de endereços eles usam para se comunicarem.

Scopes

OT Scopes

Existem três escopos em uma rede Thread para endereçamento unicast:

  • Link-Local - todas as interfaces acessíveis por uma única transmissão de rádio
  • Mesh-Local - todas as interfaces alcançáveis ​​na mesma rede Thread
  • Global - todas as interfaces acessíveis de fora de uma rede Thread

Os primeiros dois escopos correspondem a prefixos designados por uma rede Thread. Link-Local tem prefixos fe80::/16 , enquanto Mesh-Local tem prefixos fd00::/8 .

Unicast

Existem vários endereços unicast IPv6 que identificam um único dispositivo Thread. Cada um tem uma função diferente com base no escopo e no caso de uso.

Antes de detalhar cada tipo, vamos aprender mais sobre um tipo comum, chamado Routing Locator (RLOC). O RLOC identifica uma interface Thread, com base em sua localização na topologia da rede.

Como um localizador de roteamento é gerado

Todos os dispositivos são atribuídos a um ID de roteador e um ID de filho. Cada roteador mantém uma tabela de todos os seus filhos, cuja combinação identifica exclusivamente um dispositivo dentro da topologia. Por exemplo, considere os nós destacados na topologia a seguir, onde o número em um roteador (pentágono) é o ID do roteador e o número em um dispositivo final (círculo) é o ID filho:

Topologia OT RLOC

A ID do roteador de cada criança corresponde ao seu pai (roteador). Como um roteador não é filho, o ID filho de um roteador é sempre 0. Juntos, esses valores são exclusivos para cada dispositivo na rede Thread e são usados ​​para criar o RLOC16, que representa os últimos 16 bits do RLOC.

Por exemplo, veja como o RLOC16 é calculado para o nó superior esquerdo (ID do roteador = 1 e ID do filho = 1):

OT RLOC16

O RLOC16 faz parte do Identificador de Interface (IID), que corresponde aos últimos 64 bits do endereço IPv6. Alguns IIDs podem ser usados ​​para identificar alguns tipos de interfaces de Thread. Por exemplo, o IID para RLOCs é sempre no formato 0000:00ff:fe00: RLOC16 .

O IID, combinado com um prefixo local de malha, resulta no RLOC. Por exemplo, usando um prefixo local de fde5:8dba:82e1:1::/64 de fde5:8dba:82e1:1::/64 , o RLOC para um nó onde RLOC16 = 0x401 é:

OT RLOC

Essa mesma lógica pode ser usada para determinar o RLOC para todos os nós destacados na topologia de amostra acima:

Topologia OT com endereço

No entanto, como o RLOC é baseado na localização do nó na topologia, o RLOC de um nó pode mudar conforme a topologia muda.

Por exemplo, talvez o nó 0x400 seja removido da rede Thread. Os nós 0x401 e 0x402 estabelecem novos links para roteadores diferentes e, como resultado, cada um deles é atribuído a um novo RLOC16 e RLOC:

Topologia OT após mudança

Tipos de endereço Unicast

O RLOC é apenas um dos muitos endereços unicast IPv6 que um dispositivo Thread pode ter. Outra categoria de endereços são chamados de Endpoint Identifiers (EIDs), que identificam uma interface de Thread exclusiva dentro de uma partição de rede de Thread. Os EIDs são independentes da topologia de rede Thread.

Os tipos comuns de unicast são detalhados abaixo.

Um EID que identifica uma interface Thread acessível por uma única transmissão de rádio.
Exemplo fe80::54db:881c:3845:57f4
IID Baseado em 802.15.4 Extended Address
Escopo Link-Local
Detalhes
  • Usado para descobrir vizinhos, configurar links e trocar informações de roteamento
  • Não é um endereço roteável
  • Sempre tem um prefixo de fe80::/16

EID local de malha (ML-EID)

Um EID que identifica uma interface Thread, independente da topologia da rede. Usado para acessar uma interface de Thread dentro da mesma partição de Thread. Também chamado de endereço local exclusivo (ULA).
Exemplo fde5:8dba:82e1:1:416:993c:8399:35ab
IID Aleatório, escolhido após a conclusão do comissionamento
Escopo Mesh-Local
Detalhes
  • Não muda conforme a topologia muda
  • Deve ser usado por aplicativos
  • Sempre tem um prefixo fd00::/8

Localizador de roteamento (RLOC)

Identifica uma interface de Thread, com base em sua localização na topologia da rede.
Exemplo fde5:8dba:82e1:1::ff:fe00:1001
IID 0000:00ff:fe00: RLOC16
Escopo Mesh-Local
Detalhes
  • Gerado assim que um dispositivo se conecta a uma rede
  • Para entrega de datagramas IPv6 em uma rede Thread
  • Muda conforme a topologia muda
  • Geralmente não é usado por aplicativos

Anycast Locator (ALOC)

Identifica uma interface Thread por meio de pesquisa RLOC, quando o RLOC de um destino não é conhecido.
Exemplo fde5:8dba:82e1:1::ff:fe00:fc01
IID 0000:00ff:fe00:fc XX
Escopo Mesh-Local
Detalhes
  • fc XX = destino ALOC , que procura o RLOC apropriado
  • Geralmente não é usado por aplicativos

Endereço Unicast Global (GUA)

Um EID que identifica uma interface Thread em um escopo global, além de uma rede Thread.
Exemplo 2000::54db:881c:3845:57f4
IID
  • SLAAC - atribuído aleatoriamente pelo próprio dispositivo
  • DHCP - atribuído por um servidor DHCPv6
  • Manual - atribuído pela camada de aplicativo
Escopo Global
Detalhes
  • Um endereço IPv6 público
  • Sempre tem um prefixo de 2000::/3

Multicast

Multicast é usado para comunicar informações a vários dispositivos ao mesmo tempo. Em uma rede Thread, endereços específicos são reservados para uso multicast com diferentes grupos de dispositivos, dependendo do escopo.

Endereço IPv6 Escopo Entregue a
ff02::1 Link-Local Todos os FTDs e MEDs
ff02::2 Link-Local Todos os FTDs
ff03::1 Mesh-Local Todos os FTDs e MEDs
ff03::2 Mesh-Local Todos os FTDs

Você pode notar que os Sleepy End Devices (SEDs) não estão incluídos como destinatários na tabela multicast acima. Em vez disso, Thread define o endereço multicast IPv6 baseado em prefixo de unicast de escopo local de link e local de domínio usado para Todos os Nós de Thread, incluindo SEDs. Esses endereços multicast variam de acordo com a rede Thread, porque são construídos no prefixo unicast Mesh-Local (consulte RFC 3306 para obter mais detalhes sobre endereços multicast IPv6 baseados em prefixo unicast).

Escopos arbitrários além daqueles já listados também são suportados para dispositivos Thread.

Anycast

Anycast é usado para rotear o tráfego para uma interface Thread quando o RLOC de um destino não é conhecido. Um Anycast Locator (ALOC) identifica a localização de várias interfaces em uma partição Thread. Os últimos 16 bits de um ALOC, denominado ALOC16, estão no formato 0xfc XX , que representa o tipo de ALOC.

Por exemplo, um ALOC16 entre 0xfc01 e 0xfc0f é reservado para Agentes DHCPv6. Se o RLOC do Agente DHCPv6 específico for desconhecido (talvez porque a topologia da rede mudou), uma mensagem pode ser enviada a um Agente DHCPv6 ALOC para obter o RLOC.

Thread define os seguintes valores ALOC16:

ALOC16 Tipo
0xfc00 Líder
0xfc01 - 0xfc0f Agente DHCPv6
0xfc10 - 0xfc2f Serviço
0xfc30 - 0xfc37 Comissário
0xfc40 - 0xfc4e Agente de descoberta vizinho
0xfc38 - 0xfc3f
0xfc4f - 0xfcff
Reservado

Recapitular

O que você aprendeu:

  • Uma rede Thread consiste em três escopos: Link-Local, Mesh-Local e Global
  • Um dispositivo Thread tem vários endereços IPv6 unicast
    • Um RLOC representa a localização de um dispositivo na rede Thread
    • Um ML-EID é exclusivo para um dispositivo Thread dentro de uma partição e deve ser usado por aplicativos
  • Thread usa multicast para encaminhar dados para grupos de nós e roteadores
  • Thread usa anycast quando o RLOC de um destino é desconhecido

Para saber mais sobre o endereçamento IPv6 do Thread, consulte as seções 5.2 e 5.3 da Thread Specification .