AdguardTeam / AdGuardHome

Network-wide ads & trackers blocking DNS server
https://adguard.com/adguard-home.html
GNU General Public License v3.0
25.5k stars 1.83k forks source link

Requests Infrequently Dropping #3968

Closed hl2guide closed 2 years ago

hl2guide commented 2 years ago

Issue Details

Expected Behavior

Requests are fulfilled if whitelisted.

Actual Behavior

Requests are infrequently dropped when whitelisted.

By dropped I mean the webpage fails to load and the query log does not log it (silent).

Additional Information

After upgrading from AdGuard Home v0.107.0-b.15 to v0.107.0-b.16 / RC1 I noticed more frequent connection failures (webpages don't load).

I've noticed it for the sites (they are whitelisted in the web UI):

I recognize the nebulous nature of what I'm reporting and that there are many aspects to connecting to a site.

Anyone else notice this?

ainar-g commented 2 years ago

It is indeed a vague issue, but here's some ways you can try to diagnose it:

  1. Enable verbose logs. This is a prerequisite for all other steps to make sure that you can see what happens inside.

  2. Try changing your upstreams or their protocols. Perhaps the issues are caused by one of them or by one type of upstream.

  3. Try making the cache size larger and also enabling optimistic caching, so that upstreams are queried less.

Also, just to be clear, by “whitelisted” do you mean @@ rules in the custom filters input? And what upstream mode do you use?

Thanks.

hl2guide commented 2 years ago

@@ rules.

upstream: I use quad9 (9.9.9.9) : tls://dns.quad9.net mode: load-balancing

example

hl2guide commented 2 years ago

After updating to v0.107.2 the problem continued and then started dropping more often 😭.

ainar-g commented 2 years ago

@hl2guide, which of the steps above have you tried? We will definitely not be able to diagnose anything without that information.

hl2guide commented 2 years ago

@ainar-g I'll enable verbose logs and do some testing then let you know.

hl2guide commented 2 years ago

Example:

;; QUESTION SECTION:
;reader.usenet.agency.  IN   A

2022/01/06 11:26:45.157613 18616#4874 [debug] github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).udpHandlePacket(): error handling DNS (udp) request: talking to dns upstream: reading request from tls://dns.quad9.net:853: EOF
2022/01/06 11:26:45.213301 18616#4902 [debug] github.com/AdguardTeam/dnsproxy/upstream.(*bootstrapper).createDialContext.func1(): dialer has successfully initialized connection to 9.9.9.9:853 in 68.6217ms
2022/01/06 11:26:45.227282 18616#4876 [debug] tls://dns.quad9.net:853: sending request AAAA reader.usenet.agency.
2022/01/06 11:26:45.305138 18616#4902 [debug] tls://dns.quad9.net:853: sending request AAAA reader.usenet.agency.
2022/01/06 11:26:45.576817 18616#4902 [debug] tls://dns.quad9.net:853: response: reading request from tls://dns.quad9.net:853: EOF
2022/01/06 11:26:45.576817 18616#4902 [debug] github.com/AdguardTeam/dnsproxy/upstream.exchange(): upstream tls://dns.quad9.net:853 failed to exchange ;reader.usenet.agency.   IN   AAAA in 432.1379ms. Cause: reading request from tls://dns.quad9.net:853: EOF
2022/01/06 11:26:45.576817 18616#4902 [debug] github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).replyFromUpstream(): RTT: 432.1379ms
2022/01/06 11:26:45.576817 18616#4902 [debug] github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).logDNSMessage(): OUT: ;; opcode: QUERY, status: SERVFAIL, id: 22303
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;reader.usenet.agency.  IN   AAAA

2022/01/06 11:26:45.576817 18616#4902 [debug] github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).udpHandlePacket(): error handling DNS (udp) request: talking to dns upstream: reading request from tls://dns.quad9.net:853: EOF
2022/01/06 11:26:46.042343 18616#4876 [debug] tls://dns.quad9.net:853: response: ok
2022/01/06 11:26:46.042343 18616#4876 [debug] github.com/AdguardTeam/dnsproxy/upstream.exchange(): upstream tls://dns.quad9.net:853 successfully finished exchange of ;reader.usenet.agency.    IN   AAAA. Elapsed 962.1944ms.
2022/01/06 11:26:46.042343 18616#4876 [debug] github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).replyFromUpstream(): RTT: 962.1944ms
2022/01/06 11:26:46.042343 18616#4876 [debug] client ip: ###.###.#.###
2022/01/06 11:26:46.042343 18616#4876 [debug] github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).logDNSMessage(): OUT: ;; opcode: QUERY, status: NOERROR, id: 22303
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

(I hid my IP as: ###.###.#.###)

ainar-g commented 2 years ago

@hl2guide, sorry for the late response. Is the Quad9 server your only upstream? It seems like the server disconnects you. Once again, please try to increase the cache size as well as add other upstreams.

hl2guide commented 2 years ago

Seems resolved for me now. From what I can tell it either: