Xử lý IPv6

Xem nguồn trên GitHub

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

Kính ngắm

Phạm vi OT

Có 3 phạm vi trong một luồng luồng để xử lý các địa chỉ unicast:

  • Link-Local — tất cả giao diện đều có thể truy cập được bằng một lần truyền vô tuyến duy nhất
  • Mesh-Local — tất cả giao diện đều có thể truy cập được trong cùng một mạng Luồng
  • Toàn cầu – tất cả giao diện có thể truy cập được từ bên ngoài Mạng chuỗi

Hai phạm vi đầu tiên tương ứng với các tiền tố được chỉ định bởi một Mạng luồng. 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ỉ IPv6 unicast xác định một thiết bị luồng. Mỗi hàm có một hàm khác nhau dựa trên phạm vi và trường hợp sử dụng.

Trước khi tìm hiểu chi tiết về từng loại, hãy tìm hiểu thêm về một loại định dạng có tên là Định vị định tuyến (RLAT). RLAT xác định giao diện Luồng, dựa trên vị trí của giao diện đó trong cấu trúc liên kết mạng.

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

Tất cả các thiết bị đều được gán mã nhận dạng bộ định tuyến và mã nhận dạng trẻ em. Mỗi Bộ định tuyến duy trì một bảng gồm tất cả các phần tử con, tổ hợp của chúng sẽ 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 làm nổi bật trong cấu trúc liên kết sau, trong đó số trong Bộ định tuyến (ngũ giác) là Mã bộ định tuyến, và số trong Thiết bị cuối (vòng tròn) là Mã con:

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

Mã bộ định tuyến của mỗi con tương ứng với Cha mẹ (Bộ định tuyến). Vì Bộ định tuyến không phải là Con, nên Mã con cho Bộ định tuyến luôn bằng 0. Các giá trị này là duy nhất cho mỗi thiết bị trong mạng Luồng và được dùng để tạo RLAT16, đại diện cho 16 bit cuối của RENTITY.

Ví dụ: dưới đây là cách tính toán RLAT16 cho nút phía trên bên trái (ID bộ định tuyến = 1 và ID con = 1):

Hiệp phụ 16

R đích16 là một phần của Mã nhận dạng 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 dùng để xác định một số loại giao diện Luồng. Ví dụ: IID cho RPATH luôn có dạng sau:

0000:00ff:fe00:RLOC16

IID, kết hợp với Tiền tố cục bộ lưới, dẫn đến RLAT. Ví dụ: sử dụng Tiền tố lưới cục bộ của fde5:8dba:82e1:1::/64, RLAT cho một nút mà RLAT16 = 0x401 là:

RÔ ĐIỂM

Bạn có thể sử dụng cùng logic này để xác định RPATH cho tất cả các nút được làm nổi bật trong cấu trúc liên kết mẫu ở trên:

Cấu trúc liên kết OT với địa chỉ

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

Ví dụ: có thể nút 0x400 đã bị xoá khỏi mạng Luồng. Các nút 0x4010x402 thiết lập các đường liên kết mới đến các Bộ định tuyến khác nhau. Do đó, mỗi nút được gán một bộ dữ liệu RPATH16 và RLAT mới:

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

Loại địa chỉ Unicast

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

Dưới đây là thông tin chi tiết về các loại unicast phổ biến.

EID xác định giao diện luồng có thể truy cập được qua một lần truyền vô tuyến duy nhất.
Ví dụfe80::54db:881c:3845:57f4
IIDDựa trên địa chỉ mở rộng 802.15.4
Phạm viLiên kết địa phương
Chi tiết
  • Dùng để khám phá các vùng lân cận, định cấu hình đường liên kết và trao đổi thông tin định tuyến
  • Không phải địa chỉ có thể định tuyến
  • Luôn có tiền tố fe80::/16

EID cục bộ lưới (ML-EID)

EID xác định giao diện luồng, độc lập với cấu trúc liên kết mạng. Dùng để truy cập giao diện Luồng trong cùng một phân vùng Luồng. Còn được gọi là Địa chỉ địa phương duy nhất (ULA).
Ví dụfde5:8dba:82e1:1:416:993c:8399:35ab
IIDNgẫu nhiên, được chọn sau khi trả phí hoa hồng
Phạm viMạng lưới địa phương
Chi tiết
  • Không thay đổi khi cấu trúc liên kết thay đổi
  • Dùng trong các ứng dụng
  • Luôn có tiền tố fd00::/8

Bộ định tuyến (RLAT)

Xác định giao diện luồng, dựa trên vị trí của giao diện trong cấu trúc liên kết mạng.
Ví dụfde5:8dba:82e1:1::ff:fe00:1001
IID0000:00ff:fe00:RLOC16
Phạm viMạng lưới địa phương
Chi tiết
  • Được tạo khi thiết bị kết nối với mạng
  • Để phân phối sơ đồ dữ liệu IPv6 trong Mạng luồng
  • Thay đổi khi cấu trúc liên kết thay đổi
  • Thường không được ứng dụng sử dụng

Bộ định vị Anycast (ALAT)

Xác định giao diện luồng thông qua tính năng tra cứu RPATH, khi không biết R ghi của đích đến.
Ví dụfde5:8dba:82e1:1::ff:fe00:fc01
IID0000:00ff:fe00:fcXX
Phạm viMạng lưới địa phương
Chi tiết
  • fcXX = Đích đến APATH, tính năng này sẽ tra cứu RENTITY thích hợp
  • Thường không được ứng dụng sử dụng

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

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

Phát đa hướng

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

