Adresowanie IPv6

Wyświetl źródło na GitHubie

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

Zakresy

Zakresy OT

W sieci Threaders są 3 zakresy adresów unicast:

  • Link-Local – wszystkie interfejsy, do których można dotrzeć drogą radiową
  • Mesh-Local – wszystkie interfejsy dostępne w ramach tej samej sieci Thread
  • Globalnie – wszystkie interfejsy dostępne poza siecią Thread

Pierwsze 2 zakresy odpowiadają prefiksom wyznaczonym przez sieć Thread. Link-Local ma prefiksy fe80::/16, a sieć typu mesh-local – prefiksy fd00::/8.

Unicast

Do 1 urządzenia z wątkiem jest przypisanych wiele adresów jednostronicowych IPv6. Każda z nich ma inną funkcję w zależności od zakresu i przypadku użycia.

Zanim omówimy każdy z tych typów, dowiedz się więcej o typie popularnego – Lokalizatora tras (RLOC). RLOC identyfikuje interfejs wątku na podstawie jego lokalizacji w topologii sieci.

Jak jest generowany lokalizator routingu

Wszystkie urządzenia mają przypisany identyfikator routera i identyfikatora podrzędnego. Każdy router przechowuje tabelę ze wszystkimi elementami podrzędnymi, które w sposób unikalny identyfikują urządzenie w topologii. Weźmy na przykład wyróżnione węzły w poniższej topologii: liczba w routerze (pentagon) to identyfikator routera, a liczba w urządzeniu końcowym (okręgu) to identyfikator podrzędny:

Topologia OT RLOC

Każdy identyfikator routera podrzędnego odpowiada elementowi nadrzędnemu (routerowi). Router nie jest elementem podrzędnym, więc identyfikator podrzędny routera ma zawsze wartość 0. Razem wartości są unikalne dla każdego urządzenia w sieci Thread i są używane do tworzenia RLOC16, która reprezentuje 16 ostatnich bitów RLOC.

Oto na przykład sposób obliczania RLOC16 dla lewego górnego rogu (Identyfikator trasy = 1 i Identyfikator podrzędny = 1):

DOGR. 16.

RLOC16 jest częścią identyfikatora interfejsu (IID), która odpowiada ostatnim 64-bitowym adresom IPv6. Niektóre identyfikatory IID mogą służyć do identyfikowania niektórych typów interfejsów wątków. Na przykład identyfikator IRL RLOC ma zawsze taki format:

0000:00ff:fe00:RLOC16

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

DOSTAWA

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

Topologia z adresem

Ponieważ RLOC zależy od lokalizacji węzła w topologii, lista RLOC może się 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 tworzą nowe połączenia z różnymi routerami, w wyniku czego otrzymują nowe: RLOC16 i RLOC:

Topologia domeny OT

Typy adresów Unicast

RLOC to tylko jeden z wielu adresów jednostronicowych protokołu IPv6, które może mieć urządzenie z wątkami. Kolejna kategoria adresów jest nazywana identyfikatorami punktów końcowych (EID), które identyfikują unikalny interfejs Thread w ramach partycji sieciowej wątku. Identyfikatory EID są niezależne od topologii sieci Thread.

Popularne typy uniksów znajdziesz poniżej.

Identyfikator EID identyfikujący interfejs Thread, który jest dostępny dla pojedynczej transmisji radiowej.
Przykładfe80::54db:881c:3845:57f4
IdentyfikatorNa podstawie 802.15.4 rozszerzonego adresu
ZakresLink lokalny
Szczegóły
  • Służy do wykrywania sąsiadów, konfigurowania linków i wymiany informacji o trasach wymiany
  • Adres nie jest kierowany
  • Ma zawsze prefiks fe80::/16

Identyfikator sieci lokalnej typu mesh (ML-EID)

Identyfikator EID identyfikujący interfejs Thread, niezależnie od topologii sieci. Pozwala uzyskać dostęp do interfejsu wątku w tej samej partycji wątku. Nazywany także unikalnym adresem lokalnym.
Przykładfde5:8dba:82e1:1:416:993c:8399:35ab
IdentyfikatorLosowa, wybrana po zakończeniu prowizji
ZakresSieć lokalna typu mesh
Szczegóły
  • Nie zmienia się wraz ze zmianą topologii
  • Powinny być używane przez aplikacje
  • Ma zawsze prefiks fd00::/8

Lokalizator routingu (RLOC)

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
  • Wygenerowano po podłączeniu urządzenia do sieci.
  • Wyświetlanie wykresów danych IPv6 w sieci Thread
  • Zmienia się wraz ze zmianą topologii
  • Nieużywane przez aplikacje

Lokalizator dowolnego typu (ALOC)

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

Globalny adres jednostronicowy (GUA)

Identyfikator EID identyfikujący interfejs wątku w zakresie globalnym poza siecią Thread.
Przykład2000::54db:881c:3845:57f4
Identyfikator
  • SLAAC – losowo wybierana przez urządzenie
  • DHCP – przypisywana przez serwer DHCPv6
  • Ręcznie – przypisane przez warstwę aplikacji
ZakresGlobalny
Szczegóły
  • Publiczny adres IPv6
  • Ma zawsze prefiks 2000::/3

Multicast

Multicast służy do przesyłania informacji do wielu urządzeń jednocześnie. W sieci wątków określone adresy są zarezerwowane do użytku w trybie multicast w przypadku różnych grup urządzeń (w zależności od zakresu).

Adres IPv6 Zakres Dostarczono do:
ff02::1 Link lokalny Wszystkie FTD i MED
ff02::2 Link lokalny Wszystkie FTD
ff03::1 Sieć lokalna typu mesh Wszystkie FTD i MED
ff03::2 Sieć lokalna typu mesh Wszystkie FTD

Zauważ, że w tabeli multiemisji powyżej nie ma adresatów urządzenia SED. Zamiast tego Thread określa adres HTTPcast multilokalny-lokalny i lokalny Realm oparty na prefiksie IPv6 dla wszystkich węzłów w wątku, w tym SED. Te adresy multicast różnią się w zależności od sieci Thread, ponieważ jest oparty na architekturze unicast Mesh-Local (zobacz RFC 3306, więcej informacji o adresach IPv6 opartych na prefiksach unicast).

Na urządzeniach z wątkami są obsługiwane dowolne zakresy wykraczające poza te wymienione powyżej.

Anycast

Anycast służy do kierowania ruchu do interfejsu Thread, gdy nieznany jest RLOC miejsca docelowego. Lokalizator dowolnych odbiorców (ALOC) wskazuje 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 ALOC16 między 0xfc01 a 0xfc0f jest zarezerwowany dla agentów DHCPv6. Jeśli konkretny agent DHCPv6 RLOC jest nieznany (może to wynikać z tego, że topologia sieci uległa zmianie), wiadomość może zostać wysłana do agenta ALHCPv6, aby uzyskać RLOC.

Wątek definiuje te wartości ALOC16:

ALOC16 Typ
0xfc00 Lider
0xfc010xfc0f Agent DHCPv6
0xfc100xfc2f Usługa
0xfc300xfc37 Komisarz
0xfc400xfc4e Agent Discovery sąsiadów
0xfc380xfc3f
0xfc4f0xfcff
Zarezerwowane

W skrócie

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 Universalcast
    • RLOC reprezentuje lokalizację urządzenia w wątku.
    • ML-EID jest unikalny dla urządzenia z wątkiem na partycji i powinien być używany przez aplikacje
  • Wątek wykorzystuje multicast do przesyłania danych do grup węzłów i routerów
  • Thread używa funkcji anycast, gdy RLOC miejsca docelowego jest nieznany

Więcej informacji o adresowaniu IPv6 w wątkach znajdziesz w sekcjach 5.2 i 5.3 specyfikacji wątku.

Sprawdź swoją wiedzę

Które 3 zakresy są używane do obsługi adresów unicast w sieci z wątkami?
Sieć prywatna
Źle.
Interfejs lokalny
Źle.
Link lokalny
Prawidłowo.
Lokalna
Źle.
Sieć lokalna typu mesh
Prawidłowo.
Globalny
Prawidłowo.
Co oznacza, gdy urządzenie ma identyfikator podrzędny 0?
Urządzenie jest urządzeniem podrzędnym.
Źle.
Urządzenie to REED.
Prawie dobrze.
Urządzenie to router.
Prawidłowo. Router ma zawsze identyfikator podrzędny 0.
Kamera, która jest węzłem w sieci Thread, otrzymuje nowy RLOC16 i RLOC. Które z tych zdarzeń mogły spowodować tę sytuację?
Ktoś zdalnie pobrał zdjęcia z aparatu.
Źle. To zdarzenie nie miałoby znaczenia w sieci Thread.
Router odszedł od sieci.
Prawidłowo. Topologia sieci zmienia router, co może spowodować, że urządzenie zacznie promować się na routerze, a następnie uzyskać nowy RLOC.
Kamera znalazła się w trybie uśpienia, co spowodowało zmianę topologii sieci.
Źle. Uruchomienie trybu uśpienia nie musi spowodować, że urządzenie otrzyma nowy adres sieciowy.
Urządzenie w sieci z wątkiem korzysta z adresu ff03::2 multiemisji. Co mówi o tym urządzeniu?
Jest to minimalne urządzenie końcowe (MED).
Źle.
Jest to pełne urządzenie (FED).
Źle. (Wskazówka: może to być FED).
Jest to urządzenie z małymi gwintami (MTD).
Źle.
Jest to urządzenie z wątkiem Full Thread.
Prawidłowo. Tylko urządzenia z pełnym wątkiem subskrybują adres multiemisji ff03::2. Robią to w zakresie sieci typu mesh-local.
Jakiego typu adresowania i routingu używa Thread, by przekazać dane do grup węzłów i routerów?
Unicast
Źle.
Anycast
Źle.
multicast
Prawidłowo.
transmisja
Źle.
Jakiego typu adresowania i routingu używa urządzenie Thread, jeśli docelowy RLOC jest nieznany?
Unicast
Źle.
Anycast
Prawidłowo. Anycast pozwala urządzeniu dotrzeć do węzła, którego RLOC nie jest znane, wysyłając adres ALOC urządzenia.
multicast
Źle.
transmisja
Źle.