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.

PartWhere it livesWhat a failure looks like
Forwarding and NATExit node kernel and firewallTraffic arrives, no reply
Managed default routeZeroTier network controllerNo default via the tunnel on the member
Client acceptanceMember's per-network settingRoute offered but not installed
DNS behaviorClient resolver configurationPages 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 ACCEPT

Gantikan 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.1

Arahan 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.

Artikel berkaitan