I tried it myself by adding the two suggested server=/debian.org/8.8.{8.8|4.4}
lines to my dnsmasq
config and did the same dig
:
$ dig @127.0.0.1 debian.org
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> @127.0.0.1 debian.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56086
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;debian.org. IN A
;; ANSWER SECTION:
debian.org. 225 IN A 151.101.66.132
debian.org. 225 IN A 151.101.194.132
debian.org. 225 IN A 151.101.130.132
debian.org. 225 IN A 151.101.2.132
;; Query time: 30 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Mon Jun 09 19:26:38 CEST 2025
;; MSG SIZE rcvd: 103
Jun 9 19:26:38 dnsmasq[1921741]: UDP 231 127.0.0.1/46950 query debian.org from 127.0.0.1
Jun 9 19:26:38 dnsmasq[1921741]: UDP 231 127.0.0.1/46950 forwarded debian.org to 8.8.8.8
Jun 9 19:26:38 dnsmasq[1921741]: UDP 231 127.0.0.1/46950 forwarded debian.org to 8.8.4.4
Jun 9 19:26:38 dnsmasq[1921741]: UDP 232 dnssec-query[DS] debian.org to 8.8.4.4
Jun 9 19:26:38 dnsmasq[1921741]: UDP 232 reply debian.org is DS for keytag 20225, algo 8, digest 2
Jun 9 19:26:38 dnsmasq[1921741]: UDP 233 dnssec-query[DNSKEY] debian.org to 8.8.4.4
Jun 9 19:26:38 dnsmasq[1921741]: UDP 233 reply debian.org is truncated
Jun 9 19:26:38 dnsmasq[2774137]: TCP 233 dnssec-query[DNSKEY] debian.org to 8.8.4.4
Jun 9 19:26:38 dnsmasq[2774137]: TCP 233 reply debian.org is DNSKEY keytag 40756, algo 8
Jun 9 19:26:38 dnsmasq[2774137]: TCP 233 reply debian.org is DNSKEY keytag 21715, algo 8
Jun 9 19:26:38 dnsmasq[2774137]: TCP 233 reply debian.org is DNSKEY keytag 20225, algo 8
Jun 9 19:26:38 dnsmasq[2774137]: TCP 233 reply debian.org is DNSKEY keytag 6004, algo 8
Jun 9 19:26:38 dnsmasq[1921741]: UDP 231 127.0.0.1/46950 validation result is SECURE
Jun 9 19:26:38 dnsmasq[1921741]: UDP 231 127.0.0.1/46950 reply debian.org is 151.101.66.132 (DNSSEC signed)
Jun 9 19:26:38 dnsmasq[1921741]: UDP 231 127.0.0.1/46950 reply debian.org is 151.101.194.132 (DNSSEC signed)
Jun 9 19:26:38 dnsmasq[1921741]: UDP 231 127.0.0.1/46950 reply debian.org is 151.101.130.132 (DNSSEC signed)
Jun 9 19:26:38 dnsmasq[1921741]: UDP 231 127.0.0.1/46950 reply debian.org is 151.101.2.132 (DNSSEC signed)
The DNSKEY
for debian.org
is too large to fit into a single UDP packet so we retry this specific query over TCP. Without DNSSEC, this will not happen as no DNSKEY
will ever be requested.
So my assumption is that DNS via TCP is somehow an issue on your system, I try to simulate this by droping any TCP traffic on port 53 from my machine to the Internet:
sudo iptables -A OUTPUT -p tcp -m tcp --dport 53 -j DROP
and there we go:
$ dig @127.0.0.1 debian.org
;; communications error to 127.0.0.1#53: timed out
;; communications error to 127.0.0.1#53: timed out
;; communications error to 127.0.0.1#53: timed out
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> @127.0.0.1 debian.org
; (1 server found)
;; global options: +cmd
;; no servers could be reached
and the log has:
Jun 9 19:31:23 dnsmasq[2778144]: UDP 7 127.0.0.1/40109 query debian.org from 127.0.0.1
Jun 9 19:31:23 dnsmasq[2778144]: UDP 7 127.0.0.1/40109 forwarded debian.org to 8.8.8.8
Jun 9 19:31:23 dnsmasq[2778144]: UDP 7 127.0.0.1/40109 forwarded debian.org to 8.8.4.4
Jun 9 19:31:23 dnsmasq[2778144]: UDP 8 dnssec-query[DS] debian.org to 8.8.8.8
Jun 9 19:31:23 dnsmasq[2778144]: UDP 8 reply debian.org is DS for keytag 20225, algo 8, digest 2
Jun 9 19:31:23 dnsmasq[2778144]: UDP 9 dnssec-query[DNSKEY] debian.org to 8.8.8.8
Jun 9 19:31:24 dnsmasq[2778144]: UDP 9 reply debian.org is truncated
Jun 9 19:31:24 dnsmasq[2778160]: TCP 9 dnssec-query[DNSKEY] debian.org to 8.8.8.8
[...]
Jun 9 19:31:28 dnsmasq[2778144]: UDP 100 127.0.0.1/34915 query debian.org from 127.0.0.1
[...]
Jun 9 19:31:30 dnsmasq[2778165]: TCP connection failed: Operation now in progress
[...]
Jun 9 19:31:33 dnsmasq[2778144]: UDP 150 127.0.0.1/60123 query debian.org from 127.0.0.1
Jun 9 19:31:33 dnsmasq[2778144]: UDP 150 127.0.0.1/60123 forwarded debian.org to 8.8.8.8
Jun 9 19:31:33 dnsmasq[2778144]: UDP 151 dnssec-query[DNSKEY] debian.org to 8.8.8.8
Jun 9 19:31:33 dnsmasq[2778144]: UDP 151 reply debian.org is truncated
Jun 9 19:31:34 dnsmasq[2778191]: TCP 151 dnssec-query[DNSKEY] debian.org to 8.8.8.8
[...]
Jun 9 19:31:35 dnsmasq[2778175]: TCP connection failed: Operation now in progress
Okay, this was the wrong error so your issue is not with sending but receiving from upstream, so let's add
sudo iptables -A INPUT -p tcp -m tcp --sport 53 -j DROP
(note the subtle but important change from dport
to sport
rule here):
$ dig @127.0.0.1 debian.org
;; communications error to 127.0.0.1#53: timed out
;; communications error to 127.0.0.1#53: timed out
;; communications error to 127.0.0.1#53: timed out
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> @127.0.0.1 debian.org
; (1 server found)
;; global options: +cmd
;; no servers could be reached
and, indeed,
Jun 9 19:37:52 dnsmasq[2783232]: UDP 7 127.0.0.1/54218 query debian.org from 127.0.0.1
Jun 9 19:37:52 dnsmasq[2783232]: UDP 7 127.0.0.1/54218 forwarded debian.org to 8.8.8.8
Jun 9 19:37:52 dnsmasq[2783232]: UDP 7 127.0.0.1/54218 forwarded debian.org to 8.8.4.4
Jun 9 19:37:52 dnsmasq[2783232]: UDP 8 dnssec-query[DS] debian.org to 8.8.8.8
Jun 9 19:37:52 dnsmasq[2783232]: UDP 8 reply debian.org is DS for keytag 20225, algo 8, digest 2
Jun 9 19:37:52 dnsmasq[2783232]: UDP 9 dnssec-query[DNSKEY] debian.org to 8.8.8.8
Jun 9 19:37:52 dnsmasq[2783232]: UDP 9 reply debian.org is truncated
Jun 9 19:37:52 dnsmasq[2783248]: TCP 9 dnssec-query[DNSKEY] debian.org to 8.8.8.8
[...]
Jun 9 19:37:57 dnsmasq[2783232]: UDP 152 127.0.0.1/49952 query debian.org from 127.0.0.1
[...]
Jun 9 19:38:08 dnsmasq[2783248]: TCP connection failed: Resource temporarily unavailable
[...]
Jun 9 19:38:23 dnsmasq[2783248]: TCP connection failed: Resource temporarily unavailable
So your issue seems to be with receiving DNS TCP replies.
@PWD Please test
dig @8.8.8.8 +tcp met.no