NFS clientaddr lewat VPN: putuskan lewat versi minor, bukan kebiasaan
clientaddr mengiklankan alamat panggilan balik hanya untuk NFSv4.0. Baca versi minor yang dinegosiasikan, periksa jalur kembali, dan pisahkan dari kegagalan mount.
clientaddr termasuk opsi mount yang disalin ke baris perintah jauh setelah alasannya lenyap. Opsi ini memberi tahu server NFSv4.0 ke mana harus memanggil balik klien. Opsi ini tidak memilih server, tidak mengikat setiap permintaan ke alamat sumber, dan tidak mendorong lalu lintas ke dalam terowongan. Pada laptop dengan beberapa alamat, untuk memutuskan apakah opsi ini berlaku sama sekali diperlukan tiga pertanyaan.
Tiga kondisi menentukan apakah opsi ini penting
Yang pertama adalah versi minor yang dinegosiasikan, karena 4.1 dan 4.2 menangani panggilan balik secara berbeda. Yang kedua adalah apakah server dapat menjangkau alamat yang akan Anda iklankan, yang biasanya diizinkan terowongan terrutekan dan biasanya tidak diizinkan jalur yang diterjemahkan. Yang ketiga adalah apakah kegagalan yang Anda kejar memang kegagalan panggilan balik.
| Condition | If yes | If no |
|---|---|---|
| Version is 4.0 | The option can matter | Skip it; inspect the session instead |
| Server can reach the address | Advertise it | Fix reachability first |
| Failure is a callback | Diagnose callback path | Look at mount and export |
Menjawabnya tidak berurutan adalah cara orang menambahkan alamat panggilan balik ke mount 4.2 lalu menyimpulkan bahwa opsinya rusak.
Baca versi minor lebih dulu
nfsstat -m
Untuk mount yang sudah ada, ini mencetak informasi dan bendera mount, termasuk versi efektif sebagai vers=4.0, vers=4.1, atau vers=4.2. Catatan yang hanya menyebut “NFSv4” melewatkan satu detail yang menentukan apakah opsi ini relevan. Baca angkanya, bukan katanya.
Jika string versi berasal dari bawaan server alih-alih dari baris perintah Anda, tanyakan versi minor mana yang dinegosiasikan. Server dapat menolak versi minor yang lebih tinggi dan mundur, dan kemunduran itulah justru kasus ketika panggilan balik tiba-tiba penting. Baris mount yang Anda tulis mungkin tidak menggambarkan mount yang Anda miliki.
Untuk 4.0, iklankan alamat yang dapat dijangkau server
Server NFSv4.0 mungkin memerlukan koneksi terpisah kembali ke klien, misalnya saat mencabut delegasi. Dengan beberapa antarmuka atau tabel perutean yang tidak biasa, penemuan otomatis alamat panggilan balik dapat memilih salah satu yang tidak dapat digunakan server.
mount -t nfs -o vers=4.0,clientaddr=10.8.0.6 10.8.0.1:/export /mnt/share
Alamat sebelum titik dua adalah server dan tetap menjadi tujuan. Alamat panggilan balik milik klien, dan alamat itu harus dapat dijangkau dari sisi server di terowongan. Alamat loopback mengarahkan server kembali ke dirinya sendiri. Alamat klien privat tanpa rute kembali sama tidak terpakainya, meskipun terlihat benar di klien.
Gunakan ini sebagai ilustrasi, bukan alasan menurunkan mount yang berfungsi. Ganti alamat dan jalur ekspor, lalu pertahankan autentikasi dan opsi lain yang diminta server. Membuangnya agar satu contoh cocok adalah perubahan lain dengan hasil lain, dan pada server yang menerapkan jenis keamanan tertentu hal itu gagal sebelum panggilan balik apa pun dicoba.
4.1 dan 4.2 tidak memakai opsi ini
Linux NFSv4.1 dan 4.2 membawa panggilan balik melalui koneksi yang dibentuk klien, dan 4.1 menyebut fasilitas itu backchannel. Keduanya tidak bergantung pada server membuka koneksi baru ke alamat yang diiklankan, sehingga clientaddr tidak memperbaiki jalur panggilan balik 4.1 atau 4.2.
Itu tidak berarti 4.1 dan 4.2 tidak punya masalah panggilan balik. Artinya diagnosisnya berbeda: periksa sesi yang terbentuk dan status backchannel-nya alih-alih mencari porta panggilan balik masuk yang memang tidak pernah seharusnya ada. Aturan masuk yang tidak ada adalah keadaan yang diharapkan, bukan kesalahan yang harus diperbaiki.
Pisahkan kegagalan mount dari kegagalan panggilan balik
Pastikan dulu apakah klien menjangkau layanan NFS dan apakah server menerima ekspor serta permintaan autentikasi. Waktu tunggu sebelum pertukaran itu tidak mengatakan apa pun tentang alamat panggilan balik. Mengubah satu hal saat mount masih gagal tidak mendekatkan penyelidikan, dan menyembunyikan galat asli di balik opsi mount baru.
Hanya ketika bukti menunjukkan panggilan balik 4.0 yang gagal barulah alamat yang diiklankan menjadi penting, bersama jalur kembali server, pendengar di sisi klien, dan penyaringan apa pun di antaranya. Mengubah angka pada opsi mount tidak dapat menciptakan jalur itu; opsi itu hanya dapat menunjuk ke jalur yang sudah ada. Catat mana dari empat itu yang Anda verifikasi, karena laporan berikutnya akan datang tanpa satu pun darinya.
Akar NFS saat boot awal adalah lingkungan tersendiri dengan prasyaratnya sendiri: initramfs memerlukan alat dan jaringan sebelum mount dapat terjadi. Mount yang berfungsi setelah login tidak membuktikan apa pun tentang urutan itu, dan kegagalan saat boot jarang menyebut initramfs atau jaringan.