Phí hoa hồng trên lưới

Xem nguồn trên GitHub

Ủy viên và người tham gia

Để uỷ quyền, bạn cần có một thiết bị có vai trò Người uỷ quyền và một thiết bị có vai trò Người tham gia. Uỷ viên là một thiết bị Thread trong mạng Thread hiện có hoặc một thiết bị bên ngoài mạng Thread (chẳng hạn như điện thoại di động) thực hiện vai trò Uỷ viên. Tham gia là thiết bị muốn tham gia mạng Thread.

Bạn có thể dùng Thread Commissioner để xác thực một thiết bị trên mạng. Ứng dụng này không chuyển hoặc sở hữu thông tin xác thực mạng Thread, chẳng hạn như khoá mạng.

Hướng dẫn này trình bày cách triển khai cơ bản trên mạng lưới mà không cần có Trình uỷ quyền hoặc Bộ định tuyến biên bên ngoài. Để tìm hiểu cách sử dụng Người uỷ quyền bên ngoài, hãy xem phần Uỷ quyền luồng bên ngoài.

Để biết ví dụ về cách uỷ quyền bằng thiết bị ảo, hãy xem Lớp học lập trình mô phỏng OpenThread.

Bật vai trò

Để bật vai trò Ủy viên và Người tham gia, hãy sử dụng các lựa chọn sau đây:

Phương thức Mô tả
-DOT_COMMISSIONER=ON Bật vai trò Uỷ viên
-DOT_JOINER=ON Bật vai trò Tham gia

Ví dụ: để tạo nền tảng mẫu CC2538 chỉ dùng làm Trình tham gia:

./script/build -DOT_JOINER=ON

Cài đặt ROM từng tệp nhị phân vào thiết bị mong muốn. Một thiết bị đóng vai trò là Người uỷ quyền, còn thiết bị kia đóng vai trò là Người tham gia.

Bạn có thể xem hướng dẫn cụ thể về cách tạo và cài đặt ROM cho các nền tảng được hỗ trợ trong kho lưu trữ OpenThread của từng nền tảng. Hãy xem tổ chức OpenThread trên GitHub để tìm kho lưu trữ.

Tạo mạng

Tạo một mạng trên thiết bị đóng vai trò là Uỷ viên:

dataset init new
Done
dataset
Active Timestamp: 1
Channel: 13
Channel Mask: 07fff800
Ext PAN ID: d63e8e3e495ebbc3
Mesh Local Prefix: fd3d:b50b:f96d:722d/64
Network Key: dfd34f0f05cad978ec4e32b0413038ff
Network Name: OpenThread-8f28
PAN ID: 0x8f28
PSKc: c23a76e98f1a6483639b1ac1271e2e27
Security Policy: 0, onrcb
Done
dataset commit active
Done
ifconfig up
Done
thread start
Done

Đợi vài giây rồi xác minh rằng thiết bị đã trở thành Thread Leader (Trưởng nhóm luồng):

state
leader
Done

Bắt đầu vai trò Ủy viên

Trên cùng một thiết bị đó, hãy bắt đầu vai trò Ủy viên:

commissioner start
Done

Sử dụng ký tự đại diện * để cho phép bất kỳ Người tham gia nào có Thông tin xác thực người tham gia được chỉ định nhận hoa hồng trên mạng. Thông tin xác thực của người tham gia được dùng (cùng với Mã số định dạng mở rộng của thẻ tín dụng và Tên mạng) để tạo Khoá được chia sẻ trước cho Thiết bị (PSKd). Sau đó, PSKd được dùng để xác thực thiết bị trong quá trình Cấp phép luồng. Thông tin đăng nhập dành cho người tham gia phải là duy nhất cho mỗi thiết bị.

commissioner joiner add * J01NME
Done

Chỉ cho phép một Người tham gia cụ thể

Để hạn chế việc uỷ quyền cho một thiết bị Joiner cụ thể, hãy sử dụng tham số eui64. Đây là IEEE EUI-64 do nhà sản xuất chỉ định cho thiết bị.

Trên thiết bị đóng vai trò là Trình kết nối, hãy lấy EUI-64:

eui64
2f57d222545271f1
Done

Sử dụng giá trị đó thay vì ký tự đại diện * trong lệnh commissioner joiner trên thiết bị của Ủy viên:

commissioner joiner add 2f57d222545271f1 J01NME
Done

Bắt đầu vai trò Tham gia

Trên thiết bị đóng vai trò là Người tham gia, hãy đặt lại về trạng thái ban đầu, sau đó bật vai trò Người tham gia bằng cùng một Thông tin xác thực của người tham gia được chỉ định trên Người uỷ quyền:

factoryreset
ifconfig up
Done
joiner start J01NME
Done

Chờ vài giây để xác nhận:

Join success!

Thiết bị Joiner đã tự xác thực thành công thông qua Commissioner và nhận thông tin đăng nhập Thread Network.

Bây giờ, hãy bắt đầu Thread trên thiết bị của người tham gia:

thread start
Done

Xác thực tính xác thực

Kiểm tra trạng thái trên thiết bị Joiner để xác thực rằng thiết bị đã tham gia mạng. Trong vòng hai phút, trạng thái chuyển đổi từ thành phần con sang bộ định tuyến:

state
child
Done
...
state
router
Done