Klien OpenVPN yang dijembatani tidak punya internet? Periksa aturan NAT
Klien OpenVPN yang dijembatani keluar melalui perangkat tap, jadi aturan masquerade yang menyebut kartu jaringan fisik tidak pernah cocok dan penghitungnya tetap nol.
Server yang dijembatani sudah aktif, aturan masquerade ada, dan browser di klien masih berputar. Semuanya tampak seharusnya berfungsi, dan itulah sebabnya jam pertama habis untuk memeriksa tunnel dan kredensial. Lalu Anda membaca penghitung pada aturan NAT dan menemukan nol yang tidak bergerak. Aturan yang tidak pernah menghitung satu paket pun tidak pernah cocok dengan paket mana pun, dan pada server yang dijembatani alasannya struktural: lalu lintas klien keluar melalui perangkat tap virtual, sedangkan aturan itu menyebut kartu fisik yang Anda salin dari panduan lama.
Penghitung adalah buktinya, bukan baris di tabel
Aturan yang ada dan aturan yang cocok adalah hal berbeda, dan penghitunglah yang memisahkannya. Tampilkan tabel NAT dengan penghitung terperinci dan baca angka di samping setiap aturan sebelum mengubah apa pun. Penghitung yang diam di nol saat lalu lintas mengalir berarti aturan itu dilewati, seberapa masuk akal pun alamatnya. Penghitung yang naik sementara koneksi masih gagal mengarahkan Anda ke tempat lain: penerusan, jalur kembali, atau ujung jauh.
iptables -t nat -L POSTROUTING -v -nBaca dulu penghitung di samping kecocokan antarmuka. Jika rentang sumber benar dan sisi keluar salah, perbaikannya satu kata dalam aturan, bukan aturan yang sepenuhnya baru.
Temukan nama yang benar-benar dicatat kernel
Identifikasi perangkat tunnel berdasarkan nama sebelum menulis aturan, dengan daftar antarmuka, bukan ingatan. Pada penyiapan OpenVPN yang dijembatani, perangkatnya biasanya antarmuka tap yang dibuat server, dan namanya bagian dari konfigurasi lokal Anda, bukan konstanta universal. Pastikan perangkat itu ada selama tunnel aktif, karena perangkat yang baru muncul setelah klien terhubung akan membuat pengujian sebelumnya tampak seperti masalah aturan.
ip -brief linkCatat namanya. Setiap perintah berikutnya dalam diagnosis ini mengacu padanya, dan salah ketik di sini menghasilkan penghitung nol yang persis sama dengan kesalahan awal.
Tulis ulang aturan terhadap perangkat tunnel
Arahkan aturan ke perangkat tunnel dan pertahankan rentang klien sebagai syarat kecocokannya, sehingga mencakup lalu lintas tunnel dan membiarkan koneksi host sendiri tidak terganggu. Ganti dengan rentang dan nama perangkat Anda sendiri, karena kedua contoh di bawah adalah contoh dan tidak ada yang portabel antar instalasi.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tap0 -j MASQUERADELalu periksa dua kondisi lain yang disembunyikan gejala yang sama. Periksa apakah penerusan diaktifkan, dan jika tidak, aktifkan di konfigurasi distribusi itu sendiri, bukan dengan echo yang hilang saat reboot. Baca juga penghitung rantai forward, dan jika rantai itu membuang lalu lintas tunnel, izinkan antarmuka itu secara khusus dan biarkan kebijakan rantai apa adanya.
Membaca rantai forward dengan penghitung hanya butuh satu perintah dan menyingkirkan separuh kemungkinan yang tersisa sebelum Anda menyentuh aturan lain.
Mengapa kartu fisik tidak pernah cocok
Jembatan adalah sakelar perangkat lunak yang disusun dari perangkat tap dan satu antarmuka fisik. Frame klien masuk ke sakelar itu dan keluar menuju jaringan fisik sebagai anggota jembatan, bukan sebagai paket pada kartu. Karena itu kernel mengaitkan paket dengan jembatan dan portnya, dan itulah sebabnya kartu yang Anda pikirkan tidak pernah muncul dalam kecocokan. Tidak ada yang rusak pada antarmuka fisik; ia hanya bukan perangkat yang dikaitkan kernel dengan paket itu.
Masalah berikutnya yang orang temui berasal dari struktur yang sama: penyaringan frame pada jembatan adalah fasilitas terpisah dari penyaringan IP. Jika kebutuhannya pembatasan tingkat frame, itu termasuk penyaringan jembatan, bukan aturan tabel IP.
Buktikan ujung ke ujung, lalu jadikan permanen
Nyalakan satu klien dan ping sesuatu di LAN server; jalur itu melatih penerusan tanpa penerjemahan apa pun. Setelah itu minta sesuatu yang publik agar aturan masquerade harus dipakai, dan baca penghitungnya sekali lagi: seharusnya bergerak untuk pengujian ini dan bukan untuk yang sebelumnya. Tangkapan yang diambil pada perangkat tunnel menunjukkan sekaligus di mana frame muncul dan alamat apa yang dibawanya.
Langkah terakhir: masukkan aturan yang berfungsi ke konfigurasi yang dibaca saat restart, dan catat nama perangkat yang benar-benar dipakai jembatan host ini. Apa pun yang diketik dengan tangan hilang setelah reboot, dan kegagalan yang sama kembali tanpa apa pun yang menjelaskannya.
Jika penghitung masih tidak bergerak setelah penulisan ulang, bandingkan rentang sumber dalam aturan dengan alamat yang benar-benar diterima klien, karena server yang dijembatani dapat membagikan alamat dari rentang yang tidak Anda maksudkan.