SPF PermError: Too Many DNS Lookups - Wenn der SPF-Eintrag das 10-DNS-Lookup-Limit überschreitet

SPF SPF PermError Too Many DNS Lookups

SPF PermError: too many DNS lookups“ ist ein häufiger Fehler, der in vielen SPF-Implementierungen (Sender Policy Framework) auftritt. Wenn ein oft übersehenes SPF 10-DNS-Lookup-Limit überschritten wird, wird ein SPF PermError, auch bekannt als permanenter SPF-Fehler, zurückgegeben. SPF PermErrors können Ihre E-Mail-Zustellbarkeit beeinträchtigen.

Dieser Artikel erklärt, was das SPF 10-DNS-Lookup-Limit ist, welche Folgen es hat, wenn ein SPF-Eintrag damit in Konflikt gerät, und wie Sie dieses Problem mit Safe SPF von DMARCLY.

SPF PermError: too many DNS lookups

Wenn Sie SPF auf einer Domäne einrichten, treten manchmal dauerhafte SPF-Fehler auf wie „SPF PermError: too many DNS lookups“. Dies kann auf einem E-Mail-Server mit konformer SPF-Unterstützung oder von einem Online-SPF-Eintragsprüfer eingesehen werden.

Wie wird „SPF PermError: too many DNS lookups“ von DMARC interpretiert?

Wenn „SPF PermError: too many DNS lookups“ während einer SPF-Prüfung zurückgegeben wird, behandelt DMARC dies als fehlgeschlagen, da es sich um einen permanenten Fehler handelt, und alle permanenten SPF-Fehler werden von DMARC als fehlgeschlagen interpretiert.

Was ist das SPF-DNS-Lookup-Limit?

Gemäß dem offiziellen RFC-Spezifikationsdokument RFC7208:

SPF implementations MUST limit the number of mechanisms and modifiers that do DNS lookups to at most 10 per SPF check, including any lookups caused by the use of the "include" mechanism or the "redirect" modifier. If this number is exceeded during a check, a PermError MUST be returned. The "include", "a", "mx", "ptr", and "exists" mechanisms as well as the "redirect" modifier do count against this limit. The "all", "ip4", and "ip6" mechanisms do not require DNS lookups and therefore do not count against this limit.

Mit anderen Worten, die SPF-Spezifikation verlangt, dass die Anzahl der Mechanismen und Modifikatoren, die DNS-Lookups durchführen, 10 pro SPF-Prüfung nicht überschreiten darf, einschließlich aller Lookups, die durch die Verwendung des „include“-Mechanismus oder des „redirect“-Modifikators verursacht werden. Andernfalls wird ein SPF PermError, genauer gesagt „SPF PermError: too many DNS lookups“, zurückgegeben.

Dieses Limit wird auf der Seite des empfangenden E-Mail-Servers auferlegt. Hier sind einige beliebte SPF-Softwarepakete, die dieses Limit implementieren:

Warum das SPF-DNS-Lookup-Limit auferlegen?

Warum diese scheinbar künstliche Grenze? Nun, wie sich herausstellt, ist das 10-DNS-Lookup-Limit implementiert, um Denial-of-Service (DoS)-Angriffe zu vereiteln. Stellen Sie sich ein solches Szenario vor:

  • Ein böswilliger Benutzer erstellt einen SPF-Eintrag in der Domäne „malicious.com“ mit Verweisen auf eine andere Domäne „victim.com“.
  • Anschließend sendet er viele E-Mails von malicious.com an Postfächer, die von verschiedenen E-Mail-Dienstanbietern (ESP) mit implementiertem SPF gehostet werden;
  • Beim Empfang einer solchen E-Mail fragt der ESP den DNS nach victim.com ab;
  • da viele ESPs beteiligt sind, verstärken sie diesen Verkehr; dies wird effektiv zu einem DoS-Angriff auf victim.com;
  • Darüber hinaus ist die wahre Quelle des Angriffs verborgen.

Wie Sie sehen können, kann ein ziemlich unschuldiger E-Mail-Authentifizierungsmechanismus für böswillige Zwecke ausgenutzt werden, wenn nicht darauf geachtet wurde! Während die Folgen schwerwiegend sein können, ist die Lösung für dieses Problem einfach: Durch eine Begrenzung der maximalen Anzahl von DNS-Lookups pro Überprüfung auf der ESP-Seite kann dies drastisch abgemildert werden, da die Verstärkung auf 10 begrenzt ist, anstatt potenziell viel größer zu sein.

Überschreitet mein SPF-Eintrag das SPF-DNS-Lookup-Limit?

Sie können unser SPF-Record-Lookup-Tool verwenden, um die Anzahl Ihrer SPF-DNS-Lookups zu überprüfen. Neben den grundlegenden Informationen über Ihre SPF-Einrichtung auf Ihrer Domain zeigt es auch die Anzahl der DNS-Abfragemechanismen/Modifikatoren. Hier ist das Ergebnis einer SPF-Prüfung auf microsoft.com, die genau einen SPF-DNS-Lookup-Zähler von 10 hat:

DMARCLY SPF zeichnet DNS-Abfragen auf

Ich schlage vor, dass Sie eine ähnliche Überprüfung Ihrer Domain durchführen und sehen, wie die Nummer aussieht.

Was passiert, wenn das SPF-DNS-Lookup-Limit überschritten wird?

Wenn die SPF-Implementierung auf dem empfangenden E-Mail-Server auf mehr als 10 DNS-Abfragemechanismen/-modifizierer im SPF-Eintrag der Absenderdomäne trifft, gibt sie „SPF PermError: too many DNS lookups“ zurück. Wie oben erwähnt, wird ein SPF PermError von DMARC als Fehlschlag interpretiert und folglich landet die E-Mail je nach Einstellung des E-Mail-Servers möglicherweise nicht im Posteingang.

Daher ist es am besten, die DNS-Abfragemechanismen/Modifikatoren in Ihrem SPF-Eintrag <= 10 zu belassen.

Aber ich kann nicht. Ich habe so viel Zeug in meinem SPF-Eintrag!

Ich verstehe – heutzutage lagert fast jedes Unternehmen wichtige Dienste an Drittanbieter aus, wie E-Mail-Zustellung, Marketing und mehr. Das Einfügen eines include für jeden der Dienste im Datensatz zählt 1 gegen das Limit. Und wenn sie außerdem DNS-Abfragemechanismen/Modifikatoren enthalten, erreicht/überschreitet sie ziemlich schnell die Grenze.

Während viele E-Mail-Dienstanbieter wie Gmail standardmäßig nicht authentifizierte E-Mails an Spam senden, geht Microsoft Office 365 noch einen Schritt weiter: Sie blockieren E-Mail-Absenderdomänen automatisch, wenn die E-Mail-Authentifizierung, einschließlich der SPF-Authentifizierung, fehlschlägt.

The Antispam policy allows administrators to “Allow” domains regardless of the reputation of the domain. We’re changing our policies to not honor Allow rules when the domain fails authentication.

— Microsoft Office 365, April 2020

Weitere Informationen hierzu finden Sie in der roadmap von Microsoft Office 365.

SPF record flattening

Es gibt jedoch eine einfache Lösung für dieses Problem. Durch "flattening" eines SPF-Eintrags kann man die Anzahl der DNS-Abfragemechanismen/Modifikatoren reduzieren, so dass sie kleiner als 10 ist.

So funktioniert „SPF record flattening“: Fragen Sie für jeden der DNS-Abfragemechanismen/Modifikatoren den DNS ab, um die IP-Adressen zu erhalten, und ersetzen Sie dann den ursprünglichen Mechanismus/Modifikator durch die IP-Adressen. Jedes Mal, wenn ein Mechanismus oder ein Modifikator ersetzt wird, wird die Gesamtanzahl der DNS-Lookups um 1 verringert.

Mit dieser SPF-Record-Flattening-Technik können Sie einen sehr komplexen SPF-Record, der weit über 10 DNS-Abfragemechanismen/Modifikatoren enthält, in eine „flache“ IP-Adressliste umwandeln und bequem in der „sicheren Zone“ bleiben.

Werfen wir einen Blick darauf, wie ein abgeflachter SPF-Eintrag aussieht. Hier sind die IP-Adressen durch Abflachen des SPF-Eintrags auf microsoft.com:

DMARCLY abgeflachter SPF-Eintrag

Wie Sie sehen können, enthält dieser abgeflachte SPF-Eintrag dieselben IP-Adressen wie die im ursprünglichen SPF-Eintrag auf microsoft.com, und doch hat er selbst keinen DNS-Abfragemechanismus/Modifizierer!

Problem gelöst? Nun, noch nicht ganz.

Was passiert, wenn die IP-Adressen, die einem der Include-Mechanismen zugrunde liegen, geändert werden? Das bedeutet, dass der abgeflachte SPF-Eintrag jetzt auf diesen IP-Adressen nicht mehr synchronisiert ist, was zu falschen Ergebnissen bei der SPF-Authentifizierung führt.

Natürlich können Sie den SPF-Eintrag auch wieder manuell glätten und im DNS aktualisieren. Unnötig zu erwähnen, dass dies schrecklich mühsam und fehleranfällig ist, ganz zu schweigen davon, dass Sie es die ganze Zeit überwachen müssen.

Die gute Nachricht ist, dass DMARCLY eine Funktion namens „Safe SPF“ hat, die genau dafür entwickelt wurde, Ihren Verstand zu retten.

Safe SPF zur Rettung

Schlagen Sie mit Safe SPF zwei Fliegen mit einer Klappe: Halten Sie die DNS-Abfragemechanismen/Modifikatoren Ihres SPF-Eintrags immer unter 10, ohne sich Gedanken darüber machen zu müssen, den SPF-Eintrag manuell zu glätten und überhaupt im DNS zu aktualisieren!

Führen Sie die folgenden Schritte aus, um Safe SPF auf Ihrer Domain einzurichten:

  1. Safe SPF-Eintrag generieren

    Wählen Sie in Dashboard->DNS Records->Safe SPF die Domain aus, auf der Sie Safe SPF einrichten möchten, und klicken Sie dann auf die Schaltfläche Generate Safe SPF Record, wie unten gezeigt:

    Safe SPF record generieren

  2. Veröffentlichen Sie den Safe SPF-Eintrag

    Nachdem der Safe SPF-Eintrag generiert wurde, müssen Sie ihn auf Ihrer Domain im DNS veröffentlichen. Veröffentlichen Sie es wie einen normalen SPF-Eintrag. Denken Sie daran: Ein Safe SPF-Eintrag ist ein SPF-Eintrag.

    Hier ist how to publish an SPF record.

  3. Überprüfen Sie den Safe SPF-Eintrag

    Als Nächstes müssen Sie überprüfen, ob der Safe SPF-Eintrag korrekt veröffentlicht wurde und für alle zugänglich ist. Klicken Sie jetzt auf die Schaltfläche Verify Safe SPF:

    Überprüfen Sie den SPF

  4. Safe SPF speichern

    Schließlich müssen Sie Safe SPF speichern, damit Ihr SPF-Eintrag immer auf dem neuesten Stand ist:

    Safe SPF speichern

    So sieht es aus:

    DMARCLY Safe SPF

    Wie oben zu sehen ist, ist Safe SPF auf der angegebenen Domain aktiviert.

Sobald Safe SPF auf einer Domain aktiviert ist:

  • der Safe SPF-Eintrag enthält dieselben IP-Adressen wie die im ursprünglichen SPF-Eintrag;
  • der Safe SPF-Eintrag hat nicht mehr DNS-Abfragemechanismen/Modifikatoren als 10;
  • es wird immer aktualisiert, wenn sich die zugrunde liegenden IP-Adressen ändern;
  • es gibt keine Wartung auf Ihrer Seite.

So aktualisieren Sie einen vorhandenen Safe SPF-Eintrag (Methode 1)

Nachdem Sie einen Safe SPF-Eintrag generiert/veröffentlicht haben, möchten Sie den ursprünglichen SPF-Eintrag möglicherweise zu einem späteren Zeitpunkt aktualisieren.

Zum Beispiel möchten Sie vielleicht:

  1. einen neuen Mechanismus (include, ip4, mx, a usw.) zum SPF-Eintrag hinzufügen;
  2. einen bestehenden Mechanismus im SPF-Eintrag aktualisieren;
  3. entfernen Sie einen vorhandenen Mechanismus aus dem SPF-Eintrag.

Zu diesem Zweck können Sie denselben Safe SPF-Prozess im letzten Abschnitt verwenden. Beachten Sie hier, dass Sie Ihren ursprünglichen SPF-Eintrag mit den beabsichtigten Änderungen aktualisieren müssen, bevor Sie ihn in den Safe SPF-Prozess einbinden.

Lassen Sie uns durch ein praktisches Beispiel gehen, um genau zu zeigen, wie das geht.

Angenommen, Ihre Domain lautet: yourdomain.com, und der ursprüngliche SPF-Eintrag auf der Domain sah folgendermaßen aus:

v=spf1 mx include:someservice.com -all

Sie haben in der Vergangenheit einen Safe SPF-Eintrag dafür erstellt:

v=spf1 include:_u.yourdomain.com._spf.dmarcly.com -all

und Ihre Organisation plant, einen neuen E-Mail-Dienst namens anotherservice zu integrieren. Jetzt müssen Sie es in Ihren SPF-Eintrag aufnehmen, damit die von den Hosts dieses Dienstes gesendeten E-Mails die SPF-Authentifizierung bestehen.

Nehmen wir an, das SPF-Include von anotherservice ist:

include:anotherservice.com

sie müssen Ihren ursprünglichen SPF-Eintrag aktualisieren, um diesen Dienst einzuschließen, sodass er folgendermaßen aussieht:

v=spf1 mx include:someservice.com include:anotherservice.com -all

Als nächstes müssen Sie den gesamten Safe SPF-Prozess mit dem aktualisierten ursprünglichen SPF-Eintrag durchlaufen:

v=spf1 mx include:someservice.com include:anotherservice.com -all

Verwenden Sie insbesondere den obigen Wert für das Feld Ursprünglicher SPF-Eintrag im Schritt „Generate Safe SPF record“ im Abschnitt „Safe SPF to the rescue“. Gehen Sie dann alle verbleibenden Schritte im Safe SPF-Prozess durch.

Sobald Sie fertig sind, enthält Ihr neuer Safe SPF-Eintrag auf yourdomain.com zusätzlich zu den vorhandenen IP-Adressen alle IP-Adressen in include:anotherservice.com. Und wenn es eine zugrunde liegende Änderung in include:anotherservice.com gibt, wird Ihr Safe SPF-Eintrag diese automatisch übernehmen.

Dieser Ansatz gilt für alle Szenarien, einschließlich Hinzufügen, Ersetzen und Entfernen.

Wenn Sie beispielsweise someservice.com in Ihrem SPF-Eintrag durch anotherservice.com ersetzen möchten, aktualisieren Sie ihn einfach auf:

v=spf1 mx include:anotherservice.com -all

führen Sie es dann durch den gesamten Safe SPF-Prozess.

In einem anderen Beispiel, in dem Sie den mx-Mechanismus aus dem SPF-Eintrag entfernen möchten, aktualisieren Sie ihn einfach auf:

v=spf1 include:someservice.com -all

führen Sie es dann durch den gesamten Safe SPF-Prozess.

So aktualisieren Sie einen vorhandenen Safe SPF-Eintrag (Methode 2)

Eine andere Möglichkeit, Ihren vorhandenen Safe-SPF-Eintrag zu aktualisieren, besteht darin, den neuen Mechanismus direkt zu Ihrem veröffentlichten Safe-SPF-Eintrag hinzuzufügen.

Beachten Sie, dass dieser Ansatz nur für das Hinzufügen eines zusätzlichen Mechanismus gilt, anstatt einen vorhandenen zu ersetzen oder zu entfernen. Wenn Sie einen vorhandenen Mechanismus ersetzen oder entfernen möchten, verwenden Sie bitte die oben beschriebene Methode 1.

Angenommen, Sie haben einen Safe SPF-Eintrag auf Ihrer Domain veröffentlicht:

v=spf1 include:_u.yourdomain.com._spf.dmarcly.com -all

Dieser Datensatz enthält alle IP-Adressen, die sich aus allen Mechanismen in Ihrem ursprünglichen SPF-Datensatz ergeben.

Dann müssen Sie einen neuen Dienst include:newservice.com hinzufügen, Sie können einfach den SPF-Eintrag auf Ihrer Domain aktualisieren auf:

v=spf1 include:_u.yourdomain.com._spf.dmarcly.com include:newservice.com -all

Jetzt enthält der SPF-Eintrag auf Ihrer Domain alle IP-Adressen, die sich aus allen Mechanismen in Ihrem ursprünglichen SPF-Eintrag sowie denen in newservice.com ergeben. Mit anderen Worten, die von den Hosts von newservice gesendeten E-Mails bestehen die SPF-Authentifizierung.

Partial Safe SPF

Wenn einige der externen Includes in Ihrem SPF-Eintrag nicht reduziert werden können, z. B. erfordert Office 365 include:spf.protection.outlook.com im SPF-Eintrag der obersten Ebene, können Sie das Problem teilweise mit Safe SPF lösen.

Im Grunde ist es nichts anderes, als den nicht reduzierbaren SPF-Einschluss wegzulassen, den Rest Ihres ursprünglichen SPF-Eintrags durch Safe SPF laufen zu lassen und dann diesen SPF-Einschluss zusammen mit dem generierten Safe SPF-Eintrag hinzuzufügen, während der SPF-Eintrag auf Ihrer Domain veröffentlicht wird.

Erfahren Sie mehr über partial Safe SPF.

Vorheriger Beitrag Nächster Beitrag

 Protect Business Email & Improve Email Deliverability

Get a 14 day trial. No credit card required.

Create Account