ZeroTier melaporkan ONLINE tetapi ACCESS_DENIED: di mana perbaikannya?
ONLINE menggambarkan kontak dengan infrastruktur root; ACCESS_DENIED menggambarkan keanggotaan dalam satu jaringan. Perbaikannya ada di sisi controller.
ZeroTier melaporkan ONLINE di tingkat layanan dan ACCESS_DENIED di tingkat jaringan, dan pasangan itu bukan kontradiksi. Yang pertama adalah pernyataan tentang jalur antara klien Anda dan infrastruktur koordinasi. Yang kedua adalah pernyataan tentang daftar anggota satu jaringan. Bacalah secara terpisah, dan kombinasinya memberi tahu Anda persis di mana harus mencari.
Apa yang Diukur oleh ONLINE
Perintah status melaporkan apakah layanan lokal memiliki jalur yang berfungsi ke server root yang mengoordinasikan penemuan peer. Perintah itu tidak menyatakan apa pun tentang jaringan tertentu, dan tidak juga tentang apakah seorang controller telah menyetujui perangkat ini. Karena itu, instalasi baru pada koneksi yang berfungsi langsung melaporkan ONLINE, sebelum siapa pun mengotorisasinya di mana pun.
Perlakukan ONLINE sebagai pernyataan tentang saluran pipa dan status per jaringan sebagai pernyataan tentang keanggotaan. Menjelaskan yang satu dengan yang lain adalah titik awal sebagian besar kebingungan ini.
Apa yang Diminta ACCESS_DENIED dari Anda
Pada jaringan privat, controller menyimpan daftar anggota. Node yang tidak ada dalam daftar itu, atau tercantum tetapi tidak diotorisasi, menerima ACCESS_DENIED tanpa konfigurasi apa pun selain handshake dasar. Perbaikannya ada di sisi controller dan memerlukan alamat node, bukan nama mesin, jadi cocokkan alamat pada keluaran klien dengan entri anggota lalu otorisasi entri tersebut.
Memasang ulang klien adalah langkah pertama yang salah, karena instalasi baru membawa identitas baru dan otorisasi lama tidak lagi berlaku untuknya. Jika jaringan itu publik, status yang sama menunjuk kondisi yang berbeda, jadi tanyakan kepada pemilik controller apakah jaringan itu privat sebelum meminta persetujuan. Pertanyaan itu saja menentukan sisa percakapannya.
Teks Status Adalah Percabangan, Bukan Putusan Akhir
Setiap status mempersempit pemeriksaan berikutnya, dan membacanya sebagai satu pesan kegagalan itulah yang mengubah perbaikan dua menit menjadi sore penuh memasang ulang. NOT_FOUND berarti pengenal yang Anda ketik tidak ada di controller itu, sehingga pertanyaan keanggotaan belum tercapai. REQUESTING_CONFIGURATION berarti node berhasil mencapai controller dan sedang menunggu konfigurasi yang tidak kunjung datang, yang menunjuk ke jalur, bukan ke otorisasi. OK berarti keanggotaan dan konfigurasi sudah siap, sehingga pertanyaan berikutnya adalah alamat yang ditetapkan dan setelah itu layanan itu sendiri.
Dua perintah memisahkan semua ini, dan keduanya membaca klien yang sama. Referensi CLI ZeroTier mencantumkan string status per jaringan yang dikembalikan keduanya. Perintah pertama adalah pandangan layanan dan yang kedua per jaringan:
zerotier-cli status
zerotier-cli listnetworks
Simpan teks status saat Anda meminta bantuan administrator. Perintah join lokal yang mencetak konfirmasi hanya membuktikan bahwa permintaan itu diterima secara lokal, yang merupakan fakta berbeda dari diterima masuk.
Keanggotaan Milik Sebuah Identitas
Berkas identitas klienlah yang dikenali controller, jadi menyalin konfigurasi ke mesin lain atau menghapus identitas saat pemasangan ulang menghasilkan anggota yang belum pernah dilihat controller. Itu juga alasan mengapa menghapus catatan anggota berbeda dari membatalkan otorisasinya. Node yang terotorisasi dan masih berjalan akan terus mencoba, dan catatan yang dihapus alih-alih dicabut dapat kembali sebagai permintaan baru dari alamat yang sama.
Saat Anda menghentikan sebuah perangkat, cabut otorisasinya lebih dahulu dan pastikan entri mencerminkan keadaan itu sebelum Anda menghapus apa pun. Urutannya adalah pembeda antara pembersihan yang rapi dan rejoin yang misterius.
Verifikasi Setelah Perubahan
Baca ulang entri jaringan, bukan perintah yang melakukan perubahan. Empat pertanyaan mencakup hasilnya, dan salah satunya bisa salah sementara yang lain tampak benar:
zerotier-cli listnetworks
ip -br addr show
ping -c 2 10.147.20.5
ip route get 10.147.20.5
Perintah pertama mencetak keanggotaan dan alamat yang ditetapkan untuk setiap jaringan, dan perintah kedua menunjukkan apakah sebuah antarmuka benar-benar menerima alamat itu. Dua perintah terakhir membuktikan bahwa peer di jaringan menjawab dan antarmuka mana yang membawa lalu lintas. Catat perintah mana yang menjawab pertanyaan mana, agar orang berikutnya mulai dari bukti, bukan dari ingatan.
Jika keanggotaan adalah OK dan alamatnya ada tetapi peer tidak menjawab, masalah telah berpindah ke routing atau ke kebijakan peer itu sendiri. Keluarkan teks status dari percakapan itu, karena tugasnya sudah selesai. Catatan keanggotaan dan jalur adalah subjek terpisah, dan semakin cepat keduanya dipisahkan, semakin singkat penyelidikannya.