Alamat IPv6

Lihat sumber di GitHub

Mari kita lihat bagaimana Thread mengidentifikasi setiap perangkat dalam jaringan, dan apa jenis alamat yang mereka gunakan untuk berkomunikasi satu sama lain.

Cakupan

Cakupan OT

Ada tiga cakupan di jaringan Thread untuk pengalamatan unicast:

  • Link-Local — semua antarmuka yang dapat dijangkau dengan satu transmisi radio
  • Mesh-Local — semua antarmuka yang dapat dijangkau dalam jaringan Thread yang sama
  • Global — semua antarmuka yang dapat dijangkau dari luar jaringan Thread

Dua cakupan pertama sesuai dengan awalan yang ditetapkan oleh jaringan Thread. Link-Local memiliki awalan fe80::/16, sedangkan Mesh-Local memiliki awalan fd00::/8.

Unicast

Ada beberapa alamat unicast IPv6 yang mengidentifikasi satu perangkat Thread. Masing-masing memiliki fungsi yang berbeda berdasarkan ruang lingkup dan kasus penggunaannya.

Sebelum kita merinci setiap tipe, mari kita pelajari lebih lanjut tentang tipe umum, yang disebut Pencari Rute (RLOC). RLOC mengidentifikasi antarmuka Thread, berdasarkan berada di topologi jaringan.

Cara Pencari Rute dibuat

Semua perangkat diberi ID Router dan ID Turunan. Setiap {i>Router<i} menyimpan tabel semua Anak mereka, kombinasi yang secara unik mengidentifikasi perangkat dalam topologi. Misalnya, perhatikan node yang disorot di berikut ini, di mana jumlah dalam {i>Router<i} (pentagon) adalah {i>Router<i} ID, dan nomor di Perangkat Akhir (lingkaran) adalah ID Anak:

Topologi RLOC OT

Setiap ID Router Turunan sesuai dengan Induknya (Router). Karena {i>Router<i} adalah bukan Turunan, ID Turunan untuk Router selalu 0. Bersama-sama, nilai-nilai ini unik untuk setiap perangkat dalam jaringan Thread, dan digunakan untuk membuat RLOC16, yang mewakili 16 bit terakhir RLOC.

Misalnya, berikut adalah cara RLOC16 dihitung untuk node kiri atas (Router ID = 1 dan ID Anak = 1):

RLOC16 OT

RLOC16 adalah bagian dari Pengidentifikasi Antarmuka (IID), yang sesuai dengan 64 bit terakhir dari alamat IPv6. Beberapa IID dapat digunakan untuk mengidentifikasi beberapa jenis antarmuka Thread. Misalnya, IID untuk RLOC selalu dalam bentuk ini:

0000:00ff:fe00:RLOC16

IID, yang dikombinasikan dengan Mesh-Local Prefix, akan menghasilkan RLOC. Misalnya, menggunakan Mesh-Local Prefix dari fde5:8dba:82e1:1::/64, RLOC untuk node tempat RLOC16 = 0x401 adalah:

RLOC OT

Logika yang sama ini dapat digunakan untuk menentukan RLOC bagi semua node yang disorot dalam topologi sampel di atas:

Topologi OT dengan Alamat

Namun, karena RLOC didasarkan pada lokasi {i>node<i} dalam topologi, RLOC {i>node<i} dapat berubah sesuai dengan perubahan topologi.

Misalnya, mungkin node 0x400 dihapus dari jaringan Thread. Node 0x401 dan 0x402 membuat link baru ke Router yang berbeda, dan akibatnya mereka masing-masing diberi RLOC16 dan RLOC baru:

Topologi OT setelah Perubahan

Jenis alamat unicast

RLOC hanyalah salah satu dari banyak alamat unicast IPv6 yang dapat dimiliki perangkat Thread. Kategori alamat lainnya disebut ID Endpoint (EID), yang mengidentifikasi antarmuka Thread yang unik dalam partisi jaringan Thread. EID adalah terlepas dari topologi jaringan Thread.

Jenis unicast umum dijelaskan di bawah ini.

EID yang mengidentifikasi antarmuka Thread yang dapat dijangkau oleh satu transmisi radio.
Contohfe80::54db:881c:3845:57f4
IIDBerdasarkan 802.15.4 Alamat yang Diperpanjang
CakupanLink-Lokal
Detail
  • Digunakan untuk menemukan tetangga, mengonfigurasi link, dan bertukar informasi perutean
  • Bukan alamat yang dapat dirutekan
  • Selalu memiliki awalan fe80::/16

EID Mesh-Lokal (ML-EID)

EID yang mengidentifikasi antarmuka Thread, terlepas dari topologi jaringan. Digunakan untuk menjangkau antarmuka Thread dalam partisi Thread yang sama. Juga disebut sebagai Alamat Lokal Unik (ULA).
Contohfde5:8dba:82e1:1:416:993c:8399:35ab
IIDAcak, dipilih setelah komisi selesai
CakupanMesh-Lokal
Detail
  • Tidak berubah sesuai perubahan topologi
  • Sebaiknya digunakan oleh aplikasi
  • Selalu memiliki awalan fd00::/8

Pencari Rute (RLOC)

Mengidentifikasi antarmuka Thread, berdasarkan lokasinya dalam topologi jaringan.
Contohfde5:8dba:82e1:1::ff:fe00:1001
IID0000:00ff:fe00:RLOC16
CakupanMesh-Lokal
Detail
  • Dibuat setelah perangkat terhubung ke jaringan
  • Untuk mengirimkan datagram IPv6 dalam jaringan Thread
  • Perubahan seiring perubahan topologi
  • Umumnya tidak digunakan oleh aplikasi

Pencari Lokasi Anycast (ALOC)

Mengidentifikasi antarmuka Thread melalui pencarian RLOC, saat RLOC tujuan tidak diketahui.
Contohfde5:8dba:82e1:1::ff:fe00:fc01
IID0000:00ff:fe00:fcXX
CakupanMesh-Lokal
Detail
  • fcXX = Tujuan ALOC, yang mencari RLOC yang sesuai
  • Umumnya tidak digunakan oleh aplikasi

Alamat Unicast Global (GUA)

EID yang mengidentifikasi antarmuka Thread pada cakupan global di luar jaringan Thread.
Contoh2000::54db:881c:3845:57f4
IID
  • SLAAC — Ditetapkan secara acak oleh perangkat itu sendiri
  • DHCP — Ditetapkan oleh server DHCPv6
  • Manual — Ditetapkan oleh lapisan aplikasi
CakupanGlobal
Detail
  • Alamat IPv6 publik
  • Selalu memiliki awalan 2000::/3

{i>Multicast<i}

Multicast digunakan untuk mengomunikasikan informasi ke beberapa perangkat sekaligus. Di Jaringan Thread, alamat tertentu disediakan untuk penggunaan multicast dengan kelompok perangkat, tergantung dari cakupannya.

Alamat IPv6 Cakupan Terkirim ke
ff02::1 Link-Lokal Semua FTD dan MED
ff02::2 Link-Lokal Semua FTD
ff03::1 Mesh-Lokal Semua FTD dan MED
ff03::2 Mesh-Lokal Semua FTD

Anda mungkin melihat bahwa Perangkat Akhir Mengantuk (SED) tidak disertakan sebagai penerima dalam tabel multicast di atas. Sebagai gantinya, Thread mendefinisikan link-local dan realm-local cakupan unicast awalan IPv6 multicast yang digunakan untuk Semua Node Thread, termasuk SED. Multicast ini alamat bervariasi menurut jaringan Thread, karena dibangun di atas {i>unicast<i} Awalan Mesh-Local (lihat RFC 3306 untuk detail selengkapnya tentang alamat multicast berbasis awalan unicast).

Cakupan arbitrer di luar yang sudah tercantum juga didukung untuk Thread perangkat.

Anycast

{i>Anycast<i} digunakan untuk merutekan lalu lintas ke antarmuka Thread ketika RLOC sebuah tujuan tidak diketahui. {i>Anycast Locator<i} (ALOC) mengidentifikasi lokasi beberapa antarmuka dalam partisi Thread. 16 bit terakhir dari ALOC, yang disebut ALOC16, memiliki format 0xfcXX, yang mewakili jenis ALOC.

