Cos'è l'SPF flattening (e cosa non è)
L'appiattimento SPF sostituisce i meccanismi che costano una ricerca DNS (include:, a, mx, redirect, exists) con indirizzi IP letterali (ip4: / ip6:). Funziona sulla carta perché ip4, ip6 e all costano zero ricerche. Ma c'è un prezzo nascosto: l'appiattimento congela una delega viva in un'istantanea statica.
Attenzione a non confondere due cose diverse:
- Appiattimento statico : risolvi gli IP una volta e li pubblichi così come sono. Da quel momento il record non riflette più i cambiamenti dei provider.
- SPF dinamico (macro o hosted) : il record si aggiorna da solo e non accumula debito di obsolescenza.
Sono approcci distinti: non trattarli come la stessa cosa. Lo SPF Flattener di CaptainDNS produce un appiattimento statico, e te lo dice chiaramente.
Esempio, prima dell'appiattimento:
v=spf1 include:_spf.google.com include:sendgrid.net include:servers.mcsv.net mx ~all
Questo record consuma diverse ricerche DNS (Google da solo ne usa più di una).
Esempio, dopo l'appiattimento:
v=spf1 ip4:209.85.128.0/17 ip4:74.125.0.0/16 ip4:167.89.0.0/17 ip4:198.2.128.0/18 ip4:205.201.128.0/20 ~all
Il risultato consuma zero ricerche, ma è un'istantanea congelata: dal momento in cui un provider cambia un IP, il tuo record è già obsoleto.
Il limite di 10 ricerche DNS e il permerror
La RFC 7208 §4.6.4 impone un massimo di 10 ricerche DNS durante la valutazione SPF. Ecco il costo per meccanismo:
| Meccanismo | Costo in ricerche |
|---|---|
include: | 1 (più l'albero che risolve) |
a / mx | almeno 1 |
ptr | 1 (sconsigliato dalla RFC) |
exists | 1 |
redirect= | 1 (più ciò che risolve) |
ip4: / ip6: / all | 0 |
Quando superi i 10, scatta un permerror, ed è un doppio guaio. Da un lato la posta legittima può essere rifiutata o finire nello spam; dall'altro gli spoofer non sono più bloccati in modo affidabile, e l'allineamento DMARC salta per tutti i flussi. Un permerror non è un avviso minore: è una falla di sicurezza e di delivery insieme.
C'è un secondo limite, spesso dimenticato: oltre 2 void lookup (ricerche DNS che non restituiscono nulla) si ottiene comunque un permerror. La maggior parte dei checker non lo segnala; lo SPF Flattener conta le void lookup e te le mostra accanto al budget di ricerche.
Distingui anche due tipi di permerror diversi: quello da troppe ricerche e quello da errore di sintassi (o da SPF multipli sullo stesso dominio). L'appiattimento non corregge né la sintassi né i record duplicati. Lo strumento intercetta questi casi con il verdetto error e ti rimanda allo SPF Syntax Check o allo SPF Record Check. Per capire bene questo errore, vedi la guida SPF troppe ricerche DNS e la guida al permerror SPF.
Perché l'appiattimento è rischioso (cambio IP)
Il cuore del problema è il cambio degli IP (churn). Un appiattimento statico crea tre rischi:
- Falsi negativi : un nuovo IP legittimo del tuo provider non è nel record e l'SPF fallisce.
- Superficie di spoofing : un IP dismesso resta autorizzato e può essere sfruttato.
- Guasti intermittenti : fallimenti difficili da diagnosticare, perché il record sembra valido ma è sfasato rispetto alla realtà.
Due dati concreti, gli unici che asseriamo perché documentati:
- Caso Mailhardener : dopo un appiattimento, l'aggiunta di un IP di bilanciamento di carico da parte di un provider ha fatto fallire l'SPF su circa 1 messaggio su 20. Un caso reale, non una statistica generale.
- Telemetria AutoSPF : un include di terze parti cambia in media circa ogni 11,5 giorni, e gli obiettivi IPv6 cambiano circa 2,1 volte più spesso degli IPv4. Valori indicativi, secondo la telemetria di AutoSPF.
C'è anche una trappola di dimensione: l'appiattimento risolve il limite dei lookup ma peggiora quello della dimensione (255 caratteri per stringa, 512 byte UDP, circa 450-600 caratteri di limite pratico). Il record si gonfia di decine di blocchi ip4 e ip6.
Provider come Microsoft 365 / Exchange Online e Google Workspace pubblicano range di IP ampi e in continuo cambiamento: per questo un appiattimento statico dei loro range è fragile. Lo SPF Flattener assegna a ogni provider un badge di churn (basso, medio, alto): è una classificazione editoriale per orientarti, non una cadenza inventata.
Per misurare l'impatto sulla ricezione, vedi il punteggio di deliverability.
Le alternative da provare prima di appiattire
Questa è la parte importante. Le raccomandazioni dello strumento sono ordinate dal rischio più basso a quello più alto: prova nell'ordine.
- Sfoltire prima di tutto : rimuovi gli
include:inutilizzati o che non passano mai, elimina iptr(sconsigliati dalla RFC), togli gliaemxridondanti, deduplica. Spesso basta questo per rientrare sotto i 10 senza congelare alcun IP. Incrocia i dati con i report aggregati DMARC. - Delega a un sottodominio : un sottodominio dedicato per ogni flusso, ciascuno con un budget fresco di 10 ricerche. Non temere per il DMARC: con l'allineamento rilassato (
aspf=r) il flusso resta allineato e il DMARC non si rompe. - Macro SPF (RFC 7208 §7) : record dinamico, senza debito di obsolescenza; opzione avanzata. Vedi SPF flattening contro macro per la differenza.
- SPF hosted / CNAME auto-aggiornante : resta sempre aggiornato; in cambio, accetti onestamente il lock-in del fornitore e la perdita di controllo diretto sul DNS.
- Spostare la fiducia su DKIM e DMARC (con ARC e SRS) : è la chiave concettuale. L'appiattimento non risolve mai i fallimenti su inoltri e mailing list, perché l'SPF verifica l'IP che si connette, che cambia a ogni inoltro. La robustezza arriva dal DKIM (sopravvive ai relay) e dall'allineamento DMARC via DKIM, con ARC e SRS a coprire l'inoltro.
Quando appiattire è davvero giustificato
Il caso è stretto: hai già sfoltito, non puoi delegare né passare a una soluzione hosted, sei genuinamente oltre i 10 con mittenti tutti essenziali, e ti impegni a risincronizzare il record. Non è una correzione una tantum, è debito di manutenzione.
Anche allora, quando puoi preferisci il dinamico (macro o hosted) allo statico. Se appiatti staticamente: monitora di continuo con lo SPF Record Check e accetta il rischio di churn che hai appena letto. In una riga: un appiattimento statico una tantum è un debito, non una soluzione.
Come leggere il verdetto dello strumento
Lo SPF Flattener restituisce cinque verdetti chiari:
- ok : sei sotto il limite, non serve appiattire. Lascia il record com'è.
- at_risk : sei vicino al limite, monitora ed eventualmente sfoltisci.
- over_limit : permerror per troppe ricerche, correggi in via prioritaria.
- error : non si può appiattire finché non risolvi la sintassi o gli SPF multipli.
- missing : nessun SPF pubblicato, comincia col pubblicarne uno.
Accanto al verdetto trovi il budget di ricerche ("X / 10 ricerche", "V / 2 void"). Tienilo a mente: un verdetto verde significa lasciar stare il record.
Domande frequenti
D: Cos'è l'SPF flattening e mi serve davvero?
R: L'appiattimento sostituisce i meccanismi include:, a, mx e redirect con gli IP che risolvono. Ma la maggior parte dei record sotto i 10 lookup non ne ha bisogno. Se lo strumento mostra un verdetto verde, lascia il record com'è.
D: Come funziona il limite di 10 DNS lookup SPF (RFC 7208)?
R: La RFC 7208 §4.6.4 fissa un massimo di 10 ricerche. Ogni include, a, mx, ptr, exists e redirect conta; ip4, ip6 e all contano zero. Oltre i 10 è permerror. Esiste anche un limite separato: oltre 2 void lookup si ottiene comunque un permerror.
D: Come correggere l'errore "too many DNS lookups" o il permerror?
R: Non appiattire d'istinto. Sfoltisci prima gli include inutilizzati, rimuovi i ptr, deduplica: di solito basta a rientrare sotto i 10. Poi valuta la delega a un sottodominio. L'appiattimento viene per ultimo. Vedi la guida SPF troppe ricerche DNS.
D: L'appiattimento SPF è sicuro?
R: Comporta un rischio reale: un appiattimento statico congela gli IP dei provider. Un caso documentato (Mailhardener) racconta che l'aggiunta di un IP di bilanciamento ha fatto fallire l'SPF su circa 1 messaggio su 20. Secondo la telemetria di AutoSPF, un include di terze parti cambia in media circa ogni 11,5 giorni. Meglio preferire le opzioni dinamiche.
D: Quali sono le alternative all'appiattimento?
R: In ordine di rischio crescente: sfoltire, delega a sottodominio (con aspf=r), macro SPF, hosted/CNAME, e infine spostare la fiducia su DKIM e DMARC.
D: L'appiattimento rompe il DMARC o risolve i problemi di inoltro?
R: No. Non risolve i fallimenti su inoltri e mailing list, perché l'SPF verifica l'IP che si connette. La robustezza arriva dall'allineamento DKIM; la delega a un sottodominio con aspf=r mantiene intatto l'allineamento DMARC.
D: Appiattimento statico o SPF hosted/dinamico: che differenza c'è?
R: Lo statico è un'istantanea congelata che si degrada; il dinamico (macro o hosted) si aggiorna da solo. Non confonderli.
D: L'appiattimento ha risolto le ricerche ma ora il record è troppo lungo: perché?
R: Il limite di dimensione (255 caratteri per stringa, 512 byte UDP) è separato da quello dei lookup. Appiattendo scambi il problema dei lookup con quello della dimensione. Lo strumento suddivide automaticamente in sottodomini per restare sotto i limiti.
D: SPF Flattener, SPF Generator o SPF Checker: quale uso?
R: Lo SPF Checker diagnostica; lo SPF Generator costruisce un record nuovo; lo SPF Flattener è l'ottimizzatore consultivo di ultima risorsa.
Strumenti complementari
| Strumento | Utilità |
|---|---|
| SPF Record Check | Diagnostica l'SPF pubblicato e monitoralo dopo ogni modifica |
| SPF Syntax Check | Valida la sintassi SPF prima della pubblicazione |
| SPF Generator | Costruisci un record SPF nuovo con i tuoi provider |
| DMARC Record Check | Verifica l'allineamento DMARC dei tuoi flussi |
| DMARC Generator | Configura un record DMARC robusto |
| DKIM Record Check | Verifica la firma DKIM, la base della robustezza |
| Mail Tester | Convalida l'autenticazione end-to-end di un invio reale |
| Mail Domain Check | Audit completo dell'autenticazione email del dominio |
| IP Blacklist Check | Controlla la reputazione degli IP mittenti |
| Domain Blacklist Check | Controlla la reputazione del dominio |
Risorse utili
- RFC 7208 - Sender Policy Framework (SPF): fonte del limite di 10 ricerche, delle void lookup e delle macro
- RFC 4408 - SPF (versione precedente): versione storica della specifica SPF
- dmarcian - SPF Best Practices: l'autorità che ha concluso l'esperimento dell'appiattimento
- Mailhardener - Do not flatten your SPF record: il caso del fallimento su circa 1 messaggio su 20
- Google Workspace - Configurare e risolvere problemi SPF: guida per configurare e diagnosticare l'SPF con Google
- Microsoft 365 - Configurare e risolvere problemi SPF: guida per configurare e diagnosticare l'SPF con Microsoft