Hello Panagiotis
Thank you for your reply and I apologize for my late response. I was
away on vacation.
I was just wondering why the resolver reacts immediately with a server
failure and then continues the recursive resolution in the background.
In the meantime, the client has received an error message in the
browser, for example when accessing the web.
Reloading the page would then work, as the resolver now has all the
information in the cache.
So it is still not entirely clear to me.
The resolver first initiates the process via a root server (No. 600+601)
and the error (No. 602) is displayed before the response.
Regards Florian
Am 24.04.2025 um 11:38 schrieb Panagiotis Matamis:
Hello Flo,
I just subscribed to this list yesterday and I am still learning...
It just happens that I was reading about this today in the
documentation, hope it helps!
https://bind9.readthedocs.io/en/latest/chapter6.html#a-quick-review-of-dns-iteration
It mentions that you can encounter some type of server failure. I
guess I can copy the first 2 paragraphs:
In DNS recursive name servers, an incoming query that cannot be
answered from the local cache is sent to the closest known delegation
point for the query name. For example, if a server is looking up
XYZZY.ISC.ORG and it the name servers for ISC.ORG, then it sends the
query to those servers directly; however, if it has never heard of
ISC.ORG before, it must first send the query to the name servers for
ORG (or perhaps even to the root zone that is the parent of ORG).
When it asks one of the parent name servers, that server will not have
an answer, so it sends a “referral” consisting only of the “delegation
point NS RRset.” Once the server receives this referral, it “iterates”
by sending the same query again, but this time to name servers for a
more specific part of the query name. Eventually this iteration
terminates, usually by getting an answer or a “name error” (NXDOMAIN)
from the query name’s authoritative server, or by encountering some
type of server failure.
...
Then it mentions about two different kinds of “glue”
...
Best regards,
Panagiotis
*From:*bind-users <bind-users-boun...@lists.isc.org> *On Behalf Of
*Florian Schlums
*Sent:* Thursday, 24 April 2025 11.18
*To:* bind-users@lists.isc.org
*Subject:* bind sends back server failure when local cache expired (
glue record)
Dear list
I'm running several bind caching resolver based on Ubuntu latest bind
release 9.18.30.
Configuration is pretty simple. A few public IP prefixes are allowed
to use these server as recursive resolver.
All other prefixes are no allowed to use them. The setup is up for
several years and works more or less without problems.
Now I have a case I have no explanation for.
It's about a glue record and expired cache behavior: crane.smokva.net
In some cases "dig @ns2.ggamaur.net crane.smokva.net" gives me a
SERVFAIL back. This happens when TTL in servers local cache has
expired. But this answer will appear only once, a second dig gives me
the IP.
#dig @ns2.ggamaur.net crane.smokva.net
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> @ns2.ggamaur.net
crane.smokva.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9174
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: f81401b79354e29b010000006809fd983d7daeae1c6bfada (good)
;; QUESTION SECTION:
;crane.smokva.net. IN A
;; ANSWER SECTION:
crane.smokva.net. 26 IN A 85.10.196.166
;; Query time: 1 msec
;; SERVER: 213.160.40.34#53(ns2.ggamaur.net) (UDP)
;; WHEN: Thu Apr 24 11:00:08 CEST 2025
;; MSG SIZE rcvd: 89
#dig @ns2.ggamaur.net crane.smokva.net
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> @ns2.ggamaur.net
crane.smokva.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id:
26109 <---------------- Cache expired
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: d2c192e8c153ff65010000006809fdc00ff4b74c1bc6a88a (good)
;; QUESTION SECTION:
;crane.smokva.net. IN A
;; Query time: 1 msec
;; SERVER: 213.160.40.34#53(ns2.ggamaur.net) (UDP)
;; WHEN: Thu Apr 24 11:00:48 CEST 2025
;; MSG SIZE rcvd: 73
#dig @ns2.ggamaur.net crane.smokva.net
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> @ns2.ggamaur.net
crane.smokva.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23097
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 7573634154fc104a010000006809fdfe3b4159d1878e28be (good)
;; QUESTION SECTION:
;crane.smokva.net. IN A
;; ANSWER SECTION:
crane.smokva.net. 300 IN A 85.10.196.166
;; Query time: 11 msec
;; SERVER: 213.160.40.34#53(ns2.ggamaur.net) (UDP)
;; WHEN: Thu Apr 24 11:01:50 CEST 2025
;; MSG SIZE rcvd: 89
In detail, wireshark shows me the following when a local cache entry
has expired.
No. Time Source
Destination Protocol Length Info
# query to local bind server
599 2025-04-24 08:34:32.084611 213.160.41.17
213.160.41.10 DNS 87 Standard query 0x5a68 A
crane.smokva.net OPT
# server sends query to rootserver
600 2025-04-24 08:34:32.086197 2a02:5c0:1:11::10
2001:500:2d::d DNS 119 Standard query 0xf931 A
crane.smokva.net OPT
601 2025-04-24 08:34:32.086318 2a02:5c0:1:11::10
2001:500:2d::d DNS 119 Standard query 0x7c1b AAAA
crane.smokva.net OPT
# server sends server failure as an answer to client
602 2025-04-24 08:34:32.086334 213.160.41.10
213.160.41.17 DNS 87 Standard query response
0x5a68 Server failure A crane.smokva.net OPT
# answer from rootserver
603 2025-04-24 08:34:32.087883 2001:500:2d::d
2a02:5c0:1:11::10 DNS 1235 Standard query response
0x7c1b AAAA crane.smokva.net NS a.gtld-servers.net NS
604 2025-04-24 08:34:32.087883 2001:500:2d::d
2a02:5c0:1:11::10 DNS 1235 Standard query response
0xf931 A crane.smokva.net NS a.gtld-servers.net NS
# server queries .net server
605 2025-04-24 08:34:32.089329 2a02:5c0:1:11::10
2001:503:231d::2:30 DNS 119 Standard query 0x18a7
AAAA crane.smokva.net OPT
606 2025-04-24 08:34:32.089399 2a02:5c0:1:11::10
2001:503:231d::2:30 DNS 119 Standard query 0x88f8
A crane.smokva.net OPT
# answer from .net server
607 2025-04-24 08:34:32.091282 2001:503:231d::2:30
2a02:5c0:1:11::10 DNS 494 Standard query response
0x88f8 A crane.smokva.net NS crane.smokva.net
608 2025-04-24 08:34:32.091283 2001:503:231d::2:30
2a02:5c0:1:11::10 DNS 494 Standard query response
0x18a7 AAAA crane.smokva.net NS crane.smokva.net
# server queries to crane.smokva.net
609 2025-04-24 08:34:32.091815 213.160.41.10
85.10.196.166 DNS 99 Standard query 0x1bda A
crane.smokva.net OPT
610 2025-04-24 08:34:32.091882 213.160.41.10
85.10.196.166 DNS 99 Standard query 0xb973 AAAA
crane.smokva.net OPT
611 2025-04-24 08:34:32.101617 85.10.196.166
213.160.41.10 DNS 129 Standard query response
0xb973 AAAA crane.smokva.net SOA crane.smokva.net OPT
612 2025-04-24 08:34:32.101617 85.10.196.166
213.160.41.10 DNS 117 Standard query response
0x1bda A crane.smokva.net A 85.10.196.166 NS crane.smokva.net OPT
Can somebody explain me why the server in No. 602 sends back a server
failure and still keeps its resolving process for crane.smokva.net?
Flo
--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from
this list
ISC funds the development of this software with paid support subscriptions.
Contact us at https://www.isc.org/contact/ for more information.
bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users