V menších firmách, bez odděleného DMZ okruhu, probíhá na routeru redirekce na některý ze strojů ve vnitřní LAN. Pokud však zároveň stroje z LAN přistupují k příslušné veřejné adrese, provede i v jejich případě router redirekci. Protože v rámci takového DNAT nedojde k úpravě zdrojové adresy, cílový server odpovídá zdroji napřímo. Tím jde odpověď mimo router a nemůže dojít ke zpětné modifikaci DNATového spoje.
Tento problém lze řešit nejlépe zavedením DMZ nebo alespoň úpravou DNS záznamů tak, aby stroje vnitřního okruhu mohly jít v rámci LAN přímo. Pokud to není možné, tak je nutno použít kombinace DNAT a SNAT.
Nejprve router přesměruje tok ze své veřejné adresy A.B.C.D na vnitřní K.L.M.N, jak je běžné:
# iptables -t nat -A PREROUTING -d A.B.C.D -p tcp --dport 80 -j DNAT --to K.L.M.N
V rámci preroutingu tímto procesem projdou i pakety ze strojů z lokální LAN, pokud přistupují k A.B.C.D. Opravíme tedy u takto zmodifikovaných paketů ještě zdrojovou adresu tak, aby se cílovému serveru zdálo, ze s ním komunikuje router a že mu tedy musí odpovídat. Tím se mohou na odpovědi provést všechny potřebné reverzní operace. Adresa routeru v LAN nechť je O.P.Q.R a maska LAN je MASK:
# iptables -t nat -A POSTROUTING -d K.L.M.N -s K.L.M.N/MASK -p tcp --dport 80 -j SNAT --to O.P.Q.R
Finální nastavení pak má například tuto podobu (cílový server je 192.168.0.56 a adresy routeru jsou 4.4.4.4 a 192.168.0.1):
# iptables -t nat -A PREROUTING -d 4.4.4.4 -p tcp --dport 80 -j DNAT --to 192.168.0.56 # iptables -t nat -A POSTROUTING -d 192.168.0.56 -s 192.168.0.0/24 -p tcp --dport 80 -j SNAT --to 192.168.0.1-- LeoGalambos - 27 Oct 2018