Come lasciare che il browser preferisca IPv6 su IPv4?


16

Ho installato miredo e ho IPv6 attivo e funzionante sembra. Posso eseguire il ping di host 6 e scaricare pagine Web con wget o il mio browser web quando specifico gli indirizzi IPv6, tuttavia ogni volta che specifico un nome host offerto su IPv4 e IPv6 il browser sceglie l'indirizzo IPv4 per la connessione.

Come posso cambiarlo e lasciare che il browser usi IPv6 invece di IPv4 se disponibile?

Cercando su Google ho scoperto che i browser preferiranno IPv4 rispetto a IPv6 per i tunnel 6to4 / teredo, ma finora non ho trovato una spiegazione del perché o come cambiarlo.

Risposte:


10

Non sono i browser che preferiscono nessuna delle opzioni, è il sistema operativo. Lo standard definisce le priorità più o meno in questo modo:

  1. ipv6
  2. ipv4
  3. 6to4-Traffic

È possibile modificarlo modificando i blocchi etichetta / precedenza in /etc/gai.conf(gai sta per getaddrinfo, la chiamata di sistema standard per la risoluzione dei nomi host).

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

Questo, tra l'altro, spiega anche l'esperienza di Jonathon secondo cui il tunnel SiXXS era preferito al 6to4.


7

Per Firefox e altri browser basati su Mozilla / Gecko, l' network.dns.disableIPv6impostazione about:configdovrebbe essere falsese si dispone di IPv6 (è impostato su true per impostazione predefinita in Ubuntu, perché altrimenti molte persone ottengono problemi con i proxy DNS difettosi nei router domestici).


Lo prendo questo è per Firefox?

Sì, scusa, aggiornerò la mia risposta.
JanC

2
Ho appena controllato. Non è necessario toccare il pref. Oggi è l'impostazione predefinita truein Firefox, anche per Firefox di Ubuntu.
freddyb,

6

Proprio come ha sottolineato freddyb, questo dipende dalla configurazione della chiamata di sistema standard per risolvere i nomi host, getaddrinfo .

Per risolvere il tuo problema, sostituisci il contenuto /etc/gai.confcon le seguenti righe:

label ::1/128       0
label ::/0          1
label 2002::/16    2
label ::/96         3
label ::ffff:0:0/96 4
label fec0::/10     5
label fc00::/7      6
#label 2001:0::/32   7

aggiornato : grazie a freddyb per aver sottolineato che la mia risposta precedente era sbagliata: dobbiamo commentare l'ultima riga, non la terza. Ora funziona per me!


6

Recentemente, Chrome, Firefox e i browser derivati ​​evitano effettivamente IPv6 se un sito risponde più velocemente su IPv4. Non è possibile modificare questo comportamento mediante un'impostazione di configurazione.

La funzione stessa è probabilmente ragionevole per l'utente comune ma mi fa quasi impazzire che non puoi disabilitarla. La connettività IPv6 è abbastanza buona al giorno d'oggi e talvolta IPv6 presenta diversi vantaggi rispetto alla connessione tramite IPv4 anche se la latenza - dovuta al tunneling - è maggiore. Sto navigando su IPv6 da anni e nonostante il routing e le prestazioni di IPv6 stiano migliorando molto, questa dannata funzione "hack" del browser mi fa tornare indietro di un decennio.


2
Tale comportamento è raccomandato in RFC 6555. È una pratica comune da circa il 2010. E per offrire un'esperienza utente decente, è assolutamente il comportamento corretto da utilizzare per impostazione predefinita. Se i browser non lo avessero fatto, la maggior parte dei siti Web avrebbe rifiutato di pubblicare record AAAA. Detto questo, un'impostazione da modificare ha molti millisecondi di vantaggio iniziale per dare IPv6 sarebbe una buona idea. Essere in grado di scegliere quel vantaggio iniziale per sito sarebbe ancora meglio. L'impostazione per sito potrebbe essere aggiunta al browser come possibile valore di ritorno da uno script proxy.
Kasperd,

2

OK, ho esaminato questo ed è strano.

  1. Usa un proxy locale
    Se imposto Firefox su proxy tramite Squid in esecuzione sul mio computer, Firefox (o più precisamente, Squid) si collegherà tramite il tunnel miredo. Se ho installato miredo ma Firefox impostato su "nessun proxy", Firefox utilizza prima IPV4.

  2. Installa aiccu
    Se installo aiccu e lo configuro con un tunnel (es. SiXXS), indipendentemente dalle mie impostazioni proxy IPV6 viene utilizzato per primo da Firefox.

Può darsi che siccome miredo sia lì per connettersi ai siti IPV6, venga utilizzato solo quando IPV4 non è disponibile, nel qual caso prova aiccu.


1

La risposta è semplice: modifica le etichette.

label 2002::/16    1
label 2001:0::/32   1

Questo li rende equivalenti a "vanilla" ipv6.

Se li lasci commentati, prenderanno i valori predefiniti.

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.