Come fanno le applicazioni client a usare IPv4 o IPv6?


18

In che modo server / computer / utenti / applicazioni sanno come richiedere una risorsa su Internet con un indirizzo IPv6 e un indirizzo IPv4?

Risposte:


24

La prima cosa che determina un client è quali protocolli sono disponibili. Supponiamo che siano disponibili sia IPv4 che IPv6 (altrimenti la risposta a quale protocollo scegliere è banale;) Quindi eseguirà una ricerca DNS per entrambi i record A (indirizzo IPv4) e AAAA (indirizzo IPv6). Se viene restituito un solo tipo, lo utilizzerà. Se vengono restituiti gli indirizzi IPv4 e IPv6, il comportamento predefinito dipende un po 'dal software client. Di solito viene utilizzato RFC 3484 .

Secondo gli standard ufficiali dovrebbe preferire IPv6, ma poiché ci sono alcune macchine (0,01% o meno) che hanno configurato erroneamente IPv6, i client sono diventati più intelligenti. La maggior parte dei browser in questi giorni tenterà di connettersi tramite IPv6, ma se non ottengono una connessione funzionante entro 300 millisecondi, proveranno a connettersi su IPv4 in parallelo. Viene quindi utilizzata la prima connessione riuscita. Questo è coperto da Happy Eyeballs RFC .

Apple ha cambiato questo in Lion. Lì il sistema operativo in realtà tiene traccia delle prestazioni di tutte le connessioni e se determina che la connessione IPv4 ha una latenza inferiore rispetto alla connessione IPv6, inizierà a preferire IPv4. Ma se la connessione IPv4 diventa più lenta, potrebbe tornare a IPv6. Dai un'occhiata a questo thread della mailing list per una discussione su questa funzionalità.

Per l'utente non dovrebbe importare se si utilizza IPv4 o IPv6, purché funzioni. IPv4 e IPv6 dovrebbero essere forniti ugualmente bene. I siti Web dovrebbero funzionare esattamente allo stesso modo su IPv4 come su IPv6, ecc.

IPv4 rimarrà in uso per molti anni a venire. Diventerà inutilizzabile una volta che i nuovi servizi (siti Web, giochi, ecc.) Saranno distribuiti solo su IPv6 perché non ci sono più nuovi indirizzi IPv4 da utilizzare. E a un certo punto tutto ciò che funziona su IPv4 funzionerà anche su IPv6. A quel punto la disabilitazione di IPv4 farà risparmiare tempo e denaro (perché mantenere due protocolli quando uno è sufficiente?).


1
Dopo che questo è stato scritto, RFC 3484 è stato obsoleto da RFC 6724 .
Michael Hampton,

Come determina quali protocolli sono disponibili? Ho visto comportamenti casuali in cui, apt-get updatead esempio, tenta di connettersi agli host ipv6, ma l'host stesso non ha nemmeno un indirizzo IPv6, a parte il suo link-local.
Halfgaar,

1
Questo è gestito dalla selezione dell'indirizzo di origine e destinazione (RFC 6724). Nel tuo caso sembra che l'host visualizzi il record AAAA in DNS, scelga quell'indirizzo di destinazione, quindi scopra che non ha un indirizzo di origine che può usare con quella destinazione e quindi ricade su IPv4.
Sander Steffann,

2

Il passaggio intermedio attualmente in uso è noto come tunneling. Essenzialmente i pacchetti IPv6 viaggiano all'interno dei pacchetti IPv4 fino a quando non raggiungono un punto in cui possono essere rimossi dall'incapsulamento IPv4 e inviati dall'altra parte su una rete IPv6 completa. Naturalmente c'è molta più complessità di così, ma il concetto di base in generale è lo stesso su tutta la linea.

Man mano che sempre più dispositivi diventano IPv6 e le persone acquisiscono maggiore familiarità con l'utilizzo degli indirizzi, IPv6 vedrà un maggiore utilizzo. Non credo (opinione personale) che IPv6 sarà veramente abbracciato e vedrà un lancio su larga scala nel mercato SMB e personale fino a quando lo spazio IPv4 diventerà un prodotto costoso.

Ad un certo punto in un futuro abbastanza lontano, quando IPv6 alimenta la stragrande maggioranza del traffico, ho potuto vedere un'inversione del destino per IPv4, in cui il traffico IPv4 deve essere incapsulato all'interno dei pacchetti IPv6 regolari e i broker di tunnel svolgono un ruolo simile (ma invertito) a causa di la mancanza di routing IPv4 / assegnazioni IP estese.


1
Non credo che questo risponda alla domanda ... Inoltre: il tunnel sta rapidamente scomparendo nell'internet IPv6 di base perché l'IPv6 nativo è ora disponibile ovunque. Ci sarà un po 'di tunneling per i clienti, ma ciò non ha nulla a che fare con la scelta che un sistema fa quando si collega. PS: il tunneling IPv4-over-IPv6 è già visualizzato. Alcuni operatori di Internet via cavo stanno distribuendo DS-Lite quest'anno, il che fa esattamente questo.
Sander Steffann,

Io lavoro per una grande data center e avere contatti tutte del settore, e la mia esperienza è IPv6 è sicuramente non ovunque ormai. Il tunnel esiste per colmare il divario e considerando che la maggior parte degli utenti finali non ha ancora assegnazioni IPv6, è ancora rilevante.
Garrett,

3
Il tunneling è effettivamente in uso, ma dovrebbe essere evitato ove possibile. Gli ISP che non offrono ancora un IPv6 decente ai propri clienti non stanno facendo il loro lavoro ... Ma comunque: la domanda era come le applicazioni client scelgono tra IPv4 e IPv6 e che non ha nulla a che fare con il modo in cui la rete ha la sua connettività IPv6 perché quello è il lavoro del router, non dell'applicazione client. L'applicazione client utilizza solo tutto ciò che è disponibile sulla rete locale.
Sander Steffann,

Crociata, amico mio.
Garrett,

-2

Penso che tu stia chiedendo come un'app decide come scegliere. Dal lato del programma, dipende dall'implementazione dell'applicazione. Se il programmatore rende IPv6 una priorità più alta rispetto a IPv4, ad esempio, proverà innanzitutto a utilizzare getipv6addr (). Se questo non è configurato o fallisce, allora proverà a usare getaddr (), ecc. In base a ciò, l'app invierà prima la richiesta tramite IPv6 o viceversa.

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.