Preferire le ricerche DNS A (IPv4) prima delle ricerche AAAA (IPv6)


44

Nel mio caso Ubuntu 10.10 appena installato esegue sempre una ricerca DNS AAAA prima delle ricerche di record. C'è un modo in cui posso configurare il sistema per fare prima le ricerche A?

(Mentre vari browser e altre applicazioni potrebbero contenere i propri resolver, sto parlando di quelli in glibc)


Per chiarire, vuoi avere sia IPv4 che IPv6 presenti?
belacqua,

Preferibilmente si. Ma dato che ho solo un collegamento IPv6 locale, è un vero spreco chiedere ad esempio il record AAAA di google.com ogni volta, e poi chiedere il record A in seguito.
nn.

Risposte:


53

È lo standard dare la priorità a IPv6 su IPv4 per consentire a IP di prossima generazione di assumere il controllo :)

Puoi cambiarlo modificando i blocchi di precedenza in /etc/gai.conf(gai sta per getaddrinfo, la chiamata di sistema standard per la risoluzione dei nomi host). Basta commentare la riga come descritto nel file:

# Per i siti che preferiscono connessioni IPv4, modificare l'ultima riga in

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

Una spiegazione dettagliata su gai.confè disponibile nella pagina man.


grazie, mi hai salvato la giornata! uno dei miei server continua a ottenere risultati ipv6 dal server dns ma il mio server non ha funzionato correttamente w / ipv6
Boon

Salve, questa impostazione richiede un sysctl o qualche ricarica di servizio o un riavvio per avere effetto? Ho trovato utile la tua risposta, ma potresti modificarla per risolvere tali dubbi.
Marco,

La pagina man per gai.confdice che devi annullare il commento di tutte le righe, non solo quella IPv4, per ottenere il comportamento modificato corretto. Da gai.conf(5): "Ancora una volta, la presenza di una singola riga di precedenza nel file di configurazione impedisce di utilizzare la tabella predefinita." Se si desidera che le altre righe della tabella predefinite continuino a funzionare, è necessario annullare il commento anche su di esse.
Ian D. Allen,

10

Il mio problema era lo stesso, avevo domande IPV6 fatte prima di IPV4 e dove sprecavano risorse, quindi ho cambiato il mio file /etc/gai.conf come postato da freddyb, ma il mio scenario è un po 'diverso, il mio server è Natted, quindi IPv4 non avrà la precedenza su IPv6 con solo quella linea. La soluzione sta anche commentando altre righe su gai.conf, quindi sarà simile a questa

#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

Quindi il tuo server proverà prima ipv4 anche se sei Natted!


2
Il /etc/gai.conffile in Ubuntu 15.04 "vivid" dice che quelle tre scopev4righe che suggerisci sopra sono già predefinite. Ho apportato solo il precedence ::ffff:0:0/96 100cambio di una riga e ha funzionato anche dietro NAT.
Ian D. Allen,

1

Se non si desidera abilitare IPv6, è possibile disabilitare IPv6 per farlo. http://www.webupd8.org/2010/05/how-to-disable-ipv6-in-ubuntu-1004.html

in caso contrario, puoi provare ad aggiungere

options single-request

Nel tuo file /etc/resolv.conf. (vedi http://udrepper.livejournal.com/20948.html per dettagli cruenti)


1
La pagina di manuale per resolv.conf indica che l'opzione suggerita fa esattamente l'opposto "Questa opzione [...] fa sì che glibc esegua le richieste IPv6 e IPv4 in sequenza (a scapito di un rallentamento del processo di risoluzione)." - man7.org/linux/man-pages/man5/resolver.5.html
ndemou,

sequenziale = prima uno, poi l'altro - al contrario del parallelo. funziona bene qui.
cweiske,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.