Gateway adalah sebuah sistem yang menghubungkan beberapa jaringan. Istilah ini sering mengacu pada "titik keluar" jaringan lokal pada jalur wajib untuk semua alamat IP eksternal. Gateway terhubung ke masing-masing jaringan yang dihubungkannya, dan bertindak sebagai sebuah router untuk menyampaikan paket-paket IP antara berbagai antarmuka.
Ketika suatu jaringan lokal memakai sebuah rentang alamat privat (yang tidak dapat di-route di Internet), gateway perlu mengimplementasikan masquerading alamat sehingga mesin-mesin pada jaringan dapat berkomunikasi dengan dunia luar. Operasi masquerading adalah semacam proksi yang beroperasi pada level jaringa: setiap koneksi arah luar dari suatu mesin internal digantikan dengan suatu koneksi dari gateway itu sendiri (karena gateway memiliki alamat eksternal, yang dapat di-route), data yang melalui koneksi yang di-masquerade dikirim ke yang baru, dan data yang kembali dalam jawaban dikirim melalui koneksi yang di-masquerade ke mesin internal. Gateway memakai suatu rentang port TCP yang terdedikasi untuk tujuan ini, biasanya dengan nomor sangat tinggi (di atas 60000). Setiap koneksi yang datang dari suatu mesin internal kemudian muncul ke dunia luar sebagai suatu koneksi yang datang dari salah satu port yang dicadangkan ini.
Gateway juga bisa melaksanakan dua macam network address translation (atau NAT). Jenis pertama, Destination NAT (DNAT) adalah suatu teknik yang mengubah alamat IP tujuan (dan/atau port TCP atau UDP) (umumnya) untuk suatu koneksi masuk. Mekanisme pelacakan koneksi juga mengubah paket-paket yang mengikuti dalam koneksi yang sama untuk memastikan keberlangsungan dalam komunikasi. NAT jenis kedua adalah Source NAT (SNAT), dimana masquerading adalah suatu kasus khusus; SNAT mengubah alamat IP sumber (dan/atau port TCP atau UDP) (umumnya) dari suatu koneksi keluar. Seperti pada DNAT, semua paket dalam koneksi secara tepat ditangani oleh mekanisme pelacakan koneksi. Perhatikan bahwa NAT hanya relevan bagi IPv4 dan ruang alamatnya yang terbatas; dalam IPv6, ketersediaan luas dari alamat sangat mengurangi kebergunaan NAT dengan mengizinkan semua alamat "internal" dapat di-route secara langsung pada Internet (ini tidak mengimplikasikan bahwa mesin-mesin internal dapat diakses, karena firewal perantara dapat menyaring lalu lintas).
Teori cukup, mari kita praktek. Mengubah sistem Debian menjadi gateway adalah sekedar mengaktifkan opsi yang sesuai untuk kernel Linux, melalui sistem berkas virtual /proc/
:
#
echo 1 > /proc/sys/net/ipv4/conf/default/forwarding
Opsi ini dapat juga secara otomatis diaktifkan saat boot jika /etc/sysctl.conf
menetapkan opsi net.ipv4.conf.default.forwarding
ke 1
.
Contoh 10.1. Berkas /etc/sysctl.conf
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 1
Efek yang sama dapat diperoleh untuk IPv6 hanya dengan mengganti ipv4
dengan ipv6
dalam perintah manual dan menggunakan net.ipv6.conf.all.forwarding
dalam /etc/sysctl.conf
.
Mengaktifkan masquerading IPv4 adalah operasi yang sedikit lebih kompleks yang melibatkan konfigurasi netfilter firewall.