Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Bind (named) - Funktion "forward [first|only]" richtig!

  1. #1
    Premium Mitglied Avatar von Doh!
    Registriert seit
    Jul 2002
    Ort
    Frankfurt am Main
    Beiträge
    1.372

    Bind (named) - Funktion "forward [first|only]" richtig!

    Mythen und Legenden ranken sich - ich muss es immer wieder feststellen - um die Funktion "forward" beim beliebten Namensserver bind9 aus dem Hause ISC (um ehrlich zu sein, ich weiß nicht, ob sich das auf bind4 und bind8 übertragen lässt, aber wer nutzt die schon ?). Da ich es hier schon zig-fach falsch gelesen habe, nun als Tipp, wie die Funktion "forward" richtig anzuwenden ist:


    Zunächst ein kleiner Ausflug in die Welt des DNS:

    Ein Host stellt eine DNS-Query an seinen voreingestellten DNS-Server, meinetwegen lautet die Anfrage "www.linuxforen.de". Wenn der DNS-Server für die Domain nicht selbst zuständig ist und auch nicht weiß, welcher andere DNS dafür zuständig ist, so fragt der DNS-Server zunächst einen der derzeit 15 in seiner root.hint Datei hinterlegten root-Server, welche DNS-Server für die Domain "de" zuständig sind¹. Er bekommt die Antwort und fragt nun eben jenen Server an, welcher DNS-Server denn die Domain linuxforen.de betreut. Von dort aus hangelt er sich weiter bis zu dem Server, der ihm die IP von www.linuxforen.de liefern kann. Jede normale DNS-Query setzt also eine Kaskade von mindestens 3 Anfragen in Gang.

    Wichtig ist auch noch sich klarzumachen, dass bind (und wohl alle anderen Nameserver auch) immer cachen. Sie speichern die zuletzt gemachten Anfragen für kurze Zeit zwischen um die Kaskade nicht ständig neu abarbeiten zu müssen. Wichtig: Dieser Cache wird immer - egal in welchem Betriebszustand forward sich gerade befindet - VOR der Kaskade befragt!

    Ganz wichtig: Vor Cache und Kaskade stehen immer die eigenen (und auch deligierten) Zonen! Ein Nameserver forwarded niemals, wenn er Daten in der eigenen Datenbank oder im Cache stehen hat!

    Die Funktion forward [first|only] kennt nun drei Betriebszustände (die Funktion "forward" macht natürlich nur Sinn in Verbindung mit der Funktion "forwarders { [IP-DNS1]; [IP-DNS2]};" wobei die IP's zu funktionstüchtigen DNS-Servern gehören sollten)":
    • aus - indem man die Funktion komplett auskommentiert, ein "off" Schlüsselwort gibt es afaik nicht. Mit dieser Funktion ausgeschaltet verhält sich ein DNS genau so, wie oben beschrieben. Dieser Betriebszustand sollte für einen öffentlichen DNS - wie z.B. einen von T-Online oder ARCOR - gewählt werden. Im Prinzip ist es sinnvoll, alle DNS, die eine öffentliche IP besitzen, in dieser Betriebsart zu belassen, da die DNS-Anfragen in diesem Fall dann am schnellsten bearbeitet werden, zumindest wenn man eine gute Internetanbindung hat. Wichtig ist natürlich auch, dass so ein DNS - auch wenn er in einem lokalen Netz steht - eine direkte Internetanbindung benötigt, sonst kann er die Kaskade nicht starten (jaja, es gibt durchaus sinnige Varianten, in denen ein DNS nicht mit dem Internet verbunden ist!)
    • first - ist diese Betriebsart gewählt, so startet der DNS bei einer Query zunächst nicht selbst die Kaskade, sondern bittet stattdessen den/die DNS-Server, die unter "forwarders" eingetragen sind, stellvertretend die Anfrage zu stellen (bzw. seinerseits die Anfrage an einen weiteren Forwarder weiterzuleiten). Sollten diese aus irgendwelchen Gründen keine Antwort liefern können, so startet der DNS-Server dann doch die Kaskade selbst. Diese Betriebsart macht z.B. dann Sinn, wenn relativ viele Hosts den DNS "quälen", dieser aber nur mit einer relativ schmalen Leitung ans Netz angeschlossen ist. Pro Anfrage gibt es nämlich ins Netz nur eine Query anstelle von dreien oder gar mehr (weil die Kaskade ja der Forwarder übernimmt). Auch hier gilt: der DNS benötigt eine Leitung ins Internet.
    • only - nun macht der DNS gar nix mehr selbst (wie gesagt, in seinen Datenbanken und in den Cache schaut er natürlich trotzdem erst nach!). Diese Betriebsart wird vor allen Dingen bei sogenannten "Caching-Only"-DNS-Servern² eingesetzt, die keine direkte Anbindung ans Netz haben. Hat man zum Beispiel ein stark segmentiertes Firmen-Netz, so kann es vorkommen, dass man den Traffic innerhalb des Netzes etwas veringern will, und so in die verschiedenen Sub-Netze Caching-Only DNS-Server setzt. Diese haben oftmals gar keine Möglichkeit (wegen Firewall o.ä.) in das Internet zu kommen (sollen sie auch gar nicht), sondern die "leben" davon, ihre Anfragen an andere interne DNS-Server weiterzugeben, um ihren Cache möglichst groß zu halten. Stellt ein Server in der Betriebsart "forward only" eine Anfrage, so wird die Query an den Forwarder weitergeleitet. Wenn dieser keine Antwort weiß, so gibt der DNS-Server an den anfragenden Host eine negative Rückmeldung ohne selbst noch einmal eine Query zu versuchen.


    Ich lese hier ganz oft, dass empfohlen wird, für's Heimnetz auf jeden Fall Forwarder einzustellen. Das macht nicht immer Sinn. Hat man z.B. eine DSL-Anbindung und nur wenige Rechner im Heimnetz, so kann man getrost auf den Forwarder verzichten, und den eigenen DNS (auch aus einem nicht-öffentlichen IP-Raum heraus) die Kaskade selbst starten lassen. Das ist meist schneller, als irgendwelche geplagten öffentlichen DNS-Server anzuhauen. Bei ISDN oder Modem-Verbindungen würde ich eher die "forward first"-Option empfehlen. Die "forward only"-Option eignet sich für das Heimnetz so gut wie nie! Man schränkt sich seinen DNS nur unnötig ein.

    Hoffe ein wenig Licht in's Dunkle gebracht zu haben, nicht zu viel Unfug und Rechtschreibfehler hier eingebaut zu haben. Übrigens: ich hasse Fußnoten auch...



    ¹In Wirklichkeit stellt sich der fragende DNS-Server noch "dümmer" an: er fragt den root-Server nämlich: "Weißt Du die IP vom Host www.linuxforen.de"? Der root-Server antwortet: "Nein, aber ich kann Dir zumindest sagen, wer für die Top-Level-Domain .de zuständig ist". Der DNS-Server geht dann an diesen und machts dann genau so: "Weißt Du die IP vom Host www.linuxforen.de?" Der antwortet wiederum: "Nö, aber ich weiß, wer die Domain linuxforen.de verwaltet." usw.

    ²Vorsicht: als "Caching Only" werden DNS nicht nur dann bezeichnet, wenn sie mit der Betriebsart "forward only" eingestellt sind - ein häufiges Mißverständnis. DNS-Server werden dann so bezeichnet, wenn sie selbst keine eigene Zone (außer "localhost") verwalten. Alle drei oben genannten Betriebsarten können auch "Caching Only"-DNS-Server sein.
    ----
    Suchworte: bind9 bind8 bind named named.conf dns domain name service forward first only forwarders
    Geändert von Doh! (24.01.04 um 10:19 Uhr)
    Es gibt nicht so viel Tag im Jahr wie der Fuchs am Schwanz hat Haar

  2. #2
    immer noch neu hier
    Registriert seit
    Jan 2003
    Ort
    Zentral-Schweiz
    Beiträge
    81
    Super, vielen Dank für die Erläuterungen!

  3. #3
    Debianer Avatar von msi
    Registriert seit
    Jan 2002
    Ort
    München
    Beiträge
    1.963
    und wie kann ich jetzt meinen dnsserver anweisen lokale anfragen zu beantworten, aber die aus dem internet an forwarders weiterzuleiten (und zwar genau in dieser reihenfolge)?

  4. #4
    Premium Pils
    Registriert seit
    May 2001
    Ort
    Berlin
    Beiträge
    665
    Original geschrieben von msi
    und wie kann ich jetzt meinen dnsserver anweisen lokale anfragen zu beantworten, aber die aus dem internet an forwarders weiterzuleiten (und zwar genau in dieser reihenfolge)?
    hm, mit access-rules und forward first?
    wobei ick nicht weiss obs diese direktive in bind9 noch gibt/oder erst.
    "Das Fernsehen, eben noch revolutionär auf der Bühne von 1989, war vom Täter zum Hirn geworden, zu einer einzigen Wahrheitsmaschine" (Rainald Goetz --word)

  5. #5
    thomas.arend
    Gast
    Hier ein ergänzender Kommentar:

    Auszug aus dem Admin Reference Maunual

    6.2.14.2. Forwarding

    The forwarding facility can be used to create a large site-wide cache on a few servers, reducing traffic over links to external name servers. It can also be used to allow queries by servers that do not have direct access to the Internet, but wish to look up exterior names anyway. Forwarding occurs only on those queries for which the server is not authoritative and does not have the answer in its cache.

    forward

    This option is only meaningful if the forwarders list is not empty. A value of first, the default, causes the server to query the forwarders first, and if that doesn't answer the question the server will then look for the answer itself. If only is specified, the server will only query the
    forwarders.

    forwarders

    Specifies the IP addresses to be used for forwarding. The default is the empty list (no forwarding).
    Also, es gibt nur zwei Optionen für forward und der default ist first. Das heißt die erLäuterung für "forward aus" ist nicht zutreffend.

    Die Nutzung des DNS des Providers hat den Vorteil, dass der lokale Cache durch den Cache der Provider ergänzt wird und die Root-Server entlastet werden.

    Ist ein seltener Name nicht im Cache des Providers, dann dauert die Abfrage bei t-online nach meinen Messungen erheblich länger, als die direkt Abfrage über die root Server.

    Dieser Nachteil sollte jedoch durch die Treffer im Cache ausgeglichen werden.

    Ungefähre Werte in meinem Heimnetz!

    ~2 Sekunden, wenn Domain nicht existiert (Tipp-Fehler)
    2 bis 5 Sekunden, wenn nicht im Cache des DNS bei T-online
    0,500 Sekunden, wenn ohne forwarders und nicht im eigenen Cache
    0,050 Sekunden, wenn im Cache t-online <-- hier macht sich der forwarder bezahlt
    0,005 Sekunden, wenn im eigenen DNS

    Ohne einen forwarder muss der eigene Cache erstmal mühsam gefüllt werden. Deshalb sollte im Heimnetz immer mindestens ein forwarder eingetragen werden.

    Zu forward only und forward first konnte ich keinen Geschwindigkeitsuntershied feststellen. Allerdings stellt sich die Frage, warum der eigene Server die Auflösung bewerkstelligen sollte, wenn der des Providers es nicht kann.

    Nichts für ungut, hab es auch nicht gleich gewusst und musste mich belehren lassen.

    Aber am Besten selber nachlesen: www.bind9.net/manuals

  6. #6
    Registrierter Benutzer Avatar von wicking
    Registriert seit
    Dec 2003
    Ort
    Berlin
    Beiträge
    491
    Zitat Zitat von thomas.arend
    Also, es gibt nur zwei Optionen für forward und der default ist first. Das heißt die erLäuterung für "forward aus" ist nicht zutreffend.
    Doch, ich denke die Erläuterung für "forward aus" trifft sehr wohl zu. Und zwar für den Fall, dass man bei forwarders nichts angegeben hat (bzw. forwarders einfach komplett auskommentiert hat). Dann wird doch nicht geforwardet. Oder?
    Workstation: Fedora 12, AMD Athlon X2 BE-2400, 4 GB RAM, 600 + 300 + 120 GB HDD
    Notebook: Fedora 13, IBM Thinkpad X40, 1,5 GB RAM

    Registrierter Linux User #344145 -> http://counter.li.org/

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jun 2004
    Beiträge
    12
    hi wicking,

    hm, also so wie ich das verstanden habe wuerde ich sagen forwarden
    tut der immer es sei denn die root.hint ist leer und es sind keine forwarders
    eingetragen. dann weiss der server eben nicht wohin er forwarden soll.
    aber ansonsten wird immer geforwardet.

    wenn kein forward eintrag vorhanden ist wird, wie Doh! oben auch schon geschrieben hat, einer der 15 root server gefragt usw. ...

    allerdings wuerde ich auch genau wie thomas.arend jedem dsl
    user empfehlen forwarders einzutragen (von seinem jeweiligem provider)

    gruss ulf

  8. #8
    thomas.arend
    Gast

    Optionen für forward

    Hallo,

    sorry aber hier eine knappe Wiederholung der Fakten:

    1. Es gibt nur die Schlüsselworte "first" und "only".
    2. Der default ist "first".
    3. D.h. weglassen / auskommentieren der Option forward ist genauso als hätte man "forward first" geschrieben.
    4. Die Option forward ist nur sinnvoll, wenn forwarders benannt sind. Dann werden immer die root server befragt, es sei denn, root.hint ist leer.
    5. Forwarding wird also über forwarders ausgeschaltet und nicht über die Option forward.


    MfG
    Thomas Arend

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •