DNS Caching / Forwarder Problem?

german

#1

Hallo,

nachdem wir auf einer Linie an einem nicht unter unserer Obhut stehenden Cisco Router hängen und dieser vom Provider meist eher spät gegen bekannte Angriffe gepatcht wird, haben auf unserer Firewall forward auf Google DNS mit aktiviertem DNSSEC eingetragen.
Somit kann uns ein Hack des Routers mit port forwarding von Port 53 auf dubiose Resolver ziemlich Wurst sein - die Auflösung schlägt sofort fehl. (Das ist bei anderen Kunden dieses Providers leider schon passiert!)

Leider scheint sich aber der UCS immer wieder überhaupt nicht an unseren, in der UCR konfigurierten Forwarder (die Firewall mit DNS-Proxy) zu halten.

Währen ein Windows Server stur und problemlos über die Firewall auflöst, und höchstens bei Timeouts die Root-Server (die komplette Zone ist auf der Firewall natürlich freigegeben) - und nur diese - abfragt, passiert es beim UCS immer wieder, dass dieser munter alle Auflösungszuständigkeiten bis zum untersten Level abfragt und irgendwann bei einem “Host not found” landet.

Freigegeben sind alle Rootserver mit den aktuellen IPs (auch hier scheint UCS teilweise veraltete abzufragen), die GTLD Server, alle bekannten für Spamassassin, sowie jener von ClamAV und Google Public DNS.

Ich kenne mich mit Bind nicht so gut aus, ist es also standardkonform die Abfrage so zu gestalten, und nur die Windows Server gehen einen restriktiveren Weg?

Kann bitte jemand für mich etwas Licht in die Sache bringen?

VG,
TP


#2

Hallo,

es gibt 3 UCR-Variablen für die Forwarder (dns/forwarder1, dns/forwarder2 und dns/forwarder3).
Deren Inhalt wird für die “.”-Zone in /etc/bind/named.conf.proxy und /etc/bind/named.conf.samba4 geschrieben. Welche von den beiden vernwendet wird, entscheided die UCRV dns/backend.

Der entsprechende Schnipsel sieht dann so aus.

...
# Found a forwarder in ucr variables, using forwarder in zone ".".
# Ignoring any setting of dns/fakeroot.
zone "." {
	type forward;
	forwarders {
		192.168.1.1;
	};
};
...[/code]

Im o.a. Beispiel sieht man auch gleich eine weitere UCRV die im Kontext relevant ist:
[code]dns/fakeroot: <empty>
 This setting controls name resolution for non-locally defined DNS zones and is relevant only if no DNS forwarders have been set. If the option is activated, no external servers will be used, so that only names from the local zones (among them the host itself) can be resolved. If the variable is deactivated or unset, the standard DNS root servers are used for name resolution.

Die verwendeten Rootserver stehen in /etc/bind/db.root. Da gibt es in der Tat kleinere Unterschiede ([bug]43590[/bug])

Neben der optischen Prüfung der genannten Konfigurationsdateien kann man für die Fehlersuche auch ganz gut “dig” verwenden. Einach mal in der man-page nachsehen, da gibt es etliche nützliche Schalter.

Viele Grüße,
Dirk Ahrnke