Nod keluar ZeroTier tidak berfungsi? Semak laluan, NAT dan klien
Laluan 0.0.0.0/0 dalam klien bukanlah keluar. Nod mesti memajukan dan menterjemah, rangkaian mesti mengumumkan laluan, dan klien mesti menerimanya.
Jadual laluan menunjukkan laluan lalai melalui antara muka ZeroTier, rangkaian melaporkan dalam talian, dan pelayar masih keluar dari alamat ISP tempatan. Gabungan itu biasa dan ia bukan pepijat klien. Laluan lalai hanya memberitahu ke mana paket harus pergi; sesuatu mesti memajukan dan menterjemahkannya di hujung sana. Tiga bahagian berasingan mesti benar sebelum nod keluar berfungsi.
Laluan wujud tetapi tiada apa yang keluar
Semak jadual laluan klien dahulu. Baris seperti default via 10.147.20.5 dev zt0 membuktikan laluan telah dipasang, bukan bahawa destinasi akan menerima trafik. Hop seterusnya mesti ahli yang bersedia dan mampu memajukannya.
Jika permintaan yang sama masih keluar melalui antara muka fizikal, klien tidak memasang laluan itu, atau memasangnya dengan metrik yang kalah kepada laluan lalai tempatan. Jika permintaan hilang selepas laluan dipasang, ahli keluar menerima paket dan gagal memajukan atau menterjemahkannya. Klien yang mengekalkan lalai fizikal tidak menghantar satu paket pun ke keluar.
Perbezaan itu menentukan di mana perlu bekerja. Membandingkan alamat awam sebelum dan selepas perubahan memisahkan laluan yang tidak pernah digunakan daripada yang digunakan lalu dibuang, dan ia mengambil satu arahan bukan semakan seluruh konfigurasi. Lakukan perbandingan sebelum menukar apa-apa lagi, supaya kedua-dua keputusan datang daripada keadaan permulaan yang sama.
Tiga bahagian yang semuanya mesti benar
Keluar ialah rantai, dan pautan terlemah menentukan simptom. Jadual di bawah menyenaraikan pautan mengikut urutan ia biasanya gagal.
| Part | Where it lives | What a failure looks like |
|---|---|---|
| Forwarding and NAT | Exit node kernel and firewall | Traffic arrives, no reply |
| Managed default route | ZeroTier network controller | No default via the tunnel on the member |
| Client acceptance | Member's per-network setting | Route offered but not installed |
| DNS behavior | Client resolver configuration | Pages fail by name, IP works |
Baris pertama ialah yang disembunyikan oleh nama pilihan. Ahli menjadi keluar hanya apabila kernelnya memajukan paket antara antara muka ZeroTier dan antara muka yang menghadap internet, dan apabila laluan balasan diterjemah kembali ke terowong. Tanpa pemajuan itu, ahli ialah rakan sebaya, bukan get laluan.
Baris pengawal ialah kebenaran, bukan konfigurasi. Mengumumkan 0.0.0.0/0 melalui ahli memberitahu setiap klien di mana keluar itu; ia tidak menjadikan ahli itu mampu membawa trafik. Ia juga tidak mengesahkan bahawa ahli mempunyai laluan berfungsi ke internet. Dokumentasi nod keluar ZeroTier merangkumi pemisahan yang sama antara nod, laluan dan klien.
Konfigurasikan nod keluar untuk memajukan dan menterjemah
Dayakan pemajuan IPv4 secara berterusan, kemudian tambah NAT sumber untuk trafik yang meninggalkan antara muka WAN. Peraturan penapis mesti membenarkan aliran yang dimajukan dalam kedua-dua arah, kerana pemajuan dan terjemahan berasingan daripada kebenaran:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o zt0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPTGantikan zt0 dan eth0 dengan nama pada hos; peraturan yang disimpan untuk antara muka contoh tidak mengikut paket pada antara muka sebenar. Jadikan perubahan kekal melalui pengurus tembok api yang memiliki peraturan itu, kerana arahan dalam shell interaktif hilang pada but semula seterusnya.
Jika hos menjalankan pengurus tembok api seperti UFW atau firewalld, tambah peraturan melalui pengurus itu dan bukannya menyusun baris iptables di sebelahnya. Dua pemilik yang menyunting rantai yang sama menghasilkan dasar yang bergantung pada urutan but. Urutan penting apabila pengurus menjana rantainya sendiri. Uji dari klien selepas memuat semula pengurus, bukan sebelum.
Umumkan laluan dan terima di klien
Pada pengawal rangkaian, tambah laluan terurus untuk 0.0.0.0/0 yang hop seterusnya ialah alamat ZeroTier ahli keluar. Kemudian, pada ahli yang sepatutnya menggunakannya, benarkan penggantian untuk rangkaian itu. Kebenaran itu setempat: ia tidak mengkonfigurasi semula ahli lain dan tidak mengubah pengawal.
zerotier-cli listnetworks
zerotier-cli set <network-id> allowDefault=1
ip route get 1.1.1.1Arahan terakhir sepatutnya melaporkan antara muka ZeroTier dan alamat ahli keluar. Jika ia masih melaporkan antara muka fizikal, laluan itu tiada atau lalai pesaing mempunyai metrik yang lebih baik.
Kekalkan tetapan terhad kepada rangkaian yang memerlukannya. Mendayakan penerimaan laluan lalai secara global, atau pada rangkaian yang sepatutnya hanya menyediakan subnet peribadi, menghantar trafik melalui keluar yang tidak pernah direka untuknya.
Sahkan keluar dan periksa keluarga alamat lain
Minta alamat awam daripada perkhidmatan yang melaporkan sumber, dan bandingkan dengan alamat WAN nod keluar. Kemudian muat laman mengikut nama untuk mengesahkan DNS masih menyelesaikan, dan uji satu aplikasi penting dan bukan hanya pelayar.
Klien dwi-stack boleh terus menggunakan laluan IPv6 aslinya sementara IPv4 keluar melalui ZeroTier. Jika matlamatnya menyembunyikan atau mengawal semua trafik, laluan ::/0 berasingan dan pemajuan IPv6 pada keluar diperlukan, dan ujian IPv4 tidak menyatakan apa-apa tentangnya.
Penapisan laluan songsang Linux juga boleh menggugurkan trafik keluar yang sah pada klien. ZeroTier mendokumentasikan pertimbangan rp_filter untuk ahli yang menyertai; ubah tetapan itu dengan sengaja dan hanya selepas laluan dan NAT disahkan, bukan sebagai eksperimen pertama.
Jika keperluan adalah akses kepada NAS atau satu subnet pejabat, laluan terurus untuk awalan itu ialah perubahan yang lebih kecil dan selamat daripada keluar penuh. Menghantar semua pelayaran melalui peranti lain ialah keputusan berbeza daripada mencapai satu sumber peribadi, dan ia wajar disemak secara berasingan.