Adresowanie IPv6

Wyświetl źródło na GitHubie

Przyjrzyjmy się, jak Thread identyfikuje poszczególne urządzenia w sieci i jakie typy adresów używają do komunikowania się ze sobą.

Zakresy

Zakresy dogrywki

W sieci typu Thread są trzy zakresy adresowania unicast:

  • Link-Local – wszystkie interfejsy, do których można uzyskać dostęp za pomocą jednej transmisji radiowej.
  • Mesh-Local – wszystkie interfejsy dostępne w ramach tej samej sieci Thread
  • Cały świat – wszystkie interfejsy, do których można uzyskać dostęp poza siecią Thread

Pierwsze 2 zakresy odpowiadają prefiksom wyznaczonym przez sieć Thread. Link-Local ma prefiksy fe80::/16, a sieci Mesh-Local mają prefiksy fd00::/8.

Unicast

Istnieje wiele adresów unicast IPv6, które identyfikują jedno urządzenie Thread. Każda z nich ma inną funkcję w zależności od zakresu i przypadku użycia.

Zanim opiszemy każdy z nich, dowiedz się więcej o typowym zlokalizowaniu routingu (RLOC). RLOC rozpoznaje interfejs Thread na podstawie swojej lokalizacji w topologii sieci.

Jak generowany jest lokalizator tras

Do wszystkich urządzeń przypisywany jest identyfikator routera oraz identyfikator podrzędny. Każdy router przechowuje tabelę wszystkich swoich elementów podrzędnych, które w unikalny sposób identyfikują urządzenie w topologii. Weźmy na przykład wyróżnione węzły w tej topologii, gdzie liczba routera (pentagon) to identyfikator routera, a liczba w urządzeniu końcowym (kręgu) to identyfikator podrzędny:

Topologia kanałów OT RLOC

Identyfikator routera każdego dziecka odpowiada jego elementowi nadrzędnemu (routerowi). Ponieważ router nie jest elementem podrzędnym, jego identyfikator podrzędny zawsze ma wartość 0. Wszystkie te wartości są unikalne dla każdego urządzenia w sieci i służą do utworzenia RLOC16, która odpowiada 16 ostatnim bitom tej listy.

Na przykład RLOC16 jest obliczany dla węzła lewego po lewej stronie (identyfikator routera = 1 i identyfikator podrzędny = 1):

DOGRYWKA 16

RLOC16 jest częścią identyfikatora interfejsu (IID), który odpowiada 64 ostatnim bitom adresu IPv6. Niektóre identyfikatory Identyfikują niektóre typy interfejsów Thread. Na przykład identyfikator IRL dla RLOC ma zawsze ten format:

0000:00ff:fe00:RLOC16

Identyfikator IID w połączeniu z lokalnym prefiksem typu mesh powoduje wygenerowanie RLOC. Na przykład przy użyciu lokalnego prefiksu sieci typu mesh fde5:8dba:82e1:1::/64 wartość RLOC dla węzła, w którym RLOC16 = 0x401 jest:

DOGRYWKA

Ta sama logika może posłużyć do określenia RLOC dla wszystkich wyróżnionych węzłów z przykładowej topologii:

Topologia OT z adresem

Ponieważ RLOC jest oparty na lokalizacji węzła w topologii, może się on zmieniać w zależności od topologii.

Na przykład węzeł 0x400 może zostać usunięty z sieci Thread. Węzły 0x401 i 0x402 ustanawiają nowe połączenia z różnymi routerami, w związku z czym otrzymują nowe RLOC16 i RLOC:

Topologia OT

Typy adresów Unicast

RLOC to tylko jeden z wielu adresów unicast IPv6, jakie może mieć urządzenie Thread. Inna kategoria adresów to tzw. identyfikatory punktów końcowych (EID), które identyfikują unikalny interfejs Thread w partycji sieci Thread. Identyfikatory EID są niezależne od topologii sieci Thread.

Typowe typy Unicast znajdziesz poniżej.

