Zwykle używa siê jednocześnie Translacji Adresów Sieciowych (NAT, zajrzyj do NAT HOWTO) i filtrowania pakietów. Dobra wiadomośæ jest taka że łączy siê je bardzo dobrze.
Projektujesz swój filtr pakietów kompletnie ignorując NAT. Adresy źródłowe i przeznaczenia które bêdzie sprawdzał filtr pakietów bêdą 'prawdziwymi' adresami. Na przykład, jeśli prowadzisz DNAT i wysyłasz połączenia do 1.2.3.4 na port 80 przez 10.1.1.1 port 8080, filtr pakietów zobaczy pakiety podróżujące do 10.1.1.1 na port 8080 (prawdziwy adres przeznaczenia), a nie 1.2.3.4 na port 80. Podobnie, możesz zignorowaæ masquerading (maskaradê): z punktu widzenia filtra pakietów pakiety bêdą nadchodziły z prawdziwych wewnêtrznych adresów IP (powiedzmy 10.1.1.1) a odpowiedzi wracały gdzie powinny.
Możesz używaæ testu stanu ('state') bez dostarczania dodatkowej pracy filtrowi pakietów, ponieważ NAT wymaga i tak śledzenia połączeñ (ang. connection tracking). By rozszerzyæ prosty przykład maskarady z NAT HOWTO o zabronienie kreowaniu nowych połączeñ z interfejsu ppp0, zrobiłbyś tak:
# Masquerade out ppp0
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Disallow NEW and INVALID incoming or forwarded packets from ppp0.
iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP
iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j DROP
# Turn on IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward