Préférez les recherches DNS (IPv4) avant les recherches AAAA (IPv6)

44

Notons que mon Ubuntu 10.10 nouvellement installé effectue toujours une recherche DNS AAAA avant une recherche d’enregistrement. Est-il possible de configurer le système pour effectuer une recherche en premier?

(Bien que divers navigateurs et autres applications puissent contenir leurs propres résolveurs, je parle de ceux de la glibc)

non
la source
Pour clarifier, vous voulez avoir les deux IPv4 et IPv6 présents?
Belacqua
De préférence oui. Mais comme je n’ai que le lien IPv6 local, c’est un gaspillage considérable de demander par exemple l’enregistrement AAAA de google.com, puis de demander l’enregistrement A ensuite.
nos

Réponses:

53

C'est la norme pour donner la priorité à IPv6 sur IPv4 afin de permettre à l'IP de nouvelle génération de prendre le dessus :)

Vous pouvez changer cela en modifiant les blocs de priorité dans /etc/gai.conf(gai signifie getaddrinfol'appel système standard pour la résolution des noms d'hôtes). Commentez la ligne comme décrit dans le fichier:

# Pour les sites qui préfèrent les connexions IPv4, remplacez la dernière ligne par

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

Vous trouverez une explication détaillée gai.confdans la page de manuel.

Freddyb
la source
merci, tu as sauvé ma journée! l'un de mes serveurs continue de recevoir les résultats ipv6 du serveur DNS, mais mon serveur ne peut tout simplement pas fonctionner correctement w / ipv6
Boon
Bonjour, ce paramètre nécessite-t-il un sysctl, un rechargement de service ou un redémarrage pour prendre effet? J'ai trouvé votre réponse utile, mais vous pourriez l'éditer afin de résoudre de tels doutes.
Marco
La page de manuel de for gai.confindique que vous devez commenter toutes les lignes, pas seulement celle IPv4, pour obtenir le comportement modifié correct. De gai.conf(5): "Une fois encore, la présence d'une seule ligne de priorité dans le fichier de configuration empêche l'utilisation du tableau par défaut." Si vous voulez que les autres lignes de tableau par défaut continuent à fonctionner, vous devez également les commenter.
Ian D. Allen
10

Mon problème était le même, j'avais des requêtes IPV6 faites avant IPV4 et elles gaspillaient des ressources, alors j'ai changé mon fichier /etc/gai.conf comme freddyb posté, mais mon scénario est un peu différent, mon serveur est Natted, donc IPv4 n'aura pas la priorité sur IPv6 avec uniquement cette ligne. La solution commente également d’autres lignes sur gai.conf afin que cela ressemble à ceci

#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

Donc, votre serveur va d'abord essayer ipv4 même si vous êtes Natted!

Carlos Ho Continy
la source
2
Le /etc/gai.conffichier "vif" dans Ubuntu 15.04 indique que ces trois scopev4lignes que vous suggérez ci-dessus sont déjà les valeurs par défaut. Je n'ai fait que le precedence ::ffff:0:0/96 100changement d' une ligne et cela fonctionnait même derrière le NAT.
Ian D. Allen
1

Si vous ne voulez pas du tout que IPv6 soit activé, vous pouvez le faire pour cela. http://www.webupd8.org/2010/05/how-to-disable-ipv6-in-ubuntu-1004.html

sinon, vous pouvez essayer d'ajouter

options single-request

Dans votre fichier /etc/resolv.conf. (voir http://udrepper.livejournal.com/20948.html pour les détails sanglants)

ipv6_twit
la source
1
La page de manuel de resolv.conf indique que l'option que vous proposez correspond exactement à l'oposite "Cette option [...] permet à glibc d'exécuter les requêtes IPv6 et IPv4 de manière séquentielle (au prix d'un ralentissement du processus de résolution)." - man7.org/linux/man-pages/man5/resolver.5.html
ndemou
séquentiel = premier, puis l'autre - par opposition à parallèle. cela fonctionne bien ici.
jeudi