Derzeit verwende ich die einfache Standard-Linux-Konfiguration für resolv.conf
… so etwas wie:
nameserver 123.123.123.123
nameserver 8.8.8.8
Wenn 123.123.123.123 ausfällt, werden DNS-Abfragen unmöglich langsam. Ich gehe davon aus, dass Linux jedes Mal die erste wiederholt. Gibt es eine Möglichkeit, Linux dazu zu bringen, diesbezüglich intelligenter zu sein? Gesundheitschecks oder so etwas? Oder verstehe ich das falsch, wie es resolv.conf
funktionieren soll?
Antwort1
Zusätzlich zu ewwhites toller Antwort noch ein Nachtrag.
Sie können dies hinzufügen in/etc/resolv.conf
options timeout:1 attempts:1 rotate
Die Standardeinstellungen sind Zeit:5 Versuche:2
Was passiert, ist, dass die Resolver-Bibliothek versucht, die /etc/resolv.conf
von oben nach unten aufgelisteten Nameserver zu verwenden, wenn keine Rotationsoption vorhanden ist. Wenn Rotation vorhanden ist, führt sie eine Round-Robin-Auswahl durch. Wenn der Resolver zum Ende der Liste geht und der Server nicht innerhalb von X Sekunden antwortet (wobei X der Timeout-Parameter ist), wiederholt er den gesamten Prozess der Round-Robin-Auswahl Y-1-mal (wobei Y der Wert der Versuche ist).
Allerdings ist Vorsicht geboten, wenn Sie Dig und Co. zum Testen dieser resolv.conf-Optionen meiden. Da sie die Resolver-Bibliothek umgehen und direkt die Nameserver abfragen, ist getent hosts der bessere Befehl. Beachten Sie, dass alles, was den glibc-Resolver verwendet, die /etc/resolv.conf
Datei befolgen muss.
Antwort2
Dies wird über beschrieben man resolv.conf
.
Bitte versuchen Sie eine der Timeout-Optionen, um den Standardwert von 5 Sekunden auf möglicherweise 1 Sekunde zu senken ...
options timeout:1
nameserver 123.123.123.123
nameserver 8.8.8.8
Aber DNS bietet tatsächlich so viele Ausfallsicherheiten, dass man ohne Timeouts bei niedrigerer Auflösung leben kann. Ist es möglich, ein besseres öffentliches DNS auszuwählen oder einen eigenen internen Resolver auszuführen?