Ich weiß, dass dies nur ein Mangel an Verständnis sein muss, aber hier ist das Problem.
Wir haben kürzlich die DNS-Server von 192.168.1.1 auf .2 geändert, also bin ich zu allen 8 meiner Linux-Server gegangen und habe /etc/resolv.conf geändert, um die Änderung widerzuspiegeln. Beachten Sie, dass sie alle statisch sind und kein DHCP beteiligt ist.
Nachdem ich die Änderung vorgenommen habe, kann ich die Ergebnisse sofort mit nslookup und dig testen, und alles sieht gut aus. Ich habe einen Neustart von /etc/init.d/networking durchgeführt, um das Netzwerksubsystem neu zu starten, und Apache und Postfix auf jedem der Server neu gestartet, nur um sicherzugehen.
Ein paar Tage später erhalte ich einen Bericht, der besagt, dass auf unseren Websites keine E-Mails mehr gesendet werden. Beim Durchsuchen der Protokolle stellte ich fest, dass der Prozess mod_php DNS-Einträge zum Senden von E-Mails nicht auflösen konnte. Nachdem ich mir etwa 30 Minuten lang den Kopf geschlagen hatte, startete ich den Server neu und alles normalisierte sich wieder.
Am nächsten Tag erhalte ich auf einem anderen Server (unter Verwendung von CentOS anstelle unseres normalen Ubuntu) einen Bericht, der besagt, dass E-Mails nicht durchlaufen werden, und ein Blick in die Protokolle zeigt, dass Postfix Namen nicht auflösen kann. Neustart und es liefert fast sofort alle in der Warteschlange befindlichen E-Mails.
Was vermisse ich hier? Welchen Teil dieses Prozesses habe ich nicht richtig verstanden?
Die meisten Anwendungen initialisieren den Resolver einmal beim Start (mit
res_init
) und wiederholen ihn danach nie wieder. Dies ist kein Problem für Anwendungen mit kurzer Lebensdauer wie Ping, sondern schwerwiegender für Daemons mit langer Laufzeit.Der Apache-Prozess (der mod_php ausführt) war wahrscheinlich in diesem Fall. Ein Neustart von Apache wäre ausreichend.
quelle
resolv.conf weist Resolver an, wo nach Namen gesucht werden soll. In den meisten Fällen ist dies der libc-Resolver. Es kann jedoch auch andere Fälle geben, z. B. vPostMaster, in dem die Python-DNS-Resolver-Bibliothek für SPF-Suchvorgänge verwendet wird.
Also, es KöNNTE sein , dass der Resolver für lang laufende Prozesse die resolv.conf Informationen zwischenspeichert, aber es klang wie Sie neu gestartet Postfix, die verursacht haben , sollte es mit einer frischen resolv.conf Datei zu starten.
Überprüfen Sie in Ihrer /etc/nsswitch.conf, ob darin etwas Besonderes für "Hosts" angegeben ist. Die Standard-Fedora 11-Leitung auf meinem Laptop lautet beispielsweise:
Hosts: Dateien mdns4_minimal [NOTFOUND = return] DNS
In diesem Fall werden also mdns sowie / etc / hosts und DNS verwendet. In diesem Fall würde ich mich fragen, ob es die mdns waren, die dies verursachten, wenn DNS-Änderungen nicht erfasst wurden.
Sean
quelle
Wahrscheinlich wird etwas zwischengespeichert. Wir hatten ein ähnliches Problem mit
sendmail
und durch Neustart des Dienstes wurde es behoben.Manchmal ist es einfacher, den Server neu zu starten und alle diese Caches an einer beliebigen Stelle im System zu löschen, als die ganze Zeit damit zu verbringen, festzustellen, welcher Dienst zu lange zwischengespeichert wird. Andererseits kann es sich als Investition herausstellen, wenn es erneut passiert und Sie wissen, welcher Dienst neu gestartet werden muss.
quelle