Port UDP tetap bisa melewati penerusan port, tetapi tidak setiap NAT
Firewall stateful menerima paket peer sebagai lalu lintas balik ketika kedua ujung mengunci satu port. Berikut kapan itu berhasil, dan apa yang diam-diam mengakhirinya.
Dua router rumah, tanpa port yang diteruskan, dan VPN yang kadang tetap terhubung. UDP memungkinkan itu, karena firewall akan menerima paket yang dapat dicocokkannya dengan aliran yang sudah dimulai mesin. Ini trik bersyarat, bukan fitur, dan syaratnya mudah disebutkan begitu Anda tahu apa yang dibandingkan firewall. Itu juga alasan profil yang identik berperilaku berbeda di jaringan yang berbeda.
Perbandingan yang dilakukan firewall
Setiap datagram keluar membuat entri berumur pendek: alamat sumber, port sumber, alamat tujuan, port tujuan. Apa pun yang datang dan cocok dengan entri itu dianggap balasan dan diloloskan. Aturan masuk tidak berperan di sini.
Jadi pertanyaannya bukan apakah firewall mengizinkan peer masuk. Pertanyaannya apakah paket peer tampak seperti balasan yang ditunggu entri. Ubah satu bidang dari tuple empat bagian itu dan paketnya menjadi orang asing. Karena itu, penyiapan yang berfungsi bisa rusak ketika hanya nomor port berubah, dan karena itu port yang sama bisa berfungsi di satu router dan gagal di router berikutnya.
Kunci port sumber lokal, dan nomor yang sama muncul di kedua sisi pertukaran. Itulah seluruh mekanismenya, dan itu menjelaskan mengapa trik ini rapuh, bukan misterius.
Mengunci satu port di setiap ujung
Port UDP bawaan OpenVPN adalah 1194, dan lport menetapkan port sumber tempat ia mengirim. Kunci kedua peer dan tuple keluar masing-masing menunjuk ke port tempat yang lain mendengarkan:
# peer A
lport 1194
remote 198.51.100.20 1194
# peer B
lport 1194
remote 203.0.113.10 1194
Itu hanya bekerja selama tidak ada router di antaranya yang menulis ulang port sumber. Ketika paket muncul di tangkapan tetapi tidak ada terowongan yang naik, penulisan ulang adalah tersangka pertama.
Di mana tuple berhenti cocok
NAT yang memetakan per tujuan memberi setiap peer port eksternal yang berbeda. Alamat yang disuruhkan kepada peer Anda untuk dipakai bukanlah alamat yang mencapainya, jadi paket masuk itu tidak cocok dengan apa pun dan dibuang diam-diam.
Penerjemahan tingkat operator, NAT bertumpuk, dan pengacakan port semuanya berakhir sama. Begitu juga kotak tengah mana pun yang menulis ulang port sambil membiarkan alamatnya.
Transportasi aliran lebih buruk. Jabat tangan TCP dilacak langkah demi langkah, jadi VPN berbasis TCP sama sekali tidak bisa ditembus dengan cara ini dan memerlukan pendengar di suatu tempat di jalur.
Biasanya satu sisi gagal lebih dulu
Dalam praktik kedua jaringan jarang berperilaku sama. Satu router mungkin memberi pemetaan yang dapat diprediksi sementara yang lain memberi port per tujuan, dan hasilnya konfigurasi yang berfungsi antara dua rumah dan gagal dari jaringan seluler. Laporan yang saling bertentangan biasanya menggambarkan dua pasang router yang berbeda. Tidak ada penulis yang salah, dan tidak ada hasil yang bisa digeneralisasi.
Cari tahu sisi mana yang menjatuhkan paket sebelum menyentuh profil. Tangkapan di kedua ujung menyelesaikannya dalam satu percobaan: datagram yang meninggalkan A dan tidak pernah mencapai B berarti aliran ditulis ulang di perjalanan, sedangkan datagram yang mencapai B tanpa balasan kembali berarti firewall tidak menerimanya sebagai terkait.
Dua peer dengan alamat IPv6 publik menghindari seluruh masalah. Tanpa penerjemahan tidak ada yang perlu dicocokkan, jadi aturan firewall yang menyebut para peer sudah cukup dan desainnya berhenti bergantung pada perilaku router.
Kapan berhenti mencoba
Host dengan alamat publik adalah jawaban yang andal. Ia dapat mengakhiri terowongan untuk kedua peer, atau sekadar membantu mereka menemukan alamat eksternal terkini satu sama lain, dan kedua susunan berfungsi apa pun yang dilakukan NAT. Lapisan pelapis terkelola menyediakan koordinasi yang sama jika kebijakan mengizinkannya.
Tidak satu pun dari ini membutuhkan firewall yang dimatikan. Mematikan perlindungan untuk memenangkan koneksi langsung membuang alasan upaya langsung itu menarik, dan meninggalkan mesin terbuka selama seluruh pengujian.
Coba susunan langsung lebih dulu, lalu catat apa yang Anda lihat. Perilaku NAT dan tangkapan yang menunjukkannya bernilai lebih daripada pasangan port yang akhirnya Anda pakai, karena jaringan berikutnya akan berbeda. manual OpenVPN 2.6 mendokumentasikan lport dan opsi remote yang menjadi sandarannya.