Come funziona la verifica SPF
Legge i record TXT del dominio inserito e individua quello che inizia con v=spf1. Segue quindi ogni include e redirect come farebbe un server ricevente, registra ogni ricerca che richiede una query DNS e controlla la sintassi di ogni termine.
Non è coinvolto alcun indirizzo IP. La verifica stabilisce se il record è valido e rispetta i limiti per chiunque debba valutarlo, non se uno specifico server è autorizzato a inviare. Per verificarlo, invia un messaggio tramite il test completo: il rapporto mostra il risultato effettivamente ottenuto dal destinatario.
Troppi lookup DNS: il limite è dieci
RFC 7208 limita una valutazione SPF a dieci termini che richiedono una query DNS: include, a, mx, ptr, exists e redirect. Il conteggio riguarda l'intero albero, quindi un include che a sua volta ne include altri tre ne utilizza quattro. Se si supera il limite, il risultato è permerror, che DMARC considera come SPF non superato.
Lo strumento conta ogni termine, compresi quelli che la valutazione potrebbe non raggiungere mai, perché una valutazione reale si interrompe alla prima corrispondenza. I server elencati per primi continuano a superare il controllo, mentre quelli successivi iniziano a non superarlo. Dall'esterno, sembra che la posta funzioni per alcuni messaggi ma non per altri.
I termini ip4 e ip6 non consumano ricerche DNS. Sostituire gli include con intervalli di indirizzi, operazione detta flattening, riduce il conteggio, ma richiede di mantenere manualmente tali intervalli allineati con quelli dei provider.
Errori da controllare
Due record SPF sullo stesso dominio. Succede quando la guida di configurazione di un secondo provider indica di aggiungere un record e nessuno lo integra nel primo. La sola presenza di due record genera un permerror.
Un finale +all, che consente a qualsiasi server su Internet di superare il controllo, oppure ?all, che non specifica nulla per nessuno e quindi non offre alcuna protezione. Un termine ptr, che RFC 7208 sconsiglia di usare. Anche gli include relativi a servizi che l'azienda ha smesso di utilizzare anni fa consumano una ricerca DNS ciascuno.
Domande
Com'è fatto un record SPF?
È un singolo record TXT del dominio che inizia con v=spf1, elenca chi è autorizzato a inviare e termina con una regola per tutti gli altri. v=spf1 include:_spf.google.com ip4:203.0.113.5 ~all consente l'invio da Google Workspace e da un server, applicando un softfail a tutti gli altri. Un dominio può pubblicarne soltanto uno.
SPF softfail o hardfail: ~all o -all?
Dopo aver configurato DMARC, entrambe le opzioni funzionano, perché è DMARC a stabilire cosa succede a un messaggio che non supera il controllo. ~all (softfail) è la scelta più sicura mentre stai ancora individuando tutti i servizi che inviano per tuo conto. Passa a -all quando i report DMARC non mostrano più errori per messaggi legittimi.
Perché il mio record supera il test completo, ma qui mostra più di dieci lookup?
Il server ricevente ha interrotto la valutazione al primo termine che corrispondeva al tuo server, quindi non ha eseguito i lookup restanti. Un altro server più avanti nell'elenco porterebbe la stessa valutazione oltre i dieci lookup, causando un errore.
Che cos'è un lookup nullo?
Una query DNS che non restituisce record o riguarda un nome inesistente. RFC 7208 consente due lookup di questo tipo in una valutazione; il terzo causa un permerror. La causa più comune sono gli include relativi a domini che non esistono più.
Un dominio può avere due record SPF?
No. RFC 7208 consente un solo record che inizia con v=spf1. Se ce ne sono due, ogni valutazione termina con permerror. Uniscili: mantieni un solo v=spf1, inserisci i termini include e ip4 di entrambi e termina con un solo all. v=spf1 include:_spf.google.com include:servers.mcsv.net ~all copre due provider in un unico record.
Guida completa: Multiple SPF records
Che cosa significa SPF permerror?
Errore permanente: il record non può essere valutato così come è pubblicato, quindi un nuovo tentativo produce lo stesso risultato. Le cause più comuni sono più di dieci lookup DNS, due record SPF sullo stesso dominio, un errore di sintassi e un terzo lookup nullo. DMARC considera un permerror come SPF non superato.
Guida completa: SPF permerror: too many DNS lookups
Cosa succede se non viene trovato alcun record SPF?
I destinatari ottengono il risultato none, che DMARC considera equivalente a un fail, e chiunque può inserire il tuo dominio come mittente della busta. Pubblica sul dominio stesso un record TXT che inizi con v=spf1, elenchi i servizi che inviano per te e termini con ~all o -all.