ZeroTier hiển thị thành viên là OK, mạng đã được tham gia, mà vẫn không có địa chỉ để ping. Sự kết hợp đó giống như lỗi và thường là cấu hình bị tách đôi: phê duyệt thành viên là một công tắc, còn cấp địa chỉ cho nó là một công tắc khác. Một mạng có thể chấp nhận thiết bị và không bao giờ cấp gì cho nó, vì pool hoặc chế độ cấp phát chưa từng được thiết lập.

Hãy đọc cả hai phía trước khi thay đổi bất kỳ bên nào. Câu trả lời hiện ra ở hai nơi, và chỉ một trong hai nằm trên bộ điều khiển.

Cấp quyền và cấp phát là hai công tắc khác nhau

Cấp quyền trả lời nút này có được tham gia mạng hay không. Cấp phát địa chỉ trả lời mạng trao cho nó cái gì sau khi tham gia, và câu trả lời đó đến từ một pool địa chỉ cộng với chế độ cấp phát. Không thiết lập nào hàm ý thiết lập kia. Một cái là sự cho phép, cái kia là sự phân bổ.

Cấu hình của bộ điều khiển thường mang một tuyến được quản lý, một dải địa chỉ và chế độ quyết định có dùng cấp phát tự động hay không. Sao chép một ID mạng từ môi trường khác chỉ mang theo tư cách thành viên và không mang gì từ cấu hình đó.

Đó là lý do một thiết bị có thể trông khỏe trong danh sách thành viên trong khi cột địa chỉ được cấp vẫn trống. Bộ điều khiển đã chấp nhận nó và không có gì để trao. Cả hai câu đều đúng cùng lúc.

LayerWhat it decidesWhere it is configured
MembershipWhether the node may joinMember authorization on the network
PoolWhich addresses exist to hand outNetwork address range
Assignment modeWhether they are handed out automaticallyNetwork v4/v6 assignment settings

Đọc trạng thái thực tế của thành viên

Hãy hỏi máy khách xem nó thực sự nhận được gì, thay vì bộ điều khiển định trao gì. Danh sách thường hiển thị cột trạng thái và địa chỉ, còn dạng JSON hiển thị cấu hình mạng mà máy khách đã áp dụng, gồm cả địa chỉ và tuyến được quản lý.

zerotier-cli listnetworks
zerotier-cli -j listnetworks | jq '.networks[] | {nwid, status, assignedAddresses}'

So sánh hai đầu ra cho cùng một ID mạng, không phải cho các bộ điều hợp vật lý xuất hiện trong danh sách của chính hệ điều hành. Một dòng báo OK với tập địa chỉ rỗng xác nhận khoảng trống cấp phát chứ không phải sự cố kết nối. Đọc nhầm dòng là nửa còn lại của lỗi này.

Trạng thái ACCESS_DENIED chỉ ngược về cấp quyền, và đó là một cách sửa khác. Nếu lệnh hoàn toàn không đọc được token xác thực cục bộ, vấn đề là quyền cục bộ chứ không phải bộ điều khiển từ chối, và cách sửa nằm trên chính máy bạn đang ngồi.

Khi máy khách bỏ qua những gì bộ điều khiển gửi xuống

Máy khách có thiết lập riêng quyết định có áp dụng cấu hình được quản lý hay không. Một hồ sơ tắt địa chỉ được quản lý, tuyến được quản lý hoặc việc xử lý tuyến mặc định sẽ ném bỏ những gì mạng gửi xuống, và danh sách thành viên vẫn trông đúng từ phía bộ điều khiển.

Những cờ đó chỉ ảnh hưởng nút cục bộ. Thay đổi chúng không làm thay đổi những gì thành viên khác nhận được, và không sửa được một pool chưa từng được định nghĩa.

Vì vậy chẩn đoán có hai nhánh: hoặc bộ điều khiển không có địa chỉ để trao, hoặc máy khách đã từ chối địa chỉ được trao. Hai nhánh dẫn tới những cách sửa khác nhau trên những máy khác nhau. Đầu ra JSON phân biệt chúng, vì địa chỉ hoặc vắng mặt trong cấu hình mạng, hoặc có mặt mà thiếu trong trạng thái đã áp dụng của máy khách.

Nên sửa gì thay vì tự tạo ra một địa chỉ

Gõ một địa chỉ tĩnh tùy tiện là lựa chọn thứ ba đầy cám dỗ và tệ nhất. Một địa chỉ ngẫu nhiên có thể đụng với nút khác, nằm ngoài các tuyến mà mạng quảng bá, hoặc rơi vào dải mà luật tường lửa xử lý khác đi. Nó cũng che giấu pool còn thiếu với bất kỳ ai nhìn vào mạng sau đó. Hãy sửa việc cấp phát, và để bộ điều khiển với máy khách thống nhất kết quả.

Hỏi quản trị viên xem mạng nên trao gì, rồi kiểm tra pool có bao phủ dải dự định và chế độ cấp phát đã bật chưa. Hãy tham gia lại sau khi thay đổi thay vì chờ máy khách tự mình lập tức tới cấu hình mới.

Khi địa chỉ xuất hiện, hãy kiểm tra đúng thứ bạn thực sự cần: một peer, một dịch vụ hoặc một mạng con sau cổng. Với tới một LAN sau thành viên cần định tuyến và chuyển tiếp vượt ngoài tư cách thành viên, còn truy cập internet thông thường cần một nút thoát, nên địa chỉ hoạt động được là khởi đầu của phép thử đó chứ không phải kết thúc.

Bài viết liên quan