interative Anfrage

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Nameserver, Upstream DNS, Resolver ist alles dasselbe ;-) Sind alles DNS Server. Die Unterscheidung besteht nur bei der primären Aufgabe. Meist bezeichnet man als Nameserver jene DNS Server ,welche für Zonen zuständig sind. Bei Resolver meint man einen DNS Server welcher selber keine Zonen bedient, sondern nur nach extern auflöst. Upstream Server sind DNS Server welche Anfragen für andere Resolver erledigen. Sagen wir dein Resolver ist dein Router, dann ist der Upstream Server meist der DNS deines Providers. Wenn dein Router also eine Anfrage ned auflösen kann, fragt er erstmal bei seinem Upstream Server nach. Jetzt kann der Upstream Server je nach Konfig diese Anfrage bis zur IP hin auflösen, also rekursiv oder nur iterativ die zuständigen Nameserver zurückmelden.

1. wie gesagt in den wenigsten Fällen musst du für eine Anfrage den ganzen Weg bis zu den root Servern gehen. Das ist der Clou von DNS, wenn es einer der beteiligten Upstream Server in seinem Cache hat, kommt die Antwort von dort. Wenn jede Anfrage direkt an die root Server gehen würde, dann wären das sehr viele unnötige Abfragen und sehr viel unnötige Last. Gerade bei DNS Servern des Providers ist es sehr wahrscheinlich, dass die Antwort bereits im Cache ist.
99.95% der eingesetzten DNS Server dürften mit bind laufen und bind kann sicher sowohl iterativ als auch rekursiv verarbeiten. Die Einschränkung bei Wikipedia dürfte sich eher auf "dumme" Applikationen beziehen, die ihre DNS Abfragen direkt rauspusten. Macht man heute eher nicht mehr so, sondern die Applikation soll das Betriebsystem nach der IP fragen. Weiss es das OS nicht, dann soll das OS via seine Upstream Server die IP in Erfahrung bringen und an die Applikation zurückmelden
 

schwiz19

Benutzer
Mitglied seit
16. Sep 2012
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
Nameserver, Upstream DNS, Resolver ist alles dasselbe ;-) Sind alles DNS Server. Die Unterscheidung besteht nur bei der primären Aufgabe. Meist bezeichnet man als Nameserver jene DNS Server ,welche für Zonen zuständig sind. Bei Resolver meint man einen DNS Server welcher selber keine Zonen bedient, sondern nur nach extern auflöst. Upstream Server sind DNS Server welche Anfragen für andere Resolver erledigen. Sagen wir dein Resolver ist dein Router, dann ist der Upstream Server meist der DNS deines Providers. Wenn dein Router also eine Anfrage ned auflösen kann, fragt er erstmal bei seinem Upstream Server nach. Jetzt kann der Upstream Server je nach Konfig diese Anfrage bis zur IP hin auflösen, also rekursiv oder nur iterativ die zuständigen Nameserver zurückmelden.


Achsoooo. Weshalb kann den eigentlich nicht der Resolver selber als Upstream-Server fungieren? Wofür brauchts dann diese Upstream Server? Mein Resolver kann doch das gleiche wie der Nameserver oder auch (Upstream-Server) von meinem ISP? Wenn mein Resolver die IP von google.ch nicht kennt, kann er doch selber die Auflösung über ROOT-Server machen ohne das er den Upstream-Server von ISP benötigt? Der Upstream-Server würde mir bei iterativ nur den Name-Server für .ch nennen. Weil er nicht weiter auflöst? Habe ich das jetzt also richtig verstanden?
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
z.B. weil es Provider gibt, die den DNS Zugriff nach aussen nur ihren Upstream Servern erlauben und dem Endkundenanschluss ned
 

schwiz19

Benutzer
Mitglied seit
16. Sep 2012
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
konfigurieren auf iterative arbeitsweise

Hallo

Ich weiss altes Thema aber ich bin endlich dazu gekommen um den Name-Server zu installieren.

Software: bind9

Jetzt weiss ich bereits wie ich als Upstream-Server rekursive-Anfragen beantworten lassen kann aber nicht wie das mit der iterativen Arbeitsweise funktioniert.

Kann mir jemand erklären wie ich iterative Arbeitsweise konfigurieren kann? Bei der rekursion erhalte ich als Client vom Name-Server eine IP-Adresse der aufzulösenden Website; bei der Iterativen Arbeitsweise schickt dann mein Server dem Client eine Liste der NS die die Auflösung machen könnten?
Rich (BBCode):
allow-iterativ{...};?


Liebe Grüsse
Nicolas
 

schwiz19

Benutzer
Mitglied seit
16. Sep 2012
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
wenn du nur iterativ willst, dann stellt rekursiv ab ;-)
http://www.zytrax.com/books/dns/ch2/index.html#iterative

Kannst du mir die restlichen Fragen noch beantworten bitte? Kann auf der Seite die du mir gegeben hast leider nicht viel verstehen da steht etwas von canoncial Name was das damit zu tun hat ist mir ein Rätsel auch sehe ich keinen befehl um die Rekursion zu deaktivieren -> also ich vermute mal mit deny-recursion?

Wieso ist die iterative Arbeitsweise weniger Überlastungsanfällig als die Rekursion? Bei der Iteration muss mein DNS-Server auch wissen und meinem Resolver später sagen können wo und welcher Name-Server die Informationen haben könnte. Der Resolver bekommt also z.B eine Liste der weiter zu befragenden Name-Server.