Identyfikator EID identyfikujący interfejs Thread, do którego można dotrzeć przez jedną transmisję radiową.
Przykładfe80::54db:881c:3845:57f4
IdentyfikatorNa podstawie 802.15.4 Rozszerzonego adresu
ZakresLink-local
Szczegóły
  • Służy do wykrywania sąsiadów, konfigurowania linków i wymiany informacji o routingu
  • Adres do przekierowania jest niedostępny
  • Ma prefiks fe80::/16

Identyfikator EID lokalnej sieci typu mesh (ML-EID)

Identyfikator EID identyfikujący interfejs wątku, niezależnie od topologii sieci. Służy do uzyskiwania dostępu do interfejsu wątku w tej samej partycji. Jest to również unikalny adres lokalny (ULA).
Przykładfde5:8dba:82e1:1:416:993c:8399:35ab
IdentyfikatorLosowa, wybrana po ukończeniu prowizji
ZakresSieć lokalna typu mesh
Szczegóły
  • Nie zmienia się wraz ze zmianą topologii
  • Powinny być używane przez aplikacje
  • Zawsze ma prefiks fd00::/8

Lokalizator routingu

Identyfikuje interfejs wątku na podstawie jego lokalizacji w topologii sieci.
Przykładfde5:8dba:82e1:1::ff:fe00:1001
Identyfikator0000:00ff:fe00:RLOC16
ZakresSieć lokalna typu mesh
Szczegóły
  • Wygenerowane po podłączeniu urządzenia do sieci
  • Służy do dostarczania danych w standardzie IPv6 w sieci
  • Zmiany w zależności od topologii
  • Nieużywane przez aplikacje

Lokalizator dowolnego typu (ALOC)

Identyfikuje interfejs wątku za pomocą wyszukiwania RLOC, gdy RLOC miejsca docelowego nie jest znany.
Przykładfde5:8dba:82e1:1::ff:fe00:fc01
Identyfikator0000:00ff:fe00:fcXX
ZakresSieć lokalna typu mesh
Szczegóły

Globalny adres Unicast

Identyfikator EID, który identyfikuje interfejs Wątek w zakresie globalnym poza siecią Thread.
Przykład2000::54db:881c:3845:57f4
Identyfikator
  • SLAAC – losowo przypisana przez urządzenie
  • DHCP – przypisane przez serwer DHCPv6
  • Ręcznie – przypisany przez warstwę aplikacji
ZakresGlobalny
Szczegóły
  • publiczny adres IPv6.
  • Ma prefiks 2000::/3

Multicast

Multicast służy do przekazywania informacji wielu urządzeniom jednocześnie. W sieci typu sieć określone adresy są zarezerwowane do użycia w trybie multicast dla różnych grup urządzeń, w zależności od zakresu.

Adres IPv6 Zakres Dostawa do
ff02::1 Link-local Wszystkie usługi FTD i MED
ff02::2 Link-local Wszystkie usługi FTD
ff03::1 Sieć lokalna typu mesh Wszystkie usługi FTD i MED
ff03::2 Sieć lokalna typu mesh Wszystkie usługi FTD

Możesz zauważyć, że w tabeli multicast nie ma odbiorców, które korzystają z urządzeń końcowych Slepy. Zamiast tego definiuje on adres IPv6 lokalnego i lokalnego zakresu lokalnego multilinku IPv6 używany we wszystkich węzłach wątków, w tym w SED. Te adresy multicastów różnią się w zależności od sieci Thread, ponieważ jest ona oparta na prefiksie Mesh-Local (więcej informacji o adresach IPv6 opartych na unicast-prefix) znajdziesz w RFC 3306.

Zakresy dowolne inne niż wymienione są również obsługiwane na urządzeniach z wątkami.

Anycast

W każdym przypadku do kierowania ruchu do interfejsu Threading jest używany protokół RLOC, który nie jest znany. Lokalizator dowolnych lokalizacji (ALOC) określa lokalizację wielu interfejsów w partycji wątku. Ostatnie 16 bitów ALOC, zwanych ALOC16, jest w formacie 0xfcXX, który reprezentuje typ ALOC.

