Anda di laptop Linux, tailscale status mencantumkan mesin lain, dan NAS di 10.80.0.25 masih kehabisan waktu. Tailnet sehat, router subnet online, dan tidak ada apa pun di keluaran klien yang mengatakan mengapa LAN di belakangnya tidak terjangkau. Panduan di bawah bergerak keluar dari gejala itu: flag di klien ini, lalu iklan di router, lalu persetujuan, lalu kebijakan, dan baru setelah itu tujuan itu sendiri. Setiap gerbang gagal dengan batas waktu yang sama, jadi urutannya lebih penting daripada perintahnya.

Apa yang menolak dipasang klien Linux

Klien Tailscale di Linux tidak menerima rute subnet yang diiklankan kecuali Anda memintanya. Tanpa pengaturan itu klien bergabung dengan tailnet dan mencapai alamat peer, sementara setiap prefiks yang diiklankan router tetap tidak terpakai. Nilai bawaannya disengaja, dan itulah sebabnya gejalanya tampak seperti router rusak, bukan keputusan lokal.

Dua hal berbeda disebut perutean di sini, dan hanya satu yang milik Anda. Router mengiklankan prefiks ke tailnet; mesin Anda memutuskan apakah akan memasangnya. Kegagalan di salah satunya menghasilkan batas waktu yang sama, karena itu menebak membuang satu sore. Cari tahu sisi mana yang menolak sebelum Anda mengubah apa pun.

Aktifkan penerimaan rute untuk mesin ini

Setel preferensi di klien, lalu lihat apa yang berubah alih-alih menganggap perintahnya berlaku. Bentuk saat ini menerapkan pengaturan tanpa mengulang alur login, yang penting saat Anda di tengah sesi.

sudo tailscale set --accept-routes
tailscale status
ip route show table 52

Tailscale memasang rute yang diterima di tabelnya sendiri di Linux, jadi prefiks yang muncul di tabel 52 adalah bukti langsung bahwa klien ini memasang iklan itu. Jika rentang Anda tidak ada di tabel itu, berhentilah: masalahnya lokal dan tidak ada pekerjaan di router yang akan mengubahnya.

Klien lama mengekspos preferensi yang sama sebagai flag pada perintah login, jadi sudo tailscale up --accept-routes adalah cadangan saat tailscale set tidak ada. Gunakan itu alih-alih menyunting rute dengan tangan, karena daemon menulis ulang tabelnya sendiri dan suntingan Anda hilang pada sambungan berikutnya. Periksa versinya sebelum menyalin perintah dari artikel lama.

Periksa iklan dan persetujuan secara terpisah

Di router subnet prefiks harus diiklankan, dan kernel harus meneruskan paket antar antarmuka. Mengiklankan tanpa meneruskan memberi Anda rute yang disetujui tetapi diam-diam membuang lalu lintas, dan itulah penyiapan setengah jadi yang paling umum.

sudo tailscale up --advertise-routes=10.80.0.0/24
sysctl net.ipv4.ip_forward
ip -br addr

Bandingkan prefiks yang diiklankan dengan alamat yang benar-benar ingin Anda tuju, karakter demi karakter. Router yang mengiklankan 10.70.0.0/24 tidak mengatakan apa pun tentang NAS di 10.80.0.25, dan ketidakcocokan itu tidak terlihat di setiap keluaran status karena kedua angka tampak sama masuk akal. Sebagian besar laporan rute rusak berakhir di sini. Perbaiki iklannya sebelum Anda menyentuh apa pun di hilir.

Persetujuan adalah gerbang berikutnya, dan mudah dilewati saat router dikonfigurasi dari shell. Iklan harus diaktifkan untuk perangkat itu di konsol admin sebelum mesin lain boleh memakainya. Menerima rute di klien tidak menyetujui apa pun dan tidak menimpa aturan akses mana pun.

Uji alamat privat sebelum nama host

Koneksi yang berhasil ke alamat tailnet router itu sendiri membuktikan tailnet bekerja, yang sudah Anda tahu. Uji yang berguna adalah layanan yang benar-benar Anda butuhkan, mula-mula ke alamat privat, agar kegagalan DNS tidak dapat menyamar sebagai kegagalan perutean.

tailscale ping 10.80.0.1
ping -c 2 10.80.0.25
nc -vz 10.80.0.25 445
getent hosts nas.internal.example

Jika alamat menjawab dan nama host tidak, Anda punya masalah resolusi nama dan sebaiknya berhenti memperlakukannya sebagai masalah rute. Jika keduanya tidak menjawab, mundur satu bagian dan pastikan iklannya mencakup alamat itu. Kedua kegagalan terlihat identik dari aplikasi dan diperbaiki di tempat berbeda.

Satu pemeriksaan lokal layak dilakukan sebelum menyalahkan tailnet. Ketika LAN Anda saat ini memakai prefiks yang sama dengan subnet jarak jauh, kernel lebih memilih rute yang terhubung langsung dan lalu lintasnya tidak pernah keluar dari mesin, itulah yang terjadi ketika rumah dan kantor sama-sama memilih 192.168.1.0/24.

Mengapa flag klien bukan pengaturan router

Ini peran berbeda dengan kebutuhan berbeda, dan menyalin flag klien ke router adalah cara tailnet yang berfungsi mendapat loop. Mesin yang mengiklankan rute memerlukan penerusan, aturan firewall yang mengizinkan lalu lintas yang diteruskan, dan keputusan tentang prefiks mana yang diiklankan. Tidak ada satu pun dari itu yang tersirat oleh --accept-routes.

Dokumentasi router subnet memperingatkan agar tidak mengaktifkan penerimaan rute pada router redundan yang mengiklankan satu prefiks, karena node siaga dapat mendorong lalu lintas yang sudah lokal keluar melalui node aktif. Jika Anda menjalankan pasangan HA, perlakukan itu sebagai batasan desain, bukan catatan kaki, dan putuskan node mana yang memiliki prefiks itu sebelum Anda menyetujuinya di keduanya. Pada satu router, peringatan yang sama terbaca sebagai pengingat bahwa penerimaan milik klien, bukan mesin yang mengiklankan. Catat gerbang mana yang tertutup.

Bagi klien biasa urutannya berakhir dengan uji aplikasi yang gagal di awal. Bagi router, tinjau penerusan, iklan, persetujuan, dan firewall dalam urutan itu, karena yang pertama tidak ada menghasilkan tepat batas waktu yang Anda mulai.

Artikel terkait