Để 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
Donedataset
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 Donedataset commit active
Doneifconfig up
Donethread 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
Donejoiner 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