Misalnya, ALOC16 antara 0xfc01 dan 0xfc0f dicadangkan untuk DHCPv6 Agen. Jika RLOC Agen DHCPv6 spesifik tidak diketahui (mungkin karena jaringan telah berubah), pesan dapat dikirim ke Agen DHCPv6 (ALOC) untuk mendapatkan RLOC.

Thread menentukan nilai ALOC16 berikut:

ALOC16 Jenis
0xfc00 Posisi teratas
0xfc010xfc0f Agen DHCPv6
0xfc100xfc2f Layanan
0xfc300xfc37 Komisaris
0xfc400xfc4e Agen Penemuan Tetangga
0xfc380xfc3f
0xfc4f0xfcff
Direservasi

Rekap

Yang telah Anda pelajari:

  • Jaringan Thread terdiri dari tiga cakupan: Link-Local, Mesh-Local, dan Global
  • Perangkat Thread memiliki beberapa alamat IPv6 unicast
    • RLOC mewakili lokasi perangkat di jaringan Thread
    • ML-EID bersifat unik untuk perangkat Thread dalam partisi dan harus digunakan oleh aplikasi
  • Thread menggunakan multicast untuk meneruskan data ke grup {i>node<i} dan {i>router<i}
  • Thread menggunakan anycast saat RLOC tujuan tidak diketahui

Untuk mempelajari lebih lanjut tentang pengalamatan IPv6 Thread, lihat bagian 5.2 dan 5.3 dari Spesifikasi Thread.

Menguji pemahaman Anda

Tiga cakupan manakah yang digunakan untuk penentuan alamat unicast dalam jaringan Thread?
Pribadi
Salah.
Antarmuka-Lokal
Salah.
Link-Lokal
Benar.
Lokal-Situs
Salah.
Mesh-Lokal
Benar.
Global
Benar.
Apa artinya jika perangkat memiliki ID Anak 0?
Perangkat adalah Turunan.
Salah.
Perangkat ini adalah REED.
Hampir, tetapi salah.
Perangkat adalah {i>Router<i}.
Benar. Router selalu memiliki ID Turunan 0.
Kamera, yang merupakan node pada jaringan Thread, menerima RLOC16 baru dan RLOC. Manakah dari peristiwa berikut yang mungkin menyebabkan hal ini?
Seseorang mendownload gambar dari kamera dari jarak jauh.
Salah. Peristiwa ini tidak ada hubungannya dengan Thread jaringan.
Sebuah {i>router<i} terputus dari jaringan.
Benar. Ketika {i>router<i} menghentikan jaringan, jaringan perubahan topologi, yang dapat mengakibatkan perangkat mempromosikan dirinya sendiri ke {i>router<i} dan mendapatkan RLOC baru.
Kamera memasuki mode tidur, yang mengubah topologi jaringan.
Salah. Memasuki mode tidur tidak serta merta menyebabkan suatu perangkat untuk menerima alamat jaringan baru.
Perangkat di jaringan Thread berlangganan ff03::2 {i>multicast address<i}. Informasi apa yang dapat diketahui dari perangkat ini?
Ini adalah Perangkat Akhir Minimal (MED).
Salah.
Ini adalah Perangkat Akhir Lengkap (FED).
Salah. (Petunjuk: Bisa jadi ini adalah FED atau mungkin juga bukan.)
Ini adalah Minimal Thread Device (MTD).
Salah.
Ini adalah Perangkat Thread Penuh (FTD).
Benar. Hanya Perangkat Thread Lengkap yang berlangganan Alamat multicast ff03::2. Mereka melakukannya di bagian {i>Mesh-Local<i} ruang lingkup proyek.
Jenis pengalamatan dan {i>routing<i} apa yang digunakan Thread untuk meneruskan data ke grup {i>node<i} dan {i>router<i}?
{i>unicast<i}
Salah.
{i>anycast<i}
Salah.
{i>multicast<i}
Benar.
siaran
Salah.
Jenis pengalamatan dan perutean apa yang digunakan perangkat Thread ketika RLOC penerima pesan yang dimaksud tidak diketahui?
{i>unicast<i}
Salah.
{i>anycast<i}
Benar. {i>Anycast<i} memungkinkan perangkat untuk menjangkau {i>node<i} yang RLOC-nya tidak yang diketahui, dengan menangani ALOC perangkat.
{i>multicast<i}
Salah.
siaran
Salah.