Na przykład kod ALOC16 między 0xfc01 a 0xfc0f jest zarezerwowany dla agentów DHCPv6. Jeśli określony RLHC vHCPv6 jest nieznany (być może z powodu zmiany topologii sieci), do ALHC agenta DHCPv6 można wysłać wiadomość, aby uzyskać RLOC.

Wątek określa te wartości ALOC16:

ALOC16 Typ
0xfc00 Lider
0xfc010xfc0f Agent DHCPv6
0xfc100xfc2f Usługa
0xfc300xfc37 Komisarz
0xfc400xfc4e Sąsiad
0xfc380xfc3f
0xfc4f0xfcff
Zarezerwowano

Podsumowanie

Czego się nauczyliśmy:

  • Sieć typu Thread składa się z 3 zakresów: Link-Local, Mesh-Local i Global
  • Urządzenie Thread ma wiele adresów IPv6 unicast
    • RLOC wskazuje lokalizację urządzenia w sieci typu Thread
    • Identyfikator ML-EID jest unikalny dla urządzenia Thread na partycji i powinien być używany przez aplikacje
  • Wątek wykorzystuje multiemisję do przekazywania danych do grup węzłów i routerów
  • Wątek korzysta z funkcji premium, gdy RLOC miejsca docelowego jest nieznany

Więcej informacji o adresowaniu IPv6 IPv6 znajdziesz w sekcjach 5.2 i 5.3 specyfikacji Thread.

Sprawdź swoją wiedzę

Które 3 zakresy są używane do obsługi adresów unicast w sieci typu Thread?
Prywatność
Nieprawidłowo.
Interfejs lokalny
Nieprawidłowo.
Link-local
Dobra odpowiedź.
Lokalna
Nieprawidłowo.
Sieć lokalna typu mesh
Dobra odpowiedź.
Globalny
Dobra odpowiedź.
Co oznacza, jeśli urządzenie ma identyfikator podrzędny równy 0?
Urządzenie to dziecko.
Nieprawidłowo.
Urządzenie korzysta z REED.
Prawie dobrze, ale nieprawidłowo.
To jest router.
Dobra odpowiedź. Router ma zawsze identyfikator podrzędny: 0.
Kamera będąca węzłem w sieci typu Thread odbiera nowe RLOC16 i RLOC. Które z tych zdarzeń mogły je spowodować?
Ktoś zdalnie pobrał zdjęcia z aparatu.
Nieprawidłowo. To zdarzenie nie miałoby wpływu na sieć Thread.
Router opuścił sieć.
Dobra odpowiedź. Gdy router opuszcza sieć, topologia sieci ulega zmianie, co może spowodować, że urządzenie będzie promować się jako router i otrzymywać nowy RLOC.
Kamera przeszła w tryb uśpienia, co zmieniło topologię sieci.
Nieprawidłowo. Włączenie trybu uśpienia nie musi spowodować, że urządzenie otrzyma nowy adres sieciowy.
Urządzenie w sieci korzysta z adresu multicast ff03::2. Co wynika z tego urządzenia?
Jest to minimalne urządzenie końcowe (MED).
Nieprawidłowo.
Jest to pełne urządzenie (FED).
Nieprawidłowo. Podpowiedź: może to być program FED.
Jest to urządzenie MDM (ang. Minimal Thread Device).
Nieprawidłowo.
Jest to urządzenie z pełnym wątkiem (FTD).
Dobra odpowiedź. Tylko urządzenia z pełnym wątkiem subskrybują adres multicast ff03::2. Robią to w zakresie sieci typu mesh-local.
Jakiego typu adresowanie i routing wykorzystuje Thread do przekazywania danych do grup węzłów i routerów?
Unicast
Nieprawidłowo.
Anycast
Nieprawidłowo.
multicast
Dobra odpowiedź.
komunikat
Nieprawidłowo.
Jakiego typu adresowania i routingu używa urządzenie Thread, gdy docelowy RLOC jest nieznany?
Unicast
Nieprawidłowo.
Anycast
Dobra odpowiedź. Anycast pozwala urządzeniu na dotarcie do węzła, którego RLOC nie jest znane, przez wywołanie ALOC urządzenia.
multicast
Nieprawidłowo.
komunikat
Nieprawidłowo.