Cosa determina se il nome FQDN viene interpretato come IPv6 o IPv4?


9

Quando digito un nome di dominio completo (FQDN) nella barra dell'URL, il browser si collega a una tabella di mapping (dove è memorizzata questa tabella? Con il fornitore di servizi?) Che determina dove è ospitato il file richiesto.

Quindi, dipende dal fornitore di servizi (che presumo abbia la tabella di conversione) se gli indirizzi IPv6 sono supportati o meno. È vero?

Risposte:


7

Dato che questo è etichettato iptables, suppongo che questa sia una domanda Linux.

Su Linux spetta a glibc decidere se un programma, per un determinato nome host, cerca prima l'indirizzo IPv6 (AAAA) o l'indirizzo IPv4 (A). Il programma che utilizza glibc utilizza la funzione getaddrinfo (). Il comportamento di getaddrinfo () è configurato in /etc/gai.conf.

Sul tuo sistema, molto probabilmente tutto ciò che è in /etc/gai.conf viene commentato. Senza commento la voce:

etichetta :: / 0 1

per me ha portato all'attivazione della prima ricerca AAAA, quindi gli indirizzi IPv6 vengono cercati preferibilmente. Quindi questo potrebbe essere quello che vuoi.

Aggiornamento da aggiungere : il modo corretto sembra essere quello di decommentare l'intero blocco "etichetta" in gai.conf con i valori da 0 a 7:

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

4

Gli indirizzi IPv4 sono associati a un nome di dominio da un record A (Indirizzo) in DNS (Domain Name System). Gli indirizzi IPv6 sono mappati utilizzando i record AAAA. Sembra strano? Gli indirizzi IPv4 sono 32 bit, IPv6 sono 128 bit. 128/32 = 4, quindi anche AAAA / A = 4. Trucco intelligente da parte di chiunque abbia progettato la voce IPv6 nel DNS.

Il DNS è un sistema gerarchico e distribuito su tutta Internet. Il browser effettuerà una chiamata a una libreria di sistema, che avvia la catena di ricerca. Controllerà prima la sua cache locale, di solito memorizzata nella memoria. Quindi cerca il disco e guarda il file HOSTS (/ etc / hosts sulla maggior parte di UNIX / Linux, e C: \ Windows \ System32 \ drivers \ etc \ HOSTS su Windows). Quindi, se non riesce ancora a trovare una risposta, effettua una chiamata al server DNS assegnato, in base alla configurazione di rete.

Quel server DNS controlla la sua cache, che è molto più grande. Se ha una corrispondenza, restituisce una risposta. Se non riesce a trovare una risposta, si gira e chiede a un server DNS di livello ancora superiore gestito dall'ISP dell'ISP. Questo processo continua fino a quando non raggiungi i server dei nomi radice, a.root-servers.netattraverso m.root-servers.net. La maggior parte delle query DNS viene risolta LUNGO prima di arrivare così lontano, ma a volte uno o due riescono lì. Ma quando viene trovata una risposta, viene restituita al browser.

Ma come fa il tuo browser a sapere quale tipo di record richiedere? Dipende dalle impostazioni del sistema. Se lo hai impostato sul tuo stack IPv4 è prioritario, il tuo browser chiederà solo i record A nelle sue query DNS. Se IPv6, chiederà prima un record AAAA, quindi tornerà a un record A secondo.

Esistono anche altri tipi di record. I record MX definiscono dove si trova il server di posta per un dominio. I record NS definiscono i server dei nomi per un dominio. I record SRV indicano dove si trova un determinato servizio (ad esempio SSH o Web).

DNS è davvero la rubrica letterale di Internet.


2

La ricerca verrebbe gestita dal tuo DNS (e possibilmente dal tuo file hosts locale). La risoluzione di un determinato nome come indirizzo IPv6 o IPv4 dipende dalle impostazioni del browser (supporta IPv6 e invia richieste AAAA IPv6, il sistema operativo in uso (indipendentemente dal fatto che tu abbia uno stack IPv6) Provider DNS (supportano le richieste AAAA (IPv6) o no).

Il problema del browser è ulteriormente complicato dal fatto che alcuni (vecchi) browser non emettono mai richieste di ricerca AAAA e alcuni possono essere configurati per non inviarli (Firefox ha un'impostazione per questo) ma i browser più moderni inviano prima una richiesta AAAA e seguono una richiesta A.


Dove posso trovare il mio file hosts locale su Windows Vista?
Lazer,

Va bene, l'ho trovato qui: C:\Windows\System32\drivers\etc. Ma è vuoto
Lazer,

% SYSTEMROOT% \ System32 \ drivers \ etc - generalmente sarà C: \ Windows \ System32 \ drivers \ etc
Helvick

2
In genere è vuoto - aggiungi le voci se assolutamente necessarie, vuoi davvero lasciare la risoluzione dei nomi IPv6 a DNS.
Helvick,
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.