This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DNS query timeout

Hi all,

since we installed the Sophos UTM 100 a couple of months ago, sometimes we have problems accessing websites. As we use Active Directory in our local net DNS queries should go this way:
Client (DNS Server: SBS2011) -> Small Business Server 2011 (forwarder to the UTM) -> Sophos UTM (forwarder to two DNS servers of our ISP) -> DNS server of our ISP
I added the internal network to the allowed networks of the DNS service and two DNS servers of our ISP to the DNS forwarders.

The problem in detail:
Most of the time we don't have any problems accessing the internet. But at different times a number/all of us cannot access the internet. So there seems to be neither a general problem (for example a missing entry in the firewall) nor a special "event" (for example a disconnect every 24h by our ISP) which could be responsible for this.
After this error occurs, you have to wait one or two minutes and then everything works fine again.
The typical entry in the webfilter log looks like this:
2014:09:03-09:28:24 SophosUTM httpproxy[18246]: id="0003" severity="info" sys="SecureWeb" sub="http" request="(nil)"  function="dns_expire" file="dns.c" line="187" message="dns query c7ef (Google) timed out, retransmitting (retry 1)"
2014:09:03-09:28:24 SophosUTM httpproxy[18246]: id="0003" severity="info" sys="SecureWeb" sub="http" request="0x15aa0368" function="sc_categorize_url_remote" file="scr_scanner.c" line="993" message="no categorization received for url: https://www.google.de/"
2014:09:03-09:28:25 SophosUTM httpproxy[18246]: id="0002" severity="info" sys="SecureWeb" sub="http" name="web request blocked" action="block" method="CONNECT" srcip="192.168.10.103" dstip="" user="" statuscode="502" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (L&L Standard)" size="2465" request="0x16e306e8" url="www.google.de/" exceptions="" error="Host not found" authtime="0" dnstime="10001064" cattime="10896533" avscantime="0" fullreqtime="20937909" device="0" auth="0" category="9999" reputation="neutral" categoryname="Categorization failed"


There are no entries in the log of the firewall or of the intrusion prevention system for this specific time.

Before the UTM was installed, we didn't have problems like this. So the DNS server of our provider seem to work fine (or at least they did [;)]).

If there's already a solution somewhere in this forum, please post the link as I didn't find it. Otherwise do you have any ideas how to fix this problem?

Best regards 
Thilo


This thread was automatically locked due to age.
Parents
  • All times in the log are in microseconds.  Therefore dnstime="3178" is 3 milliseconds.  This suggests that it did not get the answer from on-box DNS cache but from something else on your LAN.

    In general, you'll see groups of timings.  The DNS answer could be cached on box, on LAN, or on internet DNS servers.  *very* roughly they should match ping times.  So if you get a DNS answer that is 40ms and you can ping Google DNS in 35ms...  Chances are that is where the answer came from.

    Please note that if you are not doing any HTTPS scanning and you visit an HTTPS site the log line is only printed when the SSL connection is closed and will have a fullreqtime= that is equal to the total connection time, it could be minutes.  In the log line you printed it was an HTTPS connection for 14 seconds, perfectly normal.

    There are other times that fullreqtime is normally quite high, streaming media and periodic pings for example.

    Try a command like this:
    grep -v https /var/log/http.log | egrep 'dnstime="[0-9]{7}' | less –S

    This should give you all times that dnstime was over 1 second.  Similar grep can be used for fullreqtime.  Be warned, doing these searches can find a lot of false positives and red herrings.
Reply
  • All times in the log are in microseconds.  Therefore dnstime="3178" is 3 milliseconds.  This suggests that it did not get the answer from on-box DNS cache but from something else on your LAN.

    In general, you'll see groups of timings.  The DNS answer could be cached on box, on LAN, or on internet DNS servers.  *very* roughly they should match ping times.  So if you get a DNS answer that is 40ms and you can ping Google DNS in 35ms...  Chances are that is where the answer came from.

    Please note that if you are not doing any HTTPS scanning and you visit an HTTPS site the log line is only printed when the SSL connection is closed and will have a fullreqtime= that is equal to the total connection time, it could be minutes.  In the log line you printed it was an HTTPS connection for 14 seconds, perfectly normal.

    There are other times that fullreqtime is normally quite high, streaming media and periodic pings for example.

    Try a command like this:
    grep -v https /var/log/http.log | egrep 'dnstime="[0-9]{7}' | less –S

    This should give you all times that dnstime was over 1 second.  Similar grep can be used for fullreqtime.  Be warned, doing these searches can find a lot of false positives and red herrings.
Children
No Data