Come un'email trova il tuo server di posta
Mittente
you@gmail.com
Lookup MX
chi riceve la posta?
Server di posta
prima la priorità 10
Posta in arrivo
consegnata
Vince il numero di priorità più basso; quelli più alti sono di riserva
Il limite SPF di 10 lookup: cosa conta e come restare sotto
Un mail server ricevente verifica l'SPF valutando il tuo record, e valutarlo costa query DNS. Per mantenere limitato quel costo, l'RFC 7208 pone un tetto al numero di termini che causano query che una singola verifica può valutare. Supera il tetto e il risultato è permerror, un errore permanente che non è un pass. I checker lo segnalano comunemente come «too many DNS lookups» e di solito compare subito dopo che un altro servizio di invio è stato aggiunto al record.
Cosa conta la specifica
La sezione 4.6.4 dell'RFC 7208 elenca i termini che causano query DNS: i meccanismi include, a, mx, ptr ed exists e il modificatore redirect. Le implementazioni devono limitare a 10 il totale di questi termini durante una valutazione e devono restituire permerror se il limite viene superato. I meccanismi all, ip4 e ip6 non richiedono alcuna query e non vengono contati, e nemmeno il modificatore exp, che viene recuperato solo in un secondo momento, dopo un fallimento.
| Termine | Conta per i 10? | Note |
|---|---|---|
include | Sì | Più ogni termine conteggiato all'interno del record a cui punta |
a | Sì | Un lookup per il nome |
mx | Sì | Limitato a parte a 10 lookup di indirizzi; di più dà permerror |
ptr | Sì | Sconsigliato: l'RFC dice che non dovrebbe essere pubblicato |
exists | Sì | Una query |
redirect | Sì | Conta quando viene raggiunto (solo se nessun meccanismo ha corrisposto, e mai quando il record contiene all); la destinazione viene poi valutata con lo stesso budget |
ip4, ip6 | No | L'indirizzo è nel record stesso |
all | No | Per convenzione è l'ultimo meccanismo; tutto ciò che lo segue viene ignorato |
exp | No | Recuperato solo dopo un fallimento, per la stringa di spiegazione |
Contano due dettagli. Primo, include non copia un altro record nel tuo: ne viene usato solo il risultato, e l'RFC ammette che il nome sia stato scelto male. Un -all dentro un record incluso non pone fine alla valutazione complessiva. Secondo, i meccanismi vengono valutati da sinistra a destra e l'elaborazione si ferma al primo che corrisponde. Il limite si applica ai termini effettivamente valutati durante una verifica, non alla dimensione del record sulla carta.
Contare un record a mano
Considera un record ipotetico per un'azienda che usa due piattaforme di posta, un CRM, un help desk e un proprio mail server:
v=spf1 include:mailer-a.example include:mailer-b.example include:crm.example include:helpdesk.example mx a ~allSupponi che i record inclusi contengano i termini qui sotto. Sono inventati a scopo illustrativo, e i record dei provider reali differiscono e cambiano nel tempo.
| Termine valutato | Lookup usati finora |
|---|---|
include:mailer-a.example | 1 |
al suo interno: include:_nets.mailer-a.example | 2 |
include:mailer-b.example | 3 |
al suo interno: a | 4 |
al suo interno: mx | 5 |
include:crm.example | 6 |
al suo interno: include:spf1.crm.example | 7 |
al suo interno: include:spf2.crm.example | 8 |
include:helpdesk.example | 9 |
mx | 10 |
a | 11: oltre il limite, permerror |
La posta inviata tramite la prima piattaforma corrisponde subito e passa. La posta del server che solo l'ultimo a autorizza richiede un undicesimo lookup, quindi la verifica restituisce permerror invece di una corrispondenza. Questa asimmetria è il motivo per cui il guasto sembra intermittente: dipende dalla posta di quale mittente viene controllata.
Altri limiti nella stessa specifica
- Lookup vuoti. Una query che non restituisce record, o un errore sul nome, è un lookup vuoto. L'RFC 7208 raccomanda di limitarli a due, e superare il limite produce
permerror. A parte, uninclude:la cui destinazione non ha alcun record SPF, compreso un nome che non esiste più, restituiscenone, e il meccanismo include lo trasforma subito inpermerror, quindi un include obsoleto può rompere da solo un record. - Fan-out. Un meccanismo
mxnon può innescare più di 10 lookup di indirizzi. Perptr, i nomi oltre i primi 10 vengono ignorati. - Un solo record. Se un dominio pubblica più di un record la cui versione è esattamente
v=spf1, il risultato èpermerror. - Dimensione. L'RFC consiglia di mantenere il record pubblicato abbastanza piccolo da far stare la risposta in 512 ottetti, così da viaggiare in un singolo pacchetto UDP senza EDNS(0).
- Tipo di record. L'SPF deve essere pubblicato come record TXT. Il tipo di record SPF dedicato usato nel periodo sperimentale è stato dismesso.
- Tempo. I riceventi dovrebbero limitare il tempo dedicato a una valutazione, ma concedere almeno 20 secondi. Se questo limite di tempo viene superato, il risultato dovrebbe essere
temperror, un errore temporaneo, nonpermerror.
Come tornare sotto il limite
- Elimina ciò che non usi più. Un servizio disdetto costa comunque un lookup ogni volta che la valutazione raggiunge il suo
include. Rimuovere gli include ormai inutili è la correzione più economica. - Sposta i mittenti su sottodomini. Ogni nome ha il proprio record e il proprio budget di 10. La posta il cui envelope sender è su
news.example.comviene verificata rispetto al record di quel nome, non a quello del dominio radice. Con l'allineamento rilassato, DMARC continua ad associare il sottodominio al dominio organizzativo. - Sostituisci
aemxcon valori letterali quando i server sono tuoi e cambiano di rado.ip4eip6non costano nulla. - Usa il flattening con cautela. Il flattening sostituisce un
includecon gli indirizzi a cui si risolve in questo momento. Oggi passa e fallisce in silenzio quando il provider cambia i propri intervalli. - Elimina
ptr. L'RFC dice che non dovrebbe essere pubblicato. Sostituireredirectconincludenon fa risparmiare nulla, poiché entrambi contano un lookup. - Ordina per volume, ma non farci affidamento. Poiché la valutazione si ferma alla prima corrispondenza, elencare per primi i valori letterali e i mittenti con il volume più alto consuma meno lookup per la maggior parte della posta. Questo riduce la frequenza con cui il limite crea problemi; non rende valido un record che supera il limite, e può nascondere il guasto finché non invia la posta un mittente usato di rado.
Un permerror ha conseguenze che vanno oltre l'SPF stesso. DMARC (RFC 7489) passa quando SPF o DKIM passa per un dominio allineato, e permerror non è un pass, quindi l'SPF non può più contribuire. Se anche DKIM manca o non è allineato, il messaggio non supera DMARC. Per vedere il tuo conteggio, lo strumento di controllo SPF segue ogni include e redirect e conta i lookup lungo l'intero albero rispetto al limite di 10. È un conteggio nel caso peggiore dei termini, non solo di quelli che un dato messaggio farebbe scattare. Quando modifichi il record, abbassa prima il suo TTL, così un errore potrà essere annullato in fretta; vedi il TTL DNS spiegato. Per il quadro generale, leggi SPF, DKIM e DMARC spiegati.
Da ricordare
Conta i termini, non i caratteri: include, a, mx, ptr, exists e redirect costano un lookup ciascuno, compresi quelli annidati, e l'undicesimo fa restituire permerror alla verifica.
Fonti e letture di approfondimento
- RFC 7208: Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1 (Kitterman, 2014)
- RFC 7489: Domain-based Message Authentication, Reporting, and Conformance (DMARC) (Kucherawy and Zwicky, 2015)
Devi controllare gli indirizzi DNS pubblici di un dominio? Usa lo strumento Domain IP Lookup.
Strumenti gratuiti su questo argomento
Domande frequenti
Per approfondire
I record che incontrerai in quasi ogni zona DNS
I record TXT spiegati: SPF, DKIM e DMARC
Tre record TXT si frappongono tra la tua posta e la cartella dello spam. Cosa fa ciascuno, come leggerne la sintassi e l'ordine sicuro per attivarli.
Come un'email trova il tuo server di posta
Mittente
you@gmail.com
Lookup MX
chi riceve la posta?
Server di posta
prima la priorità 10
Posta in arrivo
consegnata
Vince il numero di priorità più basso; quelli più alti sono di riserva
Record DNS per la posta: MX, SPF, DKIM e DMARC
Una guida pratica ai record DNS da cui dipende la posta, a come lavorano insieme routing e autenticazione e a cosa verificare dopo una migrazione della posta.
Come un'email trova il tuo server di posta
Mittente
you@gmail.com
Lookup MX
chi riceve la posta?
Server di posta
prima la priorità 10
Posta in arrivo
consegnata
Vince il numero di priorità più basso; quelli più alti sono di riserva
Cosa sono i record MX? Instradamento della posta spiegato
Il record che decide dove arriva la tua posta: come funzionano i numeri di priorità, cosa significa null MX e gli errori che fanno perdere messaggi in silenzio.