Molti programmi non usano il socket UDP in modo tradizionale, quindi il packet filter non è sempre in grado di riconoscere i pacchetti di UDP response dai pacchetti di UDP request arrivanti da un host esterno. I pacchetti UDP response sono quelli che devono avere accesso alla rete locale perchè correlati ad una precedente richiesta di un host interno al firewall. I pacchetti UDP request sono quelli che non devono assolutamente valicare la barriera creata dal firewall perchè spediti da un possibile attaccante. Per valutare quando un inbound packet è certamente un valido UDP response, il packet filter ha bisogno di alcune risorse specifiche come ad esempio il DNS per mapping tra hostname e address. Sebbene il DNS permette l'utilizzo del paradigma request-response e può essere configurato per usare sia TCP che UDP, normalmente usa il protocollo UDP da una porta UDP arbitraria. L'uso del servizio DNS serve per forwardare, da un set di internal slave nameserver verso un filtro, tutte le richieste ricevute. Il packet filter utilizzato permette il traffico UDP tra porte DNS riservate (DNS reserved port) tra external host e nameserver. Questa struttura lavora in modo soddisfacente ed ultimamente ha dato degli ottimi risultati inaspettati, grazie alla cache interna dei nameserver.
Altre applicazioni che utilizzano in socket in modo differente possono essere bloccate o fatte girare su un external bastion host (talk, archie e reuser). Tale compromesso risulta poco pratico per gli utenti perchè devono avere anche una sessione aperta sull' external host per usufruire di determinati servizi, ma risulta molto efficiente dal punto di vista della sicurezza.