ZeroTier báo ONLINE nhưng ACCESS_DENIED: sửa ở đâu?
ONLINE mô tả liên hệ với hạ tầng gốc; ACCESS_DENIED mô tả tư cách thành viên trong một mạng. Việc sửa nằm ở phía bộ điều khiển.
ZeroTier báo ONLINE ở cấp dịch vụ và ACCESS_DENIED ở cấp mạng, và cặp này không phải mâu thuẫn. Cái thứ nhất là phát biểu về đường đi giữa máy khách của bạn và hạ tầng phối hợp. Cái thứ hai là phát biểu về danh sách thành viên của một mạng. Hãy đọc riêng chúng, và sự kết hợp sẽ cho bạn biết chính xác nơi cần tìm.
ONLINE đo cái gì
Lệnh trạng thái cho biết dịch vụ cục bộ có đường đi hoạt động tới các máy chủ gốc phối hợp việc dò tìm máy ngang hàng hay không. Nó không nói gì về một mạng riêng lẻ, và cũng không nói gì về việc bộ điều khiển đã phê duyệt thiết bị này chưa. Vì vậy một bản cài mới trên kết nối đang hoạt động báo ONLINE ngay lập tức, trước khi bất kỳ ai cho phép nó ở bất kỳ đâu.
Hãy coi ONLINE là phát biểu về hệ thống đường ống và trạng thái từng mạng là phát biểu về tư cách thành viên. Dùng cái này để giải thích cái kia chính là nơi phần lớn sự nhầm lẫn này bắt đầu.
ACCESS_DENIED yêu cầu bạn làm gì
Trong một mạng riêng, bộ điều khiển giữ danh sách thành viên. Một nút không có trong danh sách đó, hoặc có trong danh sách nhưng chưa được cấp quyền, sẽ nhận ACCESS_DENIED cùng với không có cấu hình nào ngoài bắt tay cơ bản. Việc sửa nằm ở phía bộ điều khiển và cần địa chỉ nút chứ không phải tên máy, vì vậy hãy đối chiếu địa chỉ trong kết quả của máy khách với mục thành viên rồi cấp quyền cho mục đó.
Cài lại máy khách là bước đầu sai, vì bản cài mới mang theo danh tính mới và quyền cũ không còn áp dụng cho nó nữa. Nếu mạng là công khai, cùng trạng thái đó chỉ vào một điều kiện khác, vì vậy hãy hỏi chủ bộ điều khiển xem mạng có riêng tư không trước khi yêu cầu phê duyệt. Chính câu hỏi đó quyết định phần còn lại của cuộc trò chuyện.
Văn bản trạng thái là một nhánh, không phải phán quyết
Mỗi trạng thái thu hẹp lần kiểm tra tiếp theo, và việc đọc chúng như một thông báo lỗi duy nhất là điều biến việc sửa hai phút thành cả buổi chiều cài lại. NOT_FOUND nghĩa là định danh bạn nhập không tồn tại ở bộ điều khiển đó, nên câu hỏi về tư cách thành viên vẫn chưa được chạm tới. REQUESTING_CONFIGURATION nghĩa là nút đã tới bộ điều khiển và đang chờ một cấu hình không đến, điều này chỉ vào đường đi chứ không phải quyền. OK nghĩa là tư cách thành viên và cấu hình đã sẵn sàng, nên câu hỏi tiếp theo là địa chỉ được cấp và sau đó là chính dịch vụ.
Hai lệnh tách biệt toàn bộ việc này, và cả hai đều đọc cùng một máy khách. Tài liệu tham chiếu ZeroTier CLI liệt kê các chuỗi trạng thái theo từng mạng mà chúng trả về. Lệnh thứ nhất là góc nhìn dịch vụ và lệnh thứ hai là theo từng mạng:
zerotier-cli status
zerotier-cli listnetworks
Hãy giữ văn bản trạng thái khi bạn nhờ quản trị viên trợ giúp. Một lệnh join cục bộ đã in xác nhận chỉ chứng minh rằng yêu cầu được chấp nhận cục bộ, đó là sự thật khác với việc được kết nạp.
Tư cách thành viên thuộc về một danh tính
Bộ điều khiển nhận ra chính các tệp danh tính của máy khách, nên việc sao chép cấu hình sang máy khác hoặc xóa danh tính trong lúc cài lại sẽ tạo ra một thành viên mà bộ điều khiển chưa từng thấy. Đó cũng là lý do vì sao xóa một bản ghi thành viên khác với thu hồi quyền của nó. Một nút đã được cấp quyền và vẫn đang chạy sẽ tiếp tục thử, và một bản ghi bị xóa thay vì bị thu hồi có thể trở lại như một yêu cầu mới từ cùng địa chỉ đó.
Khi cho một thiết bị nghỉ hưu, hãy thu hồi quyền của nó trước và xác nhận rằng mục đó phản ánh trạng thái ấy trước khi bạn gỡ bỏ bất cứ thứ gì. Thứ tự chính là khác biệt giữa một lần gỡ sạch và một lần quay lại tham gia bí ẩn.
Xác minh sau khi thay đổi
Hãy đọc lại mục mạng thay vì đọc lệnh đã tạo ra thay đổi. Bốn câu hỏi bao quát kết quả, và bất kỳ câu nào cũng có thể sai trong khi những câu khác trông đúng:
zerotier-cli listnetworks
ip -br addr show
ping -c 2 10.147.20.5
ip route get 10.147.20.5
Lệnh thứ nhất in tư cách thành viên và địa chỉ được cấp cho từng mạng, và lệnh thứ hai cho thấy giao diện có thực sự nhận địa chỉ đó hay không. Hai lệnh cuối chứng minh rằng một máy ngang hàng trong mạng trả lời và giao diện nào mang lưu lượng. Hãy ghi lại lệnh nào trả lời câu hỏi nào, để người tiếp theo bắt đầu từ bằng chứng chứ không phải từ trí nhớ.
Nếu tư cách thành viên là OK và địa chỉ có nhưng các máy ngang hàng không trả lời, thì vấn đề đã chuyển sang định tuyến hoặc sang chính sách của máy ngang hàng. Hãy bỏ văn bản trạng thái ra khỏi cuộc trò chuyện đó, vì nó đã làm xong việc của mình. Bản ghi thành viên và đường đi là hai chủ đề riêng, và càng tách chúng sớm thì cuộc điều tra càng ngắn.