DNS lookup limitini harcamayan en performanslı yöntemdir.
SPF protokolünde güvenlik ve performans gerekçesiyle bir kaydın çözümlenmesi sırasında en fazla 10 DNS sorgusu (A, MX, Include, Exists, PTR, Redirect) yapılabilir. Bu limit aşıldığında alıcı sunucu PermError döndürür ve SPF doğrulaması başarısız sayılır.
include mekanizması yerine doğrudan IP adreslerini (ip4:1.2.3.4) yazmak, sorgu sayısını sıfıra indirir. Buna "Flattening" denir. Büyük ölçekli altyapılarda DNS limitine takılmamak için zorunludur.
SPF içinde dinamik değişkenler kullanılabilir. Örneğin: exists:%{i}._spf.%{d} kaydı, her IP için ayrı bir DNS kontrolü yapılmasını sağlar. Bu yöntem, devasa IP bloklarını yönetmek için kullanılır.
RFC 7208 Global E-Posta Güvenlik Standartları
SPF (Sender Policy Framework), bir alan adının e-posta gönderim yetkilerini DNS üzerinden ilan etmesini sağlayan bir **kimlik doğrulama katmanıdır**.
Örnek Kayıt: v=spf1 a mx include:_spf.google.com ~all
RFC 7208 standartlarına göre, bir SPF kaydı çözümlenirken yapılan **DNS sorgu sayısı 10'u aşamaz**.
| Sorgu Saydıranlar (+1) | Sorgu Saydırmayanlar (0) |
|---|---|
| a, mx, include, ptr, exists, redirect | ip4, ip6, all, exp |
Flattening Çözümü: Limit aşılıyorsa, include yerine doğrudan IP blokları (ip4) kullanılarak kayıt "düzleştirilir".
SPF kaydının sonundaki all ifadesi, listede olmayan kaynaklara ne yapılacağını söyler:
Makrolar, SPF kaydını dinamik hale getirir. Özellikle ISP'ler ve devasa altyapılar için kullanılır.
Örn: exists:%{i}._spf.doz.com kaydı her sorguyu gönderen IP'ye göre özelleştirir.