Địa chỉ IPv6 Phạm vi Đã gửi tới
ff02::1 Liên kết địa phương Tất cả các FTD và MED
ff02::2 Liên kết địa phương Tất cả các FTD
ff03::1 Mạng lưới địa phương Tất cả các FTD và MED
ff03::2 Mạng lưới địa phương Tất cả các FTD

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

Các phạm vi tuỳ ý nằm ngoài các phạm vi tuỳ ý cũng được hỗ trợ cho các Thiết bị luồng.

Anycast

Anycast được dùng để định tuyến lưu lượng truy cập đến giao diện Luồng khi RLAT của đích đến không xác định. Bộ định vị Anycast (ALAT) xác định vị trí của nhiều giao diện trong một phân vùng Luồng. 16 bit cuối cùng của APATH, được gọi là ALAT16, có định dạng 0xfcXX, đại diện cho loại A ABI.

Ví dụ: A A11 giữa 0xfc010xfc0f dành riêng cho các Nhân viên hỗ trợ DHCPv6. Nếu không xác định được tác nhân DHCPv6 của tác nhân DHCPv6 (có thể do cấu trúc liên kết mạng đã thay đổi), thông báo có thể được gửi tới tác nhân Avv6 A ABI để lấy RLAT.

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

ALU16 Loại
0xfc00 Dẫn đầu
0xfc010xfc0f Tác nhân DHCPv6
0xfc100xfc2f Dịch vụ
0xfc300xfc37 Ủy viên
0xfc400xfc4e Tác nhân khám phá lân cận
0xfc38 đến 0xfc3f
0xfc4f0xfcff
Đã đặt chỗ

Recap

Kiến thức bạn học được:

  • Một mạng luồng bao gồm ba phạm vi: Link-Local, Mesh-Local và Global
  • Thiết bị luồng có nhiều địa chỉ IPv6 unicast
    • R nỗ thể hiện vị trí của thiết bị trong mạng luồng
    • ML-EID là mã duy nhất dành cho một thiết bị luồng trong một phân vùng và các ứng dụng nên dùng
  • Luồng sử dụng đa hướng để chuyển tiếp dữ liệu đến các nhóm nút và bộ định tuyến
  • Luồng sử dụng anycast khi không xác định được RPATH của một đích đến

Để tìm hiểu thêm về cách xử lý IPv6 của Luồng, hãy xem mục 5.2 và 5.3 của Thông số kỹ thuật luồng.

Kiểm tra mức độ hiểu biết của bạn

Ba phạm vi nào được dùng để nhắm mục tiêu unicast trong Mạng luồng?
Riêng tư
Chưa chính xác.
Giao diện cục bộ
Chưa chính xác.
Liên kết địa phương
Chính xác.
Trang web địa phương
Chưa chính xác.
Mạng lưới địa phương
Chính xác.
Toàn cầu
Chính xác.
Mã thiết bị con có giá trị 0 có nghĩa là gì?
Thiết bị là Nhà xuất bản con.
Chưa chính xác.
Thiết bị là REED.
Đã đóng, nhưng không chính xác.
Thiết bị là Bộ định tuyến.
Chính xác. Bộ định tuyến luôn có mã nhận dạng con là 0.
Máy ảnh, là một nút trên mạng Thread, nhận được một RPATH16 và RLAT mới. Sự kiện nào sau đây có thể đã gây ra sự cố này?
Có người đã tải hình ảnh từ máy ảnh xuống từ xa.
Chưa chính xác. Sự kiện này sẽ không liên quan đến mạng Chuỗi.
Một bộ định tuyến đã ngắt kết nối mạng.
Chính xác. Khi bộ định tuyến bỏ mạng, cấu trúc liên kết mạng có thể thay đổi kết quả là thiết bị có thể tự quảng bá thành bộ định tuyến và nhận được một cơ sở dữ liệu mới (RPATH) mới.
Camera vào chế độ ngủ và thay đổi cấu trúc liên kết mạng.
Chưa chính xác. Khi bạn chuyển sang chế độ ngủ, thiết bị không nhận được địa chỉ mạng mới.
Một thiết bị trên mạng Luồng đăng ký địa chỉ phát đa hướng ff03::2. Điều này cho chúng tôi biết điều gì về thiết bị?
Đây là một Thiết bị cuối tối thiểu (MED).
Chưa chính xác.
Đây là thiết bị hoàn chỉnh (FED).
Chưa chính xác. (Gợi ý: Có thể không phải là FED.)
Đây là một Thiết bị tạo luồng tối thiểu (MTD).
Chưa chính xác.
Đây là một thiết bị có chuỗi đầy đủ (FTD).
Chính xác. Chỉ các thiết bị có chuỗi đầy đủ mới đăng ký địa chỉ phát đa hướng ff03::2. Họ làm như vậy trong phạm vi Mesh-Local.
Thread dùng để chuyển tiếp và định tuyến loại dữ liệu nào đến các nhóm nút và bộ định tuyến?
unicast
Chưa chính xác.
anycast
Chưa chính xác.
phát đa hướng
Chính xác.
truyền tin
Chưa chính xác.
Thiết bị luồng sử dụng loại địa chỉ và địa chỉ nào khi không xác định được RLAT của người nhận thông báo mong muốn?
unicast
Chưa chính xác.
anycast
Chính xác. Anycast cho phép thiết bị kết nối với một nút có R ghi không xác định, bằng cách xử lý ALAT của thiết bị.
phát đa hướng
Chưa chính xác.
truyền tin
Chưa chính xác.