PRESMEROVANIE:

je to specialna forma DNATu, je to ekvivalent DNATU s cielovou adresou vstupneho interfacu:

# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

cim vlastne docielime presmerovanie celeho http trafficu smerom von cez port 80 na nase transparentne proxy (squid), na porte 8080 - squid ale musi byt skonfigurovany ako transparentne proxy.

chceme spojenia prichadzajuce na port 8080 stroja 1.2.3.4 presmerovat na cielovy port 80 stroja 192.168.1.1. V 2.2. kerneloch sme portforwarding robili takto:

#ipmasqadm portfw -a -P tcp -L 1.2.3.4 8080 -R 192.168.1.1 80

v 2.4 urobime toto:

#iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 8080 -j DNAT --to 192.168.1.1:80

cim do PREROUTING chainu pridame pravidlo ktore nam vsetky TCP pakety prichadzajuce na 1.2.3.4 --dport 8080 namapovali na 192.168.1.1:80

Ako ste si vsimli iptablom povieme ze maju pouzivat tabulku nat prepinacom -t nat, paket cez nie lezie nasledujucim sposobom

             _____                                      _____
            /     \                                    /     \
          PREROUTING -->[Routovacie]----------------->POSTROUTING----->
            \D-NAT/     [rozhodnutie]                  \S-NAT/
                            |                            ^
                            |                            |
                            |                            |
                            |                            |
                            |                            |
                            |                            |
                            |                            |
                            --------> Lokalny proces -----


Okrem -t nat mozme pouzit pri NATovani tieto volby:

-s --source a -d --destination -zdrojovu a cielovu adresu paketov ktore chceme NATovat

-i alebo -o -ako vstupny alebo vystupny interface

-p (ako protokol) TCP alebo UDP protokol, hlavne preto aby sme iptablom mohli dat dalsie volby a to --sport a --dport, pricom mozme pouzit bud cisla portov, alebo nazvy z /etc/services