BIND (named) unter Tiger

Dieses Thema im Forum "Mac OS X - Unix & Terminal" wurde erstellt von maceis, 03.05.2005.

  1. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Hallo zusammen,

    Das Starten von Daemons funktioniert unter Tiger ja deutlich anders als vorher.
    Der BIND (named) wird unter Tiger vom launchd gestartet.

    Nun habe ich beobachtet, dass der Server nur unter der 127.0.0.1 erreichbar ist, wenn ich nicht mit "rndc reload" die Konfiguration neu lade.
    Das ist natürlich unerwünscht.

    Leider konnte ich bisher nicht herausfinden, woran das liegt bzw. wie ich dafür sorgen kann, dass der named auf allen IP-Adressen lauscht.
    An der Konfiguration scheint es nicht zu liegen.

    Würde mich freuen, wenn jemand zur Klärung beitragen könnte.
     
  2. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.830
    Zustimmungen:
    3.633
    MacUser seit:
    23.11.2004
    schon mal die /System/Library/LaunchDaemons/org.isc.named.plist angeguckt?

    ansonsten kannst du mal probieren rndc-confgen laufen zu lassen...
    /etc/rndc.key und /etc/rndc.conf sind halt nicht vorhanden bei der standard installation.
     
  3. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Du meinst sicher "/System/Library/LaunchAgents/org.isc.named.plist";
    Ja klar hab ich da reingeschaut.
    Da vermute ich aber nicht das Problem.
    Wenn ich named nicht beim Booten sondern mit dem selben Kommando wie launchd (named -f) von Hand starte, nachdem das System hochgefahren ist, werden Anfragen sofort auf allen Interfaces beantwortet.
    Dasselbe Ergebnis erhalte ich, wenn ich named mit Hilfe von launchctl nach dem Hochfahren starte.
    Andererseits wir named beim Booten ja auch gestartet (wenn die Einstellung in org.isc.named.plist das nicht verhindert); er lauscht nur nicht gleich auf allen Adressen.

    rndc funktioniert ja; da hab ich (zum Glück) keine Probleme. Ich arbeite mit rndc.key.
     
  4. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    (Mist, falsch geklickt - ich sollte schlafen gehen ;))
     
    Zuletzt bearbeitet: 04.05.2005
  5. cilly

    cilly Gast

    Hey Maceis, ich habe genau gleiches Problem festgestellt. Clean-Install! Das tritt nur direkt nach dem Reboot auf. Es sieht fast so aus, dass named schon gestartet wird, wenn das en0 noch nicht bereit ist? Wenn das Interface dann nach einer Stunde wieder gecheckt wird...

    Werde ich gleich mal ausprobieren:

    // how often should bind check for new
    // interfaces to listen on. we turn
    // this off by setting it to 0
    interface-interval 1;

    Der default ist 60, also 1 Stunde. Mal sehen was passiert, wenn ich das auf eine Minute stelle.

    Was nichts gebracht hat: listen-on auf en0 setzen, oder ausschalten.

    Ich vermute es ist ein Bug in launchd, der named wird zu früh gestartet.
     
  6. cilly

    cilly Gast

    Okay, jetzt hab ich den Beweis:

    den Wert auf 2 Minuten gesetzt und nach genau 2 Minuten war der Bind da und hat geantwortet.

    Das ist definitiv ein Bug, der BIND wird zu früh gestartet und erkennt das Interface en0 daher nicht. Erst beim automatischen Check wird das en0 erkannt und als listener hinzugefügt.
     
  7. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Das hatte ich auch als erstes vermutet; beim Blick in"top" meinte ich aber unterhalb von named noch andere Prozesse zu entdecken, die en0 benutzen und hatte diesen Gedanken wieder verworfen.

    Vielen Dank für Deinen Hinweis, den ich nächste Woche mal verfolgen werde.
    Zur Zeit bin ich "auf Reisen".

    Wenn Du Recht hast, wäre das nicht so gut, denn eigentlich sollte launchd dafür sorgen, dass die Prozesse in der "richtigen" Reihenfolge gestartet werden. AFAIK kann man da auch nichts beeinflussen (so wie bei den StartupItems).
     
  8. cilly

    cilly Gast

    Da müsste man genau verifizieren, wann was wie gestartet wurde. BIND logging-Verhalten auf verbose stellen...
    Jedenfalls ist Fakt: Bind horcht nicht auf en0. Mein Vermutung: er erkennt das en0 nicht, weil er zu früh gestartet wird. Das schließt nicht aus, dass andere Prozesse auf en0 laufen.
    Bei den StartupItems konnte man wohl dependencies festlegen:

    cat /System/Library/StartupItems/BIND/StartupParameters.plist
    Code:
    {
      Description	 = "DNS server";
      Provides		= ("BIND");
      Requires		= ("Network");
      Uses			= ("Network");
      OrderPreference = "None";
    }
    
     
  9. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    So ist es.
    Für launchd muss ich mir wohl selbst was basteln.
    Das minütliche checken nach neuen Interfaces scheint mir denn doch zu albern.
    Ich werde ein Skript schreiben (zumindest als vorläufigen workarround), das eine Minute "schläft" und dann und dann org.isc.named.plist einmal entlädt und sofort wieder neu lädt.
    Zur Zeit bin ich auf Reisen und kann es erst nächte Woche testen.
    Ich halt Euch auf dem Laufenden, ob es funktioniert.
     
  10. cilly

    cilly Gast

    Ich habe Bind veranlasst, alle 5min zu checken, folgenden Inhalt in /etc/namec.conf einfügen:

    // how often should bind check for new
    // interfaces to listen on. we turn
    // this off by setting it to 0
    interface-interval 5;

    So dauert es nach einem Neustart zwar 5 Minuten, bis der Bind da ist, doch so oft wird der Server mit BIND ja auch nicht heruntergefahren.
     
Die Seite wird geladen...