Devo usare solo IPv6 o entrambi IPv4 e IPv6 nel mio server Web?


39

Il mio server Web (Ubuntu, Nginx) ha indirizzi IPv4 e IPv6 assegnati dall'host. Per il mio sito Web, devo associarlo a un solo indirizzo IPv6? È il modo standard raccomandato? Oppure dovrei usare sia gli indirizzi IPv4 che IPv6?


13
Stai ponendo la domanda sbagliata (alle persone sbagliate) - Chiediti "Devo essere in grado di accedere a questo sito da client IPv4, client IPv6 o entrambi?". La risposta è anche la risposta a quali indirizzi il tuo server web deve ascoltare.
voretaq7,

6
Di solito, sono completamente d'accordo con una risposta "ottieni prima le tue specifiche" in questo modo, ma in questo caso, stranamente, non lo faccio; Sono d'accordo con Michael. "solo v6" è ancora, purtroppo, improbabilmente vanificante essere il requisito (anche se in questo caso, questo commento è completamente sbagliato). In caso contrario, passiamo allo "stack misto" e "solo v4". Anche se tutti i tuoi utenti dicono che "solo v4" è giusto, a questo punto, è sbagliato; lo stack misto è la strada da percorrere per il futuro, indipendentemente da ciò che dice l'attuale community di utenti.
MadHatter supporta Monica

@MadHatter A questo punto, possiamo tranquillamente eliminare "solo v4". I limiti intrinseci del NAT su larga scala rendono insostenibile solo v4 per l'operatore di un sito Web o molto probabilmente qualsiasi altro servizio Internet. Maggiori dettagli nella mia risposta aggiornata.
Michael Hampton

@MichaelHampton è ancora d'accordo con te.
MadHatter supporta Monica l'

Risposte:


56

Utilizzare sia IPv4 che IPv6

È necessario utilizzare entrambi gli indirizzi IPv4 e IPv6.

Quasi tutti su Internet hanno attualmente un indirizzo IPv4, oppure si trovano dietro un NAT di qualche tipo e possono accedere alle risorse IPv4.

Tuttavia, al momento in cui scriviamo solo circa lo 0,7% 2,3% 3,8% 6,5% 9% 12% 19% 22% Il 26% di Internet è compatibile con IPv6 , ma quel numero è in costante crescita mentre IPv6 inizia a diffondersi in tutto il mondo.

In pochissimi posti, gli ISP forniscono principalmente IPv6 o solo IPv6 ai clienti residenziali e utilizzano NAT, NAT64 su larga scala o altre soluzioni simili per la connettività IPv4. Si prevede che questo numero aumenterà man mano che lo spazio degli indirizzi IPv4 è finalmente esaurito. Questi utenti avranno in genere prestazioni migliori su IPv6.

Laddove gli ISP hanno implementato NAT su larga scala per risolvere l'esaurimento IPv4, gli utenti bloccati con questo subiranno una ridotta affidabilità di tutte le loro connessioni Internet a causa dei limiti di connessione inerenti ai gateway NAT su larga scala. Ad esempio, una pagina Web potrebbe caricare solo alcune ma non tutte le sue risorse , lasciando icone rotte dove dovrebbero essere le immagini, stili e script mancanti, ecc. Ciò è simile all'esaurimento del limite di connessione su un router domestico, ma interessa tutti gli utenti del ISP intermittente e apparentemente casuale. Se vuoi che il tuo sito sia affidabile per questi utenti, devi servirlo tramite IPv6 (e l'ISP deve aver distribuito IPv6).

Poiché IPv6 è la destinazione di Internet, avere il tuo sito Web IPv6 abilitato ti mette ora in vantaggio e ti consente di risolvere qualsiasi problema molto prima che diventi serio.

Configura nginx

Per impostazione predefinita con Linux e nginx, è possibile associare contemporaneamente sia IPv4 che IPv6 modificando le listendirettive in:

listen [::]:80;
listen 80;

Oppure, per i siti SSL:

listen [::]:443 ssl;
listen 443 ssl;

Ok grazie ... un'altra domanda .. Ora ho installato il server ... Nel DNS ricorre, devo mettere due record A e AAAA (con il nome host @) e puntare all'iP rilavant?
THpubs il

3
Sì, il Arecord è per il tuo indirizzo IPv4 e il AAAArecord è per il tuo indirizzo IPv6.
Michael Hampton

Perfezionare. Grazie mille per la spiegazione :) Sono nuovo alle cose di ipv6
THpubs il

Non ho familiarità con nginx, ma non dovrebbe listen 443;anche avere il sslproprio come il listen [::]:443 ssl;? Quindi listen 443 ssl;invece di listen 443;.
un CVn del

@aCVn Sì, dovrebbe. Grazie per averlo colto. Questo mi insegnerà a modificare le cose mentre dormo mezzo.
Michael Hampton

3

Associati ad entrambi!

Avevamo un sito Web IIS il cui codice faceva un riferimento interno a se stesso, usando il nome DNS utilizzato dal client. Questo processo fallirebbe sempre.

Un altro sintomo era che un browser in esecuzione localmente sul server non riusciva a trovare il sito web con il nome del server, solo tramite l'indirizzo IPv4. Cioè, http://192.168.55.139funzionerebbe, ma http://myhostfallirebbe. L'utilizzo ping myhostrestituisce, per impostazione predefinita, l'indirizzo IPv6 ( ping myhost -4restituisce l'indirizzo IPv4).

La soluzione consisteva nell'aprire IIS e modificare i Bind del sito Web in modo che si legassero all'indirizzo IPv6 e all'indirizzo IPv4.

inserisci qui la descrizione dell'immagine


6
Non è necessario offuscare gli indirizzi privati. Tuttavia, dovresti anche associarti al tuo indirizzo IPv6 globale in modo che il tuo sito possa essere raggiunto esternamente tramite IPv6.
Michael Hampton

Il codice menzionato era il Winnovative HTML to PDF Converter.
Glen Little

2
Avere un servizio accessibile sia internamente che esternamente è più facile quando non si utilizza NAT. Ed è più facile evitare NAT, se si utilizza IPv6. Ma connettersi ciecamente a un nome host fornito da un client sembra un difetto di progettazione. È del tutto possibile che il client ti invii Hostun'intestazione con un nome di dominio che non ti appartiene.
Kasperd,
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.