apache / apache/trafficserver

splitdns.config: multiple ips in named argument ignored

Open
#9,718 7 comments 0 reactions 1 assignee Claimed by @SolidWallOfCode View on GitHub
DNS Support
Dominant language
C++
Stars
2k
Forks
874
Avg merge
6d 15h
Merged PRs (30d)
46

Description

HostOS: Fedora 37
Version: 9.0.20
Tracker: https://bugzilla.redhat.com/show_bug.cgi?id=2208215

Issue:

Inside ATS the splitdns.config regulates, which backendserver is used for a specific domainname to connect to. According to the doc page:

https://docs.trafficserver.apache.org/en/9.2.x/admin-guide/files/splitdns.config.en.html

this looks like this:

dest_domain=domain.de named="10.0.0.1;10.0.0.2"
dest_domain=domain.de named="10.0.0.1 10.0.0.2"

In Ubuntu man pages there is even a more wired example:

dest_domain=domain.de named=10.0.0.1:290 10.0.0.2 ....

The Issue now is, that the 2+ dns server is ignored by ATS. If dns #1 (10.0.0.1) fails, it does not switch to dns #2 (or more), which is the whole sense of having multiply dns servers.

The doc states about the named parameter:

"Specify multiple DNS servers with spaces or semicolons (;) as separators."

Neither does work. It does not produce a syntax error if it's used, which means, it's intended to be configured like this.

This happens in reallife:

[May 18 12:29:58.596] [ET_NET 0] WARNING: connection to DNS server 10.0.0.1 lost, marking as down
[May 18 12:29:58.596] [ET_NET 0] WARNING: connection to all DNS servers lost, retrying

...restart.. and next fail simulation...

[May 18 12:34:03.136] [ET_NET 0] WARNING: connection to DNS server 10.0.0.1 lost, marking as down
[May 18 12:34:03.136] [ET_NET 0] WARNING: connection to all DNS servers lost, retrying

same result.

It's getting even worse, if splitdns is disabled and those two dns servers are added to the records.config. Now the service starts to randomly disresolve the domainnames after a few seconds.

Admin Workaround:

ATS -> splitdns.conf -> named=10.0.0.1

move your internal dns to 10.0.0.2 and 10.0.0.3
bind Bind's named on 10.0.0.1 and use as local proxy for 10.0.0.2 and 10.0.0.3

Note: It's still a single point of failure, but named is rock solid

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.