Oke, mungkin karena saya padat atau mungkin tidak menemukan sumber yang tepat, tapi saya tidak mengerti mengapa salah satu pengaturan IPTABLES ini lebih baik daripada yang lain.
Ini pengaturan saya:
Saya memiliki kotak yang berfungsi sebagai proxy transparan dan router atau semacamnya. Ini memiliki dua antarmuka di atasnya, ETH0 dan ETH1, dan skema alamat berikut:
ETH0 = DHCP ETH1 = 192.168.5.1/24 yang melayani DHCP untuk jaringan 192.168.5.0/24 untuk klien di belakangnya di LAN
Saya telah menginstal privoxy dan mendengarkan pada port 8080 sebagai proxy transparan. Apa yang saya capai dengan pengaturan ini adalah untuk dapat menjatuhkan kotak ini ke jaringan yang ada dengan konfigurasi minimal dan klien yang dilampirkan ke proxy.
Ini adalah file IPTABLES asli saya
*nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
COMMIT
Konfigurasi ini berfungsi dengan baik dan lalu lintas mengalir bolak-balik tanpa masalah. Saya mendapatkan alamat IP klien asal di file privoxy, dan hidup itu baik.
Kebingungan saya muncul ketika saya mulai melihat konfigurasi orang lain dan melihat bahwa mereka menggunakan DNAT alih-alih REDIRECT, dan saya mencoba memahami manfaat sebenarnya dari satu di atas yang lain. Berikut ini contoh konfigurasi:
*nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to 192.168.5.1:8080
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
COMMIT
Sekali lagi, konfigurasi ini juga berfungsi, dan memberi saya semua yang saya butuhkan dari perspektif pencatatan ...
Mana yang benar, atau mungkin LEBIH benar, daripada yang lain?
Terima kasih telah meluangkan waktu untuk membaca sejauh ini ...
REDIRECT
tidak mengubah alamat IP tujuan untuk mengirim ke mesin itu sendiri seperti yang dijawab oleh Warner @. Tapi saya akan mengatakan bahwa jawabannya tidak sepenuhnya benar, atau agak menyesatkan.REDIRECT
bukan hanya untuk mengarahkan paket lokal. Ini benar-benarDNAT
di mana alamat IP tujuan yang digunakan adalah implisit, 127.0.0.1 jika itu adalah paket lokal atau alamat IP antarmuka mesin, sebaliknya, 192.168.5.1 dalam kasus OP.Jadi, dalam pertanyaan ini, apa pun tujuan akhirnya, paket harus terlebih dahulu mencapai proxy, jadi
REDIRECT
sangat cocok.Karena dengan
REDIRECT
Anda tidak perlu menentukan alamat IP, itu hanya akan mengambil yang benar, ia memiliki beberapa kelebihan dibandingkanDNAT
:Jika alamat IP mesin berubah karena alasan apa pun Anda tidak perlu mengubah aturan, dan khususnya
DNAT
tidak akan berfungsi untuk antarmuka yang dikendalikan DHCP.Anda dapat menulis dan mempertahankan aturan yang sama untuk beberapa sistem (misalnya beberapa proksi contoh) tanpa menyimpan versi yang sedikit berbeda karena alamat IP tertentu.
sumber