Saya bingung apa perbedaan sebenarnya antara SNAT dan Masquerade?
Jika saya ingin berbagi koneksi internet saya di jaringan lokal maka apakah saya harus memilih SNAT atau Masquerade?
The SNAT
Target mengharuskan Anda untuk memberikan alamat IP untuk berlaku untuk semua paket keluar. The MASQUERADE
Target memungkinkan Anda memberikan sebuah antarmuka, dan alamat apa pun yang pada antarmuka yang adalah alamat yang diterapkan ke semua paket keluar. Selain itu, dengan SNAT
, pelacakan koneksi kernel melacak semua koneksi ketika antarmuka diturunkan dan dibawa kembali; hal yang sama tidak berlaku untuk MASQUERADE
target.
Dokumen yang bagus termasuk HOWTO di situs Netfilter dan iptables
halaman manual .
-j SNAT
(sebagai lawan dari pelacakan daur ulang dengan-j MASQUERADE
) ketika koneksi keluar baru dari simpul LAN menggunakan nomor port sumber yang sama dengan koneksi keluar terputus dari simpul LAN yang sama. Dalam hal ini, saya bisa membayangkan paket yang masuk dari koneksi keluar lama dikirim ke node, membingungkan tumpukan TCP-nya. Sedangkan untuk manfaat -j SNAT, bagaimana jika kotak NAT dikonfigurasi dengan alamat IP eksternal yang sama dan kernel terus meneruskan paket dari koneksi lama alih-alih membalas dengan RST?Pada dasarnya
SNAT
danMASQUERADE
melakukan hal yang sama sumber NAT di tabel nat dalam rantai POSTROUTING.Perbedaan
MASQUERADE
tidak memerlukan--to-source
karena dibuat untuk bekerja dengan IP yang ditugaskan secara dinamisSNAT
hanya bekerja dengan IP statis, itulah sebabnya mengapa--to-source
MASQUERADE
memiliki overhead tambahan dan lebih lambat daripadaSNAT
karena setiapMASQUERADE
target waktu terkena paket, ia harus memeriksa alamat IP untuk digunakan.CATATAN : Kasus penggunaan umum untuk
MASQUERADE
: AWS EC2 misalnya dalam VPC, ia memiliki IP pribadi dalam VPC CIDR (misalnya 10.10.1.0/24) - 10.10.1.100 misalnya, ia juga memiliki IP publik sehingga dapat berkomunikasi dengan Internet (anggap itu dalam subnet publik) melalui mana IP pribadi 1: 1 NAT. IP publik dapat berubah setelah reboot misalnya (jika BUKAN EIP),MASQUERADE
adalah opsi yang lebih baik dalam kasus penggunaan ini.Penting: Masih dimungkinkan untuk menggunakan
MASQUERADE
target dengan IP statis, cukup perhatikan overhead tambahan.Referensi
Tutorial iptables
Tutorial NAT
sumber