Bevorzugen Sie eine (IPv4) DNS-Suche vor einer AAAA-Suche (IPv6)

44

Hinweis: Mein neu installiertes Ubuntu 10.10 führt immer eine AAAA-DNS-Suche durch, bevor ein Datensatz gesucht wird. Kann ich das System so konfigurieren, dass zuerst A-Lookups durchgeführt werden?

(Während verschiedene Browser und andere Anwendungen möglicherweise ihre eigenen Resolver enthalten, spreche ich über die in glibc)

nos
quelle
Zur Verdeutlichung möchten Sie sowohl IPv4 als auch IPv6 haben?
Belacqua
Am liebsten ja. Da ich jedoch nur lokales IPv6 verknüpfe, ist es eine ziemliche Verschwendung, jedes Mal nach dem AAAA-Datensatz von google.com zu fragen und anschließend nach dem A-Datensatz zu fragen.
Nr.

Antworten:

53

Es ist der Standard, IPv6 gegenüber IPv4 zu priorisieren, um die Übernahme von IP der nächsten Generation zu ermöglichen :)

Sie können dies ändern, indem Sie die Prioritätsblöcke in /etc/gai.conf(gai steht für getaddrinfoden Standardsystemaufruf zum Auflösen von Hostnamen) bearbeiten . Kommentieren Sie einfach die Zeile aus, wie in der Datei beschrieben:

# Bei Sites, die IPv4-Verbindungen bevorzugen, ändern Sie die letzte Zeile in

#precedence :: ffff: 0: 0/96 100

Eine ausführliche Erklärung gai.confdazu finden Sie in der Manpage.

freddyb
quelle
Danke, du hast meinen Tag gerettet! Einer meiner Server erhält weiterhin IPv6-Ergebnisse vom DNS-Server, aber mein Server konnte mit IPv6 einfach nicht richtig funktionieren
Boon
Hallo, erfordert diese Einstellung ein sysctl oder einen Neustart oder ein erneutes Laden des Dienstes, um wirksam zu werden? Ich fand Ihre Antwort nützlich, aber Sie könnten sie bearbeiten, um solche Zweifel auszuräumen.
Marco
In der Manpage für gai.confheißt es, dass Sie alle Zeilen, nicht nur die IPv4-Zeile, auskommentieren müssen, um das korrekte geänderte Verhalten zu erhalten. Von gai.conf(5): "Erneut führt das Vorhandensein einer einzelnen Prioritätszeile in der Konfigurationsdatei dazu, dass die Standardtabelle nicht verwendet wird." Wenn Sie möchten, dass die anderen Standardtabellenzeilen weiterhin funktionieren, müssen Sie sie ebenfalls auskommentieren.
Ian D. Allen
10

Mein Problem war das gleiche, ich hatte IPV6-Abfragen vor IPV4 und sie verschwendeten Ressourcen, also habe ich meine /etc/gai.conf -Datei wie von Freddyb gepostet geändert, aber mein Szenario ist ein bisschen anders, mein Server ist Natted, also IPv4 hat mit nur dieser Leitung keinen Vorrang vor IPv6. Die Lösung kommentiert auch andere Zeilen in der gai.conf aus, so dass es so aussieht

#For sites which prefer IPv4 connections change the last line to
precedence ::ffff:0:0/96 100
...
#    For sites which use site-local IPv4 addresses behind NAT there is
#    the problem that even if IPv4 addresses are preferred they do not
#    have the same scope and are therefore not sorted first.  To change
#    this use only these rules:
#
scopev4 ::ffff:169.254.0.0/112  2
scopev4 ::ffff:127.0.0.0/104    2
scopev4 ::ffff:0.0.0.0/96       14

Ihr Server wird also zuerst ipv4 ausprobieren, auch wenn Sie Natted sind!

Carlos Ho Continy
quelle
2
Die /etc/gai.confDatei in Ubuntu 15.04 "lebendig" besagt, dass diese drei scopev4Zeilen, die Sie oben vorschlagen, bereits die Standardeinstellung sind. Ich habe nur die einzeilige precedence ::ffff:0:0/96 100Änderung vorgenommen und das hat sogar hinter NAT funktioniert.
Ian D. Allen
1

Wenn Sie IPv6 überhaupt nicht aktivieren möchten, können Sie IPv6 deaktivieren, um dies zu erreichen. http://www.webupd8.org/2010/05/how-to-disable-ipv6-in-ubuntu-1004.html

Wenn nicht, können Sie das Hinzufügen versuchen

options single-request

In deine /etc/resolv.conf Datei. ( Weitere Informationen finden Sie unter http://udrepper.livejournal.com/20948.html. )

ipv6_twit
quelle
1
Die Handbuchseite für resolv.conf gibt an, dass die von Ihnen vorgeschlagene Option genau das Gegenteil bewirkt: "Mit dieser Option [...] führt glibc die IPv6- und IPv4-Anforderungen nacheinander aus (auf Kosten einer gewissen Verlangsamung des Auflösungsprozesses)." - man7.org/linux/man-pages/man5/resolver.5.html
ndemou
sequentiell = erst eins, dann das andere - im Gegensatz zu parallel. es funktioniert gut hier.
Cweiske