Pentru acest caz, contratrackNAT-ul lui este suficient pentru a modifica, eticheta și gestiona corect traficul de răspuns pentru conexiune. S-ar putea folosi atât DNAT, cât și SNAT și leagă utilizarea lor împreună sau se poate folosi un amestec de DNAT și rute adecvate.
DNAT
Această țintă este valabilă numai în tabelul nat, în PRERUUTARE
și
IEȘIRE
lanțuri și lanțuri definite de utilizator care sunt apelate numai de la
acele lanțuri. Specifică adresa de destinație a pachetului
ar trebui modificate (și toate pachetele viitoare în această legătură vor
fi de asemenea stricat), iar regulile ar trebui să înceteze să fie examinate. [...]
SNAT
Această țintă este valabilă numai în tabelul nat, în POSTOUTARE
și
INTRARE
lanțuri și lanțuri definite de utilizator care sunt apelate numai din acestea
lanţuri. Se precizează că adresa sursă a pachetului ar trebui să fie
modificat (și toate pachetele viitoare în această legătură vor fi, de asemenea,
stricat), iar regulile ar trebui să înceteze să fie examinate. [...]
iptables -t nat -A OUTPUT -d 192.168.1.11 -j DNAT --to-destination 192.168.1.10
iptables -t nat -A OUTPUT -d 192.168.1.12 -j DNAT --to-destination 192.168.1.10
iptables -t nat -A OUTPUT -d 192.168.1.13 -j DNAT --to-destination 192.168.1.10
iptables -t nat -A OUTPUT -d 192.168.1.14 -j DNAT --to-destination 192.168.1.10
setați adresele sursă suplimentare pe client:
adresa ip add 192.168.1.21/24 dev enp2s0
adresa ip add 192.168.1.22/24 dev enp2s0
adresa ip add 192.168.1.23/24 dev enp2s0
adresa ip add 192.168.1.24/24 dev enp2s0
și fie leagă acțiunea SNAT în mod condiționat la iniţială adresa de destinație (înainte de a fi făcut DNAT), folosind un filtru adecvat cu iptables' contratrack
Meci:
iptables -t nat -A POSTROUTING -m conntrack --ctorigdst 192.168.1.11 -j SNAT --to-source 192.168.1.21
iptables -t nat -A POSTROUTING -m conntrack --ctorigdst 192.168.1.12 -j SNAT --to-source 192.168.1.22
iptables -t nat -A POSTROUTING -m conntrack --ctorigdst 192.168.1.13 -j SNAT --to-source 192.168.1.23
iptables -t nat -A POSTROUTING -m conntrack --ctorigdst 192.168.1.14 -j SNAT --to-source 192.168.1.24
sau în loc de SNAT, mult mai curat, utilizați o rută care indică direct adresa sursă dorită pentru fiecare destinație (chiar dacă nat/OUTPUT redirecționează, adresa sursă nu se va mai schimba odată setată). Acest lucru va permite clientului și ss -tn dport == 48898
pentru a cunoaște și afișa adresa sursă corectă.Aceasta devine:
IP route add 192.168.1.11/32 dev enp2s0 src 192.168.1.21
IP route add 192.168.1.12/32 dev enp2s0 src 192.168.1.22
IP route add 192.168.1.13/32 dev enp2s0 src 192.168.1.23
IP route add 192.168.1.14/32 dev enp2s0 src 192.168.1.24
Acest lucru trebuie făcut astfel: câte o adresă (DNAT ar putea fi simplificat/factorizat, dar nu a doua parte care se ocupă de sursă).
O conexiune cu realul 192.168.1.10
adresa este lăsată neschimbată.