Saya bingung apa sebenarnya perbedaan antara SNAT dan Masquerade?
Jika saya ingin berbagi koneksi internet di jaringan lokal, apakah saya harus memilih SNAT atau Masquerade?
Target SNAT
mengharuskan Anda untuk memberikan alamat IP untuk diterapkan pada semua paket keluar. Target MASQUERADE
memungkinkan Anda untuk memberikan sebuah interface, dan alamat apa pun yang ada pada interface tersebut adalah alamat yang diterapkan pada semua paket keluar. Sebagai tambahan, dengan SNAT
, pelacakan koneksi kernel melacak semua koneksi ketika interface diturunkan dan dinaikkan kembali; hal yang sama tidak berlaku untuk target MASQUERADE
.
Dokumen yang bagus termasuk HOWTO di situs Netfilter dan man page iptables
.
Pada dasarnya SNAT
dan MASQUERADE
melakukan hal yang sama dengan NAT sumber dalam tabel nat dalam rantai POSTROUTING.
Perbedaan
MASQUERADE
tidak memerlukan --to-source
karena dibuat untuk bekerja dengan IP yang ditetapkan secara dinamis
SNAT
hanya bekerja dengan IP statis, itu sebabnya ia memiliki --to-source
MASQUERADE
memiliki overhead ekstra dan lebih lambat dari SNAT
karena setiap kali target MASQUERADE
terkena sebuah paket, ia harus memeriksa alamat IP yang akan digunakan.
CATATAN: Kasus penggunaan umum untuk MASQUERADE
: AWS EC2 instance dalam VPC, ia memiliki IP pribadi dalam CIDR VPC (mis. 10.10.1.0/24) - 10.10.1.100 misalnya, ia juga memiliki IP publik sehingga dapat berkomunikasi dengan Internet (asumsikan ia berada di subnet publik) yang melaluinya IP privat 1:1 NAT. IP publik dapat berubah setelah instance reboot (jika BUKAN EIP), MASQUERADE
adalah pilihan yang lebih baik dalam kasus ini.
Penting: Masih memungkinkan untuk menggunakan target MASQUERADE
dengan IP statis, namun perlu diperhatikan adanya overhead tambahan.
Referensi