O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Endereçamento IPv6

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Veja o código no GitHub

Vamos ver como a Thread identifica cada dispositivo na rede e quais tipos de endereços eles usam para se comunicar uns com os outros.

Escopos

Escopos OT

Há 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 acessíveis na mesma rede Thread
  • Global: todas as interfaces acessíveis de fora de uma rede Thread

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

Unicast

Há 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 saber mais sobre um tipo comum, chamado de locador de roteamento (RLOC). O RLOC identifica uma interface de linha de execução com base na localização na topologia de rede.

Como um localizador de roteamento é gerado

Um código de roteador e um ID filho são atribuídos a todos os dispositivos. Cada roteador mantém uma tabela de todos os filhos, a combinação de que identifica exclusivamente um dispositivo na topologia. Por exemplo, considere os nós destacados na topologia a seguir, em que 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 de OT RLOC

Cada ID de roteador do Filho corresponde ao 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 filho = 1):

OT RLOC16

O RLOC16 faz parte do identificador de interface (IID, na sigla em inglês), que corresponde aos últimos 64 bits do endereço IPv6. Alguns IIDs podem ser usados para identificar alguns tipos de interface do Thread. Por exemplo, o IID dos RLOCs está sempre neste formato:

0000:00ff:fe00:RLOC16

O IID, combinado com um prefixo local da rede mesh, resulta no RLOC. Por exemplo, usando um prefixo de malha local de fde5:8dba:82e1:1::/64, o RLOC de um nó em que 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 de OT com endereço

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

Por exemplo, talvez o nó 0x400 tenha sido removido da rede Thread. Os nós 0x401 e 0x402 estabelecem novos links para diferentes roteadores. Como resultado, cada um deles recebe um novo RLOC16 e um RLOC:

Topologia de OT após a 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 é chamada de identificadores de endpoint (EIDs, na sigla em inglês), que identificam uma interface Thread única dentro de uma partição de rede Thread. Os EIDs são independentes da topologia de rede da linha de execução.

Os tipos comuns de unicast estão detalhados abaixo.

Um EID que identifica uma interface Thread acessível por uma única transmissão de rádio.
Exemplofe80::54db:881c:3845:57f4
CódigoCom base no endereço estendido 802.15.4
EscopoLink 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 fe80::/16

EID da malha local (ML-EID)

Um EID que identifica uma interface Thread, independente da topologia de rede. Usado para acessar uma interface de linha de execução na mesma partição. Também chamado de endereço local exclusivo (ULA, na sigla em inglês).
Exemplofde5:8dba:82e1:1:416:993c:8399:35ab
CódigoAleatório, escolhido após a conclusão do comissionamento
EscopoRede mesh local
Detalhes
  • Não muda conforme a topologia muda
  • Deve ser usado por apps
  • Sempre tem um prefixo fd00::/8

Localizador de roteamento (RLOC)

Identifica uma interface de linha de execução com base na localização dela na topologia da rede.
Exemplofde5:8dba:82e1:1::ff:fe00:1001
Código0000:00ff:fe00:RLOC16
EscopoRede mesh local
Detalhes
  • Gerado quando um dispositivo é conectado a uma rede
  • Para enviar datagramas IPv6 em uma rede Thread
  • Mudanças à medida que a topologia muda
  • Geralmente não usado por aplicativos

Localizador de Anycast (ALOC)

Identifica uma interface de linha de execução por meio da pesquisa de RLOC, quando o RLOC de um destino não é conhecido.
Exemplofde5:8dba:82e1:1::ff:fe00:fc01
Código0000:00ff:fe00:fcXX
EscopoRede mesh local
Detalhes
  • fcXX = destino AlOC, que procura o RLOC apropriado
  • Geralmente não usado por aplicativos

Endereço global Unicast (GUA)

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

Multicast

O multicast é usado para comunicar informações para 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 Scope Entregue em
ff02::1 Link local Todos os FTDs e MEDs
ff02::2 Link local Todos os FTDs
ff03::1 Rede mesh local Todos os FTDs e MEDs
ff03::2 Rede mesh local Todos os FTDs

Observe que os dispositivos de fim de sono (SEDs, na sigla em inglês) não estão incluídos como um destinatário na tabela de multicast acima. Em vez disso, a linha de execução define o endereço multicast IPv6 baseado em prefixo unicast de link local e realm usado para todos os nós da linha de execução, incluindo SEDs. Esses endereços de multicast variam de acordo com a rede Thread, porque são criados com o prefixo Mesh-Local unicast (consulte RFC 3306 para mais detalhes sobre endereços multicast IPv6 baseados em prefixo unicast).

Escopos arbitrários além dos já listados também são compatíveis com dispositivos Thread.

Anycast

O Anycast é usado para rotear o tráfego a 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, chamado ALOC16, estão no formato 0xfcXX, 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 tenha mudado), uma mensagem poderá ser enviada a um agente ALOC do DHCPv6 para receber o RLOC.

A linha de execução define os seguintes valores de ALOC16:

ALOC16 Tipo
0xfc00 Líder
0xfc010xfc0f Agente DHCPv6
0xfc100xfc2f Serviço
0xfc300xfc37 Comissionário
0xfc400xfc4e Agente de descoberta do vizinho
0xfc38 a 0xfc3f
0xfc4f0xfcff
Reservado

Recapitulação

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 de um dispositivo Thread em uma partição e deve ser usado por apps
  • A linha de execução usa multicast para encaminhar dados para grupos de nós e roteadores
  • A linha de execução 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 Especificação de linha de execução.

Teste seu conhecimento

Quais são os três escopos usados para endereçamento unicast em uma rede Thread?
Particular
Incorreta.
Interface local-
Incorreta.
Link local
correto.
Local
Incorreta.
Rede mesh local
correto.
Global
correto.
O que significa quando um dispositivo tem um ID de criança igual a 0?
O dispositivo é uma criança.
Incorreta.
O dispositivo é um REED.
Fechar, mas errado.
O dispositivo é um roteador.
correto. Um roteador sempre tem um ID filho de 0.
Uma câmera, que é um nó em uma rede Thread, recebe um novo RLOC16 e um RLOC. Qual dos seguintes eventos pode ter causado isso?
Alguém fez o download remoto de imagens da câmera.
Incorreta. Esse evento não ajudaria a rede Thread.
Um roteador saiu da rede.
correto. Quando um roteador sai de uma rede, a topologia da rede muda, o que pode fazer com que o dispositivo se promova para um roteador e receba um novo RLOC.
A câmera entrou no modo de espera, o que alterou a topologia da rede.
Incorreta. Entrar no modo de espera pode não fazer com que um dispositivo receba um novo endereço de rede.
Um dispositivo em uma rede Thread se inscreve no endereço multicast ff03::2. O que isso nos diz sobre o dispositivo?
É um MED mínimo.
Incorreta.
É um dispositivo final completo (FED).
Incorreta. Dica: pode ou não ser uma FED.
É um ThreadD Minimum Device (MTD).
Incorreta.
É um dispositivo de linha de execução completa (FTD).
correto. Somente dispositivos com linha de execução completa se inscrevem no endereço multicast ff03::2. Isso é feito no escopo da malha local.
Que tipo de endereçamento e roteamento o Thread usa para encaminhar dados para grupos de nós e roteadores?
Unicast
Incorreta.
Anycast
Incorreta.
multicast
correto.
transmitir
Incorreta.
Que tipo de endereçamento e roteamento um dispositivo Thread usa quando o RLOC do destinatário da mensagem pretendido é desconhecido?
Unicast
Incorreta.
Anycast
correto. O Anycast permite que um dispositivo alcance um nó cujo RLOC não seja conhecido, abordando o ALOC do dispositivo.
multicast
Incorreta.
transmitir
Incorreta.