DNAT proxy transparan: mengapa rute balik penting
Pahami mengapa DNAT dapat mengantarkan permintaan ke proxy terpisah sementara balasannya melewati gateway dan memutus koneksi.
SYN yang dialihkan dapat tiba di Squid sementara klien masih mengalami waktu habis. Pada penyiapan DNAT, paket balik juga harus mencapai gateway yang memegang status terjemahan.
Perhatikan LAN hipotetis ini:
client 192.168.40.25 → gateway 192.168.40.1
DNAT → proxy 192.168.40.10
proxy 192.168.40.10 → client 192.168.40.25 directlyKlien awalnya terhubung ke alamat situs web. Setelah DNAT, proxy melihat sumber klien dan dapat memakai rute subjaringan lokal untuk membalas langsung. Balasan itu melewati terjemahan balik gateway dan dapat mencapai klien dari alamat proxy alih-alih alamat situs web yang diharapkan. Gateway tidak dapat memperbaiki paket yang tidak pernah diterimanya.
| Pendekatan | Konsekuensi |
|---|---|
| Meneruskan balasan proxy melalui gateway yang menerjemahkan | Koneksi masuk ke proxy dapat mempertahankan alamat sumber klien |
| Menerapkan penerjemahan sumber yang sesuai juga | Proxy membalas gateway sebagai mitranya, tetapi kini melihat sumber yang diterjemahkan itu alih-alih klien asli |
Jangan menghapus SNAT demi log yang lebih rapi tanpa memverifikasi rute balik. Menerapkannya secara luas juga mengubah ACL sumber dan atribusi; terima konsekuensi itu sebagai bagian dari desain.
Lompatan HTTP tepercaya dapat menyampaikan metadata klien dalam tajuk penerusan, tetapi NAT tidak membuat tajuk itu atau mengubahnya menjadi identitas rekan TCP. Mempertahankan sumber pada koneksi ke Squid juga tidak mempertahankannya pada koneksi situs web terpisah Squid.
Terakhir, desain intersepsi tetap harus menyediakan informasi tujuan yang dibutuhkan Squid. Perutean balik simetris menyelesaikan mekanisme waktu habis ini, bukan seluruh konfigurasi proxy transparan.