Hingegen bei der Rekursion übergibt der Resolver meinem NS die gesamte Arbeit herauszufinden wie die Infos sind. Danach erhällt der Resolver zum Schluss nur noch die IP-Adresse des Webservers z.B. Stimmt das soweit??
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Kannst du mir die restlichen Fragen noch beantworten bitte? Kann auf der Seite die du mir gegeben hast leider nicht viel verstehen da steht etwas von canoncial Name was das damit zu tun hat ist mir ein Rätsel auch sehe ich keinen befehl um die Rekursion zu deaktivieren -> also ich vermute mal mit deny-recursion?
http://www.zytrax.com/books/dns/ch7/queries.html

Wieso ist die iterative Arbeitsweise weniger Überlastungsanfällig als die Rekursion?

weil dabei weniger Queries gemacht werden
 

schwiz19

Benutzer
Mitglied seit
16. Sep 2012
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
Hab heute mal den Router konfiguriert um den Name-Server zu testen leider ging das nicht als ich eine Auflösung machen sollte habe die IP-Adresse von mir durch diejenigen von meinem ISP ersetzt.

Also mit allow-recursion {any;}; kam failture. Ohne dieser direktive ist alles ok aber auch so kommt unter Windows die Meldung "youtube.com konnte unter DNS nicht gefunden werden."

Was mach ich den falsch?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
bitte schau dir genau an wie die Syntax für Bind ist. Tipp: die Leerzeichen sind wichtig
 

schwiz19

Benutzer
Mitglied seit
16. Sep 2012
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
bitte schau dir genau an wie die Syntax für Bind ist. Tipp: die Leerzeichen sind wichtig

habe allow-recursion { any; };

dann etc/init.d/bind9 reload

failed!

danach zurück geändert: ohne failed.

Was ist den blos falsch?


Unter http://faq.hosteurope.de/view.php?mode=drucken&content_id=5225 fand ich folgendes:

| Realisierung in bind (Linux):

Bei bind können Sie in der /etc/named.conf eine Direktive erstellen, die die erlaubten IP-Bereiche enthält. Dies kann typischerweise so aussehen:

options {
// [...]
allow-recursion { 127.0.0.1; };
};


Auch damit ging es nicht habe aber die Zeile // [...] ausgelassen und die Adresse des localhosts durch any ersetzt.
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
poste mal den gesamten options-Block deiner Config so wie du es mit allow-recursion probiert hast. Wenn du die Leerzeichen gemacht hast und es trotzdem Fehler gibt, dann hast du wohl die Direktive "falsch" platziert (vermutet meine Glaskugel)
 

schwiz19

Benutzer
Mitglied seit
16. Sep 2012
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
poste mal den gesamten options-Block deiner Config so wie du es mit allow-recursion probiert hast. Wenn du die Leerzeichen gemacht hast und es trotzdem Fehler gibt, dann hast du wohl die Direktive "falsch" platziert (vermutet meine Glaskugel)

welcher option block?

named.conf besteht ausser kommentaren und includes gar nichts. ich habe jetzt nur das hinzugefügt mit dem allow-recursion nach include habe ich enter gedrückt dann folgendes eingefügt:

Meine named.conf sieht etwa so aus:
Rich (BBCode):
Text in english...
Text in english...

include /etc/bind9/named.local
include /etc/bind9/db.local
...
...

options {
 allow-recursion { 127.0.0.1; };
 };

Ohne diese options Befehl gibt keinen Fehler sobald der ganze Absatz hinzukommt oder nur das allow-recursion { any; }; kommts zum Fehler.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
hast du kein File named.conf.options ? Normalerweise ist options { } dort drin
Dort sollte bereits ein options Block stehen. Ich vermute mal durch das Platzieren deines options-Block in named.conf überschreibst du den options-Block aus named.conf.options
Der bind braucht schon einige options mehr als nur allow-recursion.
Btw: sag nicht einer der ... steht für include /etc/bind9/named.conf.options ;-)
 

schwiz19

Benutzer
Mitglied seit
16. Sep 2012
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
hast du kein File named.conf.options ? Normalerweise ist options { } dort drin
Dort sollte bereits ein options Block stehen. Ich vermute mal durch das Platzieren deines options-Block in named.conf überschreibst du den options-Block aus named.conf.options
Der bind braucht schon einige options mehr als nur allow-recursion.
Btw: sag nicht einer der ... steht für include /etc/bind9/named.conf.options ;-)

Also wie jetzt? reicht allow-recursion { any; }; nicht aus damit eine Auflösung von rekursiven requests gemacht wird? Bin davon ausgegangen alle normalen Direktiven kommen in named.conf und die named.conf.optiones ist nur wenn man eine zonentransfer einrichten will.

Verstehe nicht was du mit "Der bind braucht schon einige options mehr als nur allow-recursion." meinst. Die named.conf.optines sollte bei mir leer sein weil ich keine Zonentransfer eingerichtet habe.

Was soll ich den nun tun? In der Anleitung steht ja ganz genau ich soll den Befehl

options {
allow-recursion { any; };
};


in etc/bin9/namec.conf tun
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
hast du oder hast du nicht ein File named.conf.options???
Du kannst die normalen Direktiven auch in named.conf machen, hindert dich keiner dran. Wenn es aber in named.conf.options bereits einen options Block gibt, und den gibt es bei einem default bind dort eigentlich immer, und du dann in named.conf einen neuen options Block machst, dann überschreibst du den Block aus named.conf.options!!
Normalerweise hat man in named.conf.options den options Block drin. Die Zonen und Einstellungen zu Zonentranfers hat man normalerweise in named.conf.local Und named.conf ist eigentlich nur dafür da, dass die verschiedenen Files mittels include eingebunden werden.

Also schau jetzt mal ob du die named.conf.options hast und was dort drin steht! Ansonsten wäre es vielleicht auch mal eine Idee die genaue Fehlermeldung zu posten, immer "failed" hilft nicht wirklich weiter
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat