Google is committed to advancing racial equity for Black communities. See how.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Định địa chỉ IPv6

Xem nguồn trên GitHub

Chúng ta hãy xem cách Thread xác định từng thiết bị trong mạng và loại địa chỉ nào chúng sử dụng để giao tiếp với nhau.

Phạm vi

Phạm vi OT

Có ba phạm vi trong mạng Thread để định địa chỉ unicast:

  • Link-Local - tất cả các giao diện có thể truy cập được bằng một đường truyền vô tuyến duy nhất
  • Mesh-Local - tất cả các giao diện có thể truy cập được trong cùng một mạng Thread
  • Toàn cầu - tất cả các giao diện có thể truy cập được từ bên ngoài mạng Chủ đề

Hai phạm vi đầu tiên tương ứng với các tiền tố được chỉ định bởi mạng Thread. Link-Local có tiền tố là fe80::/16 , trong khi Mesh-Local có tiền tố là fd00::/8 .

Unicast

Có nhiều địa chỉ unicast IPv6 xác định một thiết bị Thread duy nhất. Mỗi loại có một chức năng khác nhau dựa trên phạm vi và trường hợp sử dụng.

Trước khi chúng tôi trình bày chi tiết từng loại, chúng ta hãy tìm hiểu thêm về một loại phổ biến, được gọi là Định vị Định tuyến (RLOC). RLOC xác định một giao diện Thread, dựa trên vị trí của nó trong cấu trúc liên kết mạng.

Cách tạo bộ định vị định tuyến

Tất cả các thiết bị đều được gán một ID bộ định tuyến và ID con. Mỗi Bộ định tuyến duy trì một bảng của tất cả các Con của chúng, sự kết hợp của bảng này xác định duy nhất một thiết bị trong cấu trúc liên kết. Ví dụ: hãy xem xét các nút được đánh dấu trong cấu trúc liên kết sau, trong đó số trong Bộ định tuyến (hình ngũ giác) là ID Bộ định tuyến và số trong Thiết bị cuối (vòng tròn) là ID con:

Cấu trúc liên kết OT RLOC

ID Router của mỗi Child tương ứng với Parent (Router) của chúng. Vì một Bộ định tuyến không phải là Con, ID Con của một Bộ định tuyến luôn bằng 0. Cùng với nhau, các giá trị này là duy nhất cho mỗi thiết bị trong mạng Thread và được sử dụng để tạo RLOC16, đại diện cho 16 bit cuối cùng của RLOC.

Ví dụ: đây là cách RLOC16 được tính cho nút phía trên bên trái (Router ID = 1 và ID con = 1):

OT RLOC16

RLOC16 là một phần của Mã định danh giao diện (IID), tương ứng với 64 bit cuối cùng của địa chỉ IPv6. Một số IID có thể được sử dụng để xác định một số loại giao diện Thread. Ví dụ: IID cho RLOCs luôn có dạng 0000:00ff:fe00: RLOC16 .

IID, kết hợp với Tiền tố Mesh-Local, dẫn đến RLOC. Ví dụ: sử dụng Tiền tố Mesh-Local của fde5:8dba:82e1:1::/64 , RLOC cho nút có RLOC16 = 0x401 là:

OT RLOC

Logic tương tự này có thể được sử dụng để xác định RLOC cho tất cả các nút được đánh dấu trong cấu trúc liên kết mẫu ở trên:

Cấu trúc liên kết OT w / Địa chỉ

Tuy nhiên, vì RLOC dựa trên vị trí của nút trong cấu trúc liên kết, RLOC của nút có thể thay đổi khi cấu trúc liên kết thay đổi.

Ví dụ, có lẽ nút 0x400 bị xóa khỏi mạng Chủ đề. Các nút 0x4010x402 thiết lập các liên kết mới đến các Bộ định tuyến khác nhau và kết quả là chúng được gán một RLOC16 và RLOC mới:

Cấu trúc liên kết OT sau khi thay đổi

Các loại địa chỉ Unicast

RLOC chỉ là một trong nhiều địa chỉ unicast IPv6 mà thiết bị Thread có thể có. Một loại địa chỉ khác được gọi là Số nhận dạng điểm cuối (EID), xác định giao diện Chủ đề duy nhất trong phân vùng mạng Chủ đề. EID độc lập với cấu trúc liên kết mạng Thread.

Các loại unicast phổ biến được trình bày chi tiết bên dưới.

EID xác định giao diện Chủ đề có thể truy cập được bằng một đường truyền vô tuyến duy nhất.
Thí dụ fe80::54db:881c:3845:57f4
IID Dựa trên địa chỉ mở rộng 802.15.4
Phạm vi Liên kết cục bộ
Chi tiết
  • Được sử dụng để khám phá hàng xóm, định cấu hình liên kết và trao đổi thông tin định tuyến
  • Không phải là một địa chỉ có thể định tuyến
  • Luôn có tiền tố là fe80::/16

Mesh-Local EID (ML-EID)

EID xác định giao diện Chủ đề, độc lập với cấu trúc liên kết mạng. Được sử dụng để truy cập một giao diện Thread trong cùng một phân vùng Thread. Còn được gọi là Địa chỉ cục bộ duy nhất (ULA).
Thí dụ fde5:8dba:82e1:1:416:993c:8399:35ab
IID Ngẫu nhiên, được chọn sau khi vận hành xong
Phạm vi Mesh-Local
Chi tiết
  • Không thay đổi khi cấu trúc liên kết thay đổi
  • Nên được sử dụng bởi các ứng dụng
  • Luôn có tiền tố fd00::/8

Định vị định tuyến (RLOC)

Xác định giao diện Thread, dựa trên vị trí của nó trong cấu trúc liên kết mạng.
Thí dụ fde5:8dba:82e1:1::ff:fe00:1001
IID 0000:00ff:fe00: RLOC16
Phạm vi Mesh-Local
Chi tiết
  • Được tạo sau khi thiết bị kết nối với mạng
  • Để phân phối các biểu đồ dữ liệu IPv6 trong mạng Chủ đề
  • Thay đổi khi cấu trúc liên kết thay đổi
  • Nói chung không được sử dụng bởi các ứng dụng

Anycast Locator (ALOC)

Xác định giao diện Chủ đề thông qua tra cứu RLOC, khi RLOC của điểm đến không được biết.
Thí dụ fde5:8dba:82e1:1::ff:fe00:fc01
IID 0000:00ff:fe00:fc XX
Phạm vi Mesh-Local
Chi tiết
  • fc XX = ALOC đích , tìm kiếm RLOC thích hợp
  • Nói chung không được sử dụng bởi các ứng dụng

Địa chỉ Unicast Toàn cầu (GUA)

EID xác định giao diện Chủ đề trên phạm vi toàn cầu, ngoài mạng Chủ đề.
Thí dụ 2000::54db:881c:3845:57f4
IID
  • SLAAC - Được chỉ định ngẫu nhiên bởi chính thiết bị
  • DHCP - Được chỉ định bởi máy chủ DHCPv6
  • Thủ công - Được chỉ định bởi lớp ứng dụng
Phạm vi Toàn cầu
Chi tiết
  • Địa chỉ IPv6 công khai
  • Luôn có tiền tố là 2000::/3

Multicast

Multicast được sử dụng để truyền thông tin đến nhiều thiết bị cùng một lúc. Trong mạng Thread, các địa chỉ cụ thể được dành riêng để sử dụng đa hướng với các nhóm thiết bị khác nhau, tùy thuộc vào phạm vi.

Địa chỉ IPv6 Phạm vi Đã giao cho
ff02::1 Liên kết cục bộ Tất cả FTD và MED
ff02::2 Liên kết cục bộ Tất cả FTD
ff03::1 Mesh-Local Tất cả FTD và MED
ff03::2 Mesh-Local Tất cả FTD

Bạn có thể nhận thấy rằng Thiết bị kết thúc buồn ngủ (SED) không được bao gồm dưới dạng người nhận trong bảng phát đa hướng ở trên. Thay vào đó, Luồng xác định địa chỉ đa hướng IPv6 dựa trên tiền tố địa phương liên kết-cục bộ và phạm vi địa phương được sử dụng cho Tất cả các nút luồng, bao gồm cả SED. Các địa chỉ multicast này khác nhau tùy theo mạng Thread, vì nó được xây dựng trên tiền tố unicast Mesh-Local (xem RFC 3306 để biết thêm chi tiết về địa chỉ multicast IPv6 dựa trên tiền tố unicast).

Các phạm vi tùy ý ngoài những phạm vi đã được liệt kê cũng được hỗ trợ cho các thiết bị Thread.

Anycast

Anycast được sử dụng để định tuyến lưu lượng truy cập đến giao diện Thread khi RLOC của điểm đến không được biết. Anycast Locator (ALOC) xác định vị trí của nhiều giao diện trong một phân vùng Thread. 16 bit cuối cùng của ALOC, được gọi là ALOC16, có định dạng 0xfc XX , đại diện cho loại ALOC.

Ví dụ: ALOC16 từ 0xfc01 đến 0xfc0f được dành riêng cho Đại lý DHCPv6. Nếu DHCPv6 Agent RLOC cụ thể là không xác định (có thể do cấu trúc liên kết mạng đã thay đổi), một thông báo có thể được gửi đến DHCPv6 Agent ALOC để lấy RLOC.

Luồng xác định các giá trị ALOC16 sau:

ALOC16 Kiểu
0xfc00 Thủ lĩnh
0xfc01 - 0xfc0f Tác nhân DHCPv6
0xfc10 - 0xfc2f Dịch vụ
0xfc30 - 0xfc37 Ủy viên
0xfc40 - 0xfc4e Tác nhân khám phá hàng xóm
0xfc38 - 0xfc3f
0xfc4f - 0xfcff
Kín đáo

Tóm tắt

Những gì bạn đã học:

  • Một mạng Thread bao gồm ba phạm vi: Liên kết-Cục bộ, Mạng lưới-Cục bộ và Toàn cầu
  • Một thiết bị Thread có nhiều địa chỉ IPv6 unicast
    • RLOC đại diện cho vị trí của thiết bị trong mạng Chủ đề
    • ML-EID là duy nhất cho thiết bị Thread trong một phân vùng và nên được các ứng dụng sử dụng
  • Luồng sử dụng phát đa hướng để chuyển tiếp dữ liệu tới các nhóm nút và bộ định tuyến
  • Luồng sử dụng anycast khi RLOC của đích không xác định

Để tìm hiểu thêm về cách định địa chỉ IPv6 của Thread, hãy xem phần 5.2 và 5.3 của Đặc tả luồng .