SPF flattener


Afin de répondre aux erreurs SPF : too many DNS lookups, Easter-eggs a développé un outil SPF Flattener publié sous licence GPL et mis à disposition sous la forme d’un paquet Debian dans le dépôt APT d’Easter-eggs.

Qu’est ce que le SPF

Le SPF ou Sender Policy Framework est un protocole RFC 7208 qui permet d’identifier les serveurs autorisés à envoyer des mails pour un domaine. Par exemple, définir les adresses IP 1.2.3.4 et 5.6.7.8 pour les autoriser à envoyer des mails pour le domaine masociete.com. L’information SPF se place dans un champ TXT de la zone DNS du domaine. Il est possible d’y placer :

  • des adresses IP,
  • des noms d’hôte
  • et des zones DNS pour y chercher d’autres enregistrements SPF.

La limite de la recherche SPF

Un serveur qui reçoit un mail effectue donc des requêtes DNS pour vérifier l’authenticité de l’expéditeur, il interroge ainsi le champ SPF de la zone DNS de l’expéditeur. La réponse du DNS peut inclure :

  • uniquement des adresses IP, dans ce cas une unique requête DNS est nécessaire,
  • des noms d’hôte, dans ce cas 2 requêtes DNS sont nécessaires (à minima),
  • ou encore des zones DNS dans lesquelles il y a un enregistrement SPF et dans ce cas plusieurs requêtes DNS sont nécessaires.

Ce dernier cas peut provoquer des requêtes récursives et afin d’éviter de trop charger le serveur de mail de destination, le protocole limite à 10 le nombre de requêtes de recherche SPF RFC 7208 section 4.6.4.

Augmenter le nombre de prestataires d’envoi d’email

Pour augmenter le nombre de prestataires d’envoi d’email, on peut utiliser la technique de l’aplatissement SPF ou SPF flattener. Cette technique consiste à simplifier le travail des serveurs mails des destinataires en résolvant pour eux les noms de l’enregistrement SPF. Un enregistrement SPF aplatit ne contient ainsi que des adresses IP et ne nécessite plus aucune "sur-résolution". Cela permet également :

  • un dédoublement d’adresse IP et une simplification CIDR,
  • l’exploitation complète d’enregistrements TXT DNS d’au maximum 255 caractères

De fait, la maîtrise de l’enregistrement SPF renvient à l’administrateur de la zone et non plus aux sous-traitants et on peut ainsi enregistrer une centaine d’adresses IP d’expéditeurs.

Mise à jour

Comme les adresses IP des prestataires d’envoi d’email peuvent évoluer au cours du temps, une tâche programmée (toutes les heures par exemple) réalise les résolutions de nom et met à jour les enregistrements SPF au besoin. Les modifications sont appliquées par script sur le serveur hébergeant la zone directement ou bien via API si l’hébergeur de la zone le permet.

Surveillance

Un bon enregistrement SPF étant le gage d’une bonne délivrabilité des courriels que l’on envoie, ce service exige une surveillance. Pour cela, une sonde de supervision spécifique a été développée afin de vérifier qu’à chaque instant le service est opérationnel et que l’enregistrement SPF est bien à jour. Par ailleurs, une alerte est émise lorsque la clé d’API d’accès à la zone DNS est en fin de vie.