Infrastruttura

Happy Eyeballs non è un failover da timeout

Happy Eyeballs prova un indirizzo, poi il successivo. Il ritardo consigliato è 250 millisecondi. Non è un record DNS e non è HTTP/3. Un IPv6 rotto può restare invisibile.

4 min di lettura

Happy Eyeballs non è un failover da timeout
In questa guida (6)
  1. 1Cosa specifica l’RFC 8305
  2. 2250 millisecondi non sono un timeout da manuale
  3. 3Il TTL che scade non cancella il tentativo già partito
  4. 4Può nascondere un IPv6 rotto
  5. 5Errori da evitare
  6. 6In sintesi

Happy Eyeballs non è un record DNS, non è HTTP/3 e non è il CNAME all’apice. È un modo di aprire la connessione quando un nome risolve in più indirizzi. Lo standard è l’RFC 8305, dicembre 2017, che rende obsoleto l’RFC 6555. Rilettura del testo il 18 ottobre 2026.

In breve: non si parte in parallelo su tutti gli IP. Si tenta un indirizzo, poi il successivo dopo un ritardo. Il valore consigliato di quel ritardo è 250 millisecondi. Il minimo consigliato è 100 millisecondi, e un tentativo successivo non deve partire entro 10 millisecondi dal precedente. Il massimo consigliato è 2 secondi. Se IPv6 è rotto e IPv4 risponde, l’utente può non accorgersene: l’RFC lo scrive come limite, non come pregio.

Cosa specifica l’RFC 8305

L’algoritmo si chiama, nel documento, «Happy Eyeballs Connection Setup». Quattro fasi, sezione 2: query DNS asincrone; ordinamento degli indirizzi; tentativi di connessione asincroni; una connessione che riesce e che dovrebbe cancellare le altre. Il documento assume che la policy dell’host preferisca IPv6 a IPv4. Se l’host è configurato al contrario, le stesse raccomandazioni si adattano. Non è un bit da accendere nel DNS. Il cluster è Infrastruttura. Un record CAA resta un’altra riga, in un’altra RFC.

Sezione 5: i tentativi non vanno fatti tutti insieme, per non caricare la rete. Si parte da un solo indirizzo. Partire il successivo non chiude il precedente: per un po’ i tentativi convivono. Quando uno completa in genere l’handshake TCP, gli altri che non sono ancora riusciti vanno annullati (SHOULD). Gli indirizzi non ancora provati si ignorano. La query DNS asincrona si può annullare, ma il resolver dovrebbe ancora accettare risposte per circa un secondo, così riempie la cache.

Sezione 9.2: se il DNS restituisce più indirizzi di server applicativi diversi, non è detto che TLS o HTTP funzionino su tutti. La corsa della connessione non controlla l’applicazione.

250 millisecondi non sono un timeout da manuale

Parametro, sezione 5Valore nell’RFC 8305
Connection Attempt Delay, default consigliato250 millisecondi
Minimo consigliato100 millisecondi
DivietoUn tentativo successivo non deve partire entro 10 millisecondi dal precedente
Massimo consigliato2 secondi
Implementazione più fineCirca il tempo del secondo SYN TCP, timer dell’RFC 6298, non i ritrasmessi successivi con backoff

Un’implementazione può usare l’RTT già misurato verso lo stesso host o prefisso. Il ritardo resta un intervallo tra un tentativo e il prossimo, non l’attesa massima di una pagina. Il 18 ottobre 2026 non ho misurato il ritardo di un browser preciso: riporto il numero dello standard, non un benchmark.

Il TTL che scade non cancella il tentativo già partito

Sezione 6. Se durante la connessione il DNS toglie un indirizzo, per esempio perché il TTL è scaduto, e il tentativo su quell’indirizzo è già partito, il tentativo non dovrebbe essere cancellato. Se l’indirizzo non era ancora stato provato, va tolto dalla lista. Se ne arriva uno nuovo, va inserito nell’ordine. Happy Eyeballs non è la scadenza del record, e non è un failover che aspetta il timeout intero del sistema operativo prima di guardare l’altra famiglia.

Può nascondere un IPv6 rotto

Sezione 9.3, titolo «Hiding Operational Issues». In pratica Happy Eyeballs può nascondere guasti di rete. Esempio dello stesso testo: una misconfigurazione fa fallire sempre IPv6 mentre IPv4 funziona, e l’algoritmo può ridurre la capacità dell’operatore di accorgersene. La raccomandazione è un monitoraggio esterno su tutte le famiglie di indirizzi. Non è un motivo per spegnere IPv6. È un motivo per non usare «il sito si apre» come prova che l’AAAA è sano.

Sezione 10: l’applicazione non deve appoggiarsi a una mappa stabile nome-indirizzo per una proprietà di sicurezza, perché il DNS può cambiare tra una query e l’altra. Happy Eyeballs rende più probabile che due connessioni successive allo stesso nome usino IP diversi.

Errori da evitare

  • Chiamarlo un record DNS o un header HTTP. Non sta né nell’uno né nell’altro.

  • Confonderlo con HTTP/3. Quello è un altro protocollo, su QUIC, già trattato a parte.

  • Pensare che partano dieci socket insieme. L’RFC chiede di non farlo.

  • Usare 250 millisecondi come timeout dell’intera pagina. È il ritardo prima del tentativo successivo.

  • Scendere sotto i 10 millisecondi tra un tentativo e il successivo. È un MUST NOT.

  • Dedurre che IPv6 funziona perché la home si è aperta. La sezione 9.3 dice il contrario possibile.

In sintesi

Un indirizzo alla volta, il successivo dopo un ritardo. Consigliato 250 millisecondi, non meno di 100, mai entro 10, tetto consigliato 2 secondi. La policy assunta preferisce IPv6, ma il documento si adatta se l’host preferisce IPv4. Il successo di una connessione dovrebbe chiudere le altre. Un AAAA rotto può restare invisibile a chi guarda solo la pagina. Non è un CNAME e non è HTTP/3.

Foto di copertina: Raimond Spekking, «CAT8 Ethernet Cable», Wikimedia Commons, CC BY-SA 4.0. È un cavo, non un diagramma dell’handshake.

Domande frequenti

No. RFC 8305, dicembre 2017, riletto il 18 ottobre 2026: è un algoritmo di apertura della connessione quando un nome risolve in più indirizzi. Rende obsoleto l’RFC 6555.
No. Sezione 5: i tentativi non vanno fatti simultaneamente. Si inizia da un indirizzo. Il successivo parte dopo il Connection Attempt Delay e non chiude il precedente.
Il default consigliato è 250 millisecondi. Il minimo consigliato è 100. Un tentativo successivo non deve partire entro 10 millisecondi. Il massimo consigliato è 2 secondi.
Non se è già partito. Sezione 6: l’indirizzo rimosso ma già in tentativo non dovrebbe essere cancellato. Se non era ancora stato provato, va tolto dalla lista.
Non secondo la sezione 9.3. Se IPv6 fallisce sempre e IPv4 risponde, Happy Eyeballs può nascondere il guasto all’operatore. Serve un monitoraggio sulle famiglie di indirizzi.

Potrebbe interessarti anche...

Hai bisogno di scegliere una webagency per il tuo progetto?

Abbiamo la soluzione giusta

Parliamone
  • Consulenza specializzata
  • Soluzioni su misura
  • Risultati concreti

Tecnologialiberaper tutti

Hai bisogno d'aiuto?

Parla con noi. Il nostro supporto è attivo tutti i giorni dalle 9 alle 18

+390835239514 Chiamaci

Crea il tuo eCommerce

Creiamo eCommerce su misura senza farti spendere un patrimonio

info@roxxoitalia.com Scopri il nostro CMS

Crea il tuo sito web

Siti web già pronti per andare online. Vuoi saperne di più? Contattaci

info@roxxoitalia.com Scrivici