Tunel melaporkan koneksi berhasil, halaman router itu sendiri termuat, dan pemetaan drive ke mesin di belakangnya masih kehabisan waktu. Tidak ada yang bertentangan dalam kombinasi itu: router menjawab sebagai dirinya sendiri, dan mencapai apa pun di belakangnya adalah keputusan lain yang diambil di tempat lain. Jalankan pemeriksaan di bawah secara berurutan dan berhenti pada kegagalan pertama, karena masing-masing bergantung pada yang sebelumnya. Ketika keempatnya lolos, kesalahan ada di atas tunel, bukan di dalamnya.

Filter mana yang melihat paket menuju LAN

Paket yang dialamatkan ke router dikonsumsi secara lokal; paket yang dialamatkan ke host di belakangnya harus diteruskan, dan firewall menilai kedua kasus itu secara terpisah. Jadi izin mencapai router tidak mengatakan apa pun tentang izin melintasinya. Firmware yang menyembunyikan kumpulan aturannya tetap menerapkan keduanya, biasanya sebagai pemilih yang menawarkan LAN, internet, atau keduanya. Jika pemilih meninggalkan LAN, tidak ada pemeriksaan berikutnya yang berarti.

OpenWrt membuat pemisahan itu dapat diperiksa, dan perbedaannya layak dibaca sekali. Zona yang mengakhiri tunel memerlukan aturan penerusan menuju zona LAN, sedangkan aturan masukan hanya mengatur layanan di router itu sendiri. Halaman administrasi yang berfungsi di samping LAN mati adalah hasil biasa dari aturan penerusan yang hilang itu.

uci show firewall | grep -E "zone\[[0-9]+\]\.(name|input|forward|output)"

Lihat tujuan penerusan zona yang membawa tunel: accept adalah yang dibutuhkan tangga itu, dan reject menjelaskan setiap batas waktu di bawahnya. Dua pengaturan tetangga menghasilkan gejala yang sama, jadi singkirkan keduanya selagi Anda di sini. Isolasi nirkabel menyembunyikan host kabel dari klien nirkabel, dan router yang menganggap host LAN menganggur sebagai luring dapat menjatuhkan jawaban bahkan setelah penerusan berfungsi.

Mengapa tunel terbelah memerlukan awalan yang didorong

Klien yang mengirim semua lalu lintas lewat tunel sudah memiliki awalan LAN melalui rute bawaannya, jadi tidak ada yang perlu ditambahkan. Tunel terbelah adalah kasus yang memerlukan awalan dinyatakan secara eksplisit, karena tidak ada hal lain dalam konfigurasi yang menyebutkannya. Tambahkan direktif ke konfigurasi server dan muat ulang layanan.

push "route 192.168.50.0 255.255.255.0"

Profil yang berisi route-nopull mengabaikan rute yang didorong, jadi awalan yang sama seharusnya ada di berkas klien. Bagaimanapun, pastikan entri itu tiba alih-alih menganggapnya, karena penimpaan senyap terlihat sama persis dengan masalah firewall.

ip route show | grep 192.168.50

Rekan situs-ke-situs meminta lebih dari sekadar dorongan. Server harus mempelajari awalan mana yang berada di belakang rekan itu, yang dilakukan baris iroute di berkas client-config-dir-nya, dan tabelnya sendiri memerlukan rute yang cocok ke dalam tunel.

Jawaban memerlukan alamat yang dapat dijangkau

Meneruskan permintaan hanyalah separuh pertukaran, karena host LAN harus menjawab ke alamat di kumpulan tunel. Router kecil biasanya mengaturnya dengan menerjemahkan sumber di zona tunel, sehingga jawaban dialamatkan ke router dan tidak perlu konfigurasi di tempat lain. Hapus penerjemahan itu dan host memerlukan rutenya sendiri ke kumpulan, yang ia dapatkan gratis ketika router adalah gateway bawaannya. Host dengan alamat yang diatur tangan dan gateway berbeda menjawab lewat gateway itu, dan klien melihat sesi terbuka lalu macet.

tcpdump -ni tun0 host 192.168.50.20

Jalankan itu di router saat klien mengulangi permintaannya, dan baca tujuan jawaban alih-alih permintaannya. Jawaban yang dialamatkan ke kumpulan berarti jalur balik berfungsi dan kesalahan ada lebih jauh ke dalam. Tidak ada jawaban sama sekali berarti host tidak pernah menerima paket, yang mengembalikan Anda ke kumpulan aturan.

Tangga yang berakhir di tempat yang tepat

Empat pemeriksaan menemukan lapisannya, dan masing-masing adalah satu perintah, bukan penilaian. Jalankan berurutan dan berhenti pada kegagalan pertama. Urutannya lebih penting daripada perintahnya, karena langkah berikutnya yang lolos menyembunyikan alasan langkah sebelumnya gagal.

ping -c1 10.8.0.1
ping -c1 192.168.50.20
nc -vz 192.168.50.20 445
getent hosts nas.local

Nama berada di ujung tangga, tidak pernah di awal. Berbagi pakai yang menjawab sebagai 192.168.50.20 tetapi tidak sebagai nas.local menunjuk pada resolusi nama atau akhiran pencarian, dan penyuntingan firewall tidak dapat mengubah keduanya.

Catat langkah pertama yang gagal, lalu beri port layanan putaran sendiri, karena pendengar dan izin host adalah syarat terpisah. Berbagi berkas, desktop jauh, dan aliran kamera semuanya memerlukan keduanya, dan firewall host yang memercayai subnet LAN tetapi tidak kumpulan tunel menjatuhkan klien sementara ping masih berhasil. Ketika semua pemeriksaan lolos dan aplikasi tetap gagal, kesalahan ada di atas tunel: layanan yang terikat ke satu antarmuka, atau proksi yang dikonfigurasi di klien.

Artikel terkait