My guess is that you may have a connectivity issue with that DNS server (or in general).
If the client is set up as such:
Default Gateway: 192.168.2.1 (Zeroshell internal)
The Zeroshell box should have a route to 188.8.131.52 (if say the DNS server is internal) or a default gateway of its own set up (if the DNS server is external plus this is beneficial if you’re intending on internet access).
If the DNS Server – 184.108.40.206 is an external DNS server the process would go something like this:
1) Client sees that it needs to resolve an address, checks the DNS server address in its settings, notices the DNS server isn’t on its subnet (not local to it), and sends the request to its default gateway (the Zeroshell box).
2)The Zeroshell box would then look up the route to 220.127.116.11, seeing as that is not a local address to the Zeroshell box it’ll send it out through it’s default gateway.
3) Beyond this a similar process (route lookup and forwarding) occurs until the DNS server is contacted and the reply comes back to the client
If the DNS server is internal you’d want to make sure Zeroshell knows how to get there i.e.:
1) If the DNS server is attached to Zeroshell then Zeroshell should have and interface in the same subnet that is attached to the DNS server (like 18.104.22.168 in your example although you refer to this as the external interface). In that case a route is automatically added since it is connected and local to Zeroshell.
2) If the DNS server is attached elsewhere, Zeroshell will need a route to that network in its routing table (found under “Router” to the left of the GUI)
Hope this is helpful. If the DNS server is external (on the internet) make sure you’ve set up a Default Gateway for Zeroshell and that is connected to a live internet connection. Also, I’d ensure the internet connection interface has NAT on it (Also under “Router” on the left menu).