Seltsames Verhalten von Bind 9 unter SuSE 10.3

28/01/2009 - 19:14 von Martin Fuchs | Report spam
Situation:
Schulungsumgebung mit 2 LANs (192.168.0.0/24 und
1.0/24) und einem "simulierten" Internet (152.4.4.48/30).


Im ersten LAN befindet sich ein DNS-Server 192.168.0.252/24
(SuSE 10.3 mit Bind 9),
der eine eigene Zone besitzt, für eine weitere Zone auf einen
zweiten LAN-DNS weiterleitet und für alle anderen Zonen auf
den "Internet"-DNS weiterleitet.

Von .252 funktioniert die Namensauflösung tadellos, ebenso,
wenn ein Client aus dem gleichen LAN diesen Server benutzt.

Wenn aber ein Client aus dem zweiten LAN den .252 als DNS
benutzen will, kann er zwar Namen aus dessen Zone auflösen
lassen, für Namen aller weitergeleiteten Zonen bekommt er aber
sofort "Refuse" als Antwort, wàhrend in diesem Fall in der
/var/log/messages etwas wie "www.blabla.de/A DENIED" steht.

Das Hinzufügen von "allow-query { 0.0.0.0/0; };" in der
named.conf behebt das Problem völlig, das kapiere ich
allerdings nicht, denn:

1. allow-query sollte sich eigentlich auf alle Anfragen
beziehen und nicht zwischen eigenen Zonen und Forward-Zonen
unterscheiden.

2. laut Kommentar in der Beispiel-named.conf ist der Default-Wert
(wenn allow-query nicht gesetzt, wie zunàchst bei mir) "alle
Hosts dürfen abfragen".


Das Problem ließ sich auch auf einem zweiten Rechner (gleiches System
installiert) reproduzieren.



Zweites Problem (aus Zeitgründen noch nicht reproduziert): Windows-DNS
als primàrer Server, die entsprechende Zone besitzt eine delegierte
Subdomàne; dazu wird ein sekundàrer Linux-DNS eingerichtet.
Die Zonendatei wird korrekt übernommen, aber der Linux-DNS schert
sich überhaupt nicht um die Delegierung.
(Bind-9-Zonenkompatibilitàt ist beim Windows-Server markiert.)



Irgendwelche Ideen?


Danke,
Martin
 

Lesen sie die antworten

#1 Knorr, Nico
28/01/2009 - 20:33 | Warnen spam
Guten Abend,

* Martin Fuchs [] schrieb:

[ ... ]

Wenn aber ein Client aus dem zweiten LAN den .252 als DNS
benutzen will, kann er zwar Namen aus dessen Zone auflösen
lassen, für Namen aller weitergeleiteten Zonen bekommt er aber
sofort "Refuse" als Antwort, wàhrend in diesem Fall in der
/var/log/messages etwas wie "www.blabla.de/A DENIED" steht.

Das Hinzufügen von "allow-query { 0.0.0.0/0; };" in der
named.conf behebt das Problem völlig, das kapiere ich
allerdings nicht, denn:

1. allow-query sollte sich eigentlich auf alle Anfragen
beziehen und nicht zwischen eigenen Zonen und Forward-Zonen
unterscheiden.



Es gibt auch noch allow-recursion { $wert; };

Ist allow-recursion offen für alle(s), gibt bind (insofern
allow-query als Erst-Instanz den entsprechenden fragenden IP-Range
zulàsst) auch Antwort auf nicht von bind9 verwaltete Domains.

Ist jedoch z.B. allow-recursion { 127.0.0.1; }; gesetzt, reagiert
bind (selbst bei allow-query { 0.0.0.0/0; };) ohne entsprechende
Antwort.

2 Beispiele (ich frage meinen bind nach der IP von www.blabla.de,
die gibts wirklich :)) folgend:

BeispielA:
- allow-query { any; };
- allow-recursion { 127.0.0.1; };

dig @mein_nameserver www.blabla.de a ergibt:

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51387
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 13
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.blabla.de. IN A
...

BeispielB:
- allow-query { any; };
- allow-recursion { any; };

dig @mein_nameserver www.blabla.de a ergibt:
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64318
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL:
13

;; QUESTION SECTION:
;www.blabla.de. IN A

;; ANSWER SECTION:
www.blabla.de. 3600 IN A 88.198.57.47

Das entsprechende "Freischalten" Deiner Client-IPs in der
allow-recursion & allow-query sollte Dein Bind dann gespràchiger
machen.

Gruß,
Nico.

Maxime peccantes,
quia nihil peccare conantur.
- Erasmus von Rotterdam -

Ähnliche fragen