Een SPF record is een reeks tests met expliciete uitkomsten. Het verschil tussen een dubbele punt, een gelijkteken en een kwalificatie is van belang. Een syntactisch geldige wijziging kan ook veranderen wie geautoriseerd is, welke DNS afhankelijkheden worden bereikt of waar de verwerking stopt.
Gebruik RFC 7208 §4.6, RFC 7208 §5.2 En RFC 7208 §6 als grammatica- en evaluatiereferentie. Beschouw de onderstaande voorbeelden als synthetische armaturen, niet als platen die in productie moeten worden geplakt.
Scheid mechanismen van modifiers
Een mechanisme vraagt of een invoer overeenkomt: voorbeelden hiervan zijn ip4, ip6, a, mx, include, exist en all. Een kwalificatie die aan een matchingmechanisme is gekoppeld, bepaalt het resultaat: + geeft pass, - fail, ~ softfail en ? neutrale. Onder RFC 7208 §4.6.2Als de kwalificatie wordt weggelaten, wordt + geïmpliceerd.
Modificatoren gebruiken een gelijkteken. redirect=policy.example.com delegeert evaluatie wanneer geen enkel mechanisme overeenkomt. exp=explain.example.com identificeert verklarende tekst voor bepaalde mislukte resultaten. Het zijn geen aanvullende matchingmechanismen. Erkende modifiers hebben hun eigen regels; syntactisch geldige niet-herkende modificatoren worden genegeerd, terwijl een niet-herkend mechanisme een fout is.
Een record begint met v=spf1 en wordt gepubliceerd als DNS TXT record bij de geëvalueerde identiteit. Twee afzonderlijke SPF records bij dezelfde eigenaar zijn geen manier om afzenders te combineren; SPF recordselectie keert terug permerror onder RFC 7208 §4.5. Meerdere tekenreeksen tussen aanhalingstekens binnen één TXT record zijn een andere weergave en worden aaneengeschakeld zonder tussengevoegde spaties eronder RFC 7208 §3.3.
Teken een compleet voorbeeld
Ga uit van een geldige syntaxis, één SPF -record voor elke naam en een succesvolle DNS ophaalactie. Stel dat het beleid dat is v=spf1 ip4:192.0.2.20 include:service.example.net -all. Het inbegrepen beleid is v=spf1 ip4:198.51.100.10 -all.
Voor 192.0.2.20 komt het eerste mechanisme overeen en retourneert het. De include is niet nodig voor dat evaluatiepad. Voor 198.51.100.10 komt het eerste mechanisme niet overeen, de opgenomen beleidsretouren gaan door en de buitenste include komt overeen met de standaard + kwalificatie. Voor 203.0.113.7 mislukken de opgenomen beleidsretouren; dat zorgt ervoor dat alles niet overeenkomt, en het uiterlijke -all zorgt voor de uiteindelijke mislukking.
Deze tracering verklaart waarom include geen tekstvervanging is. Het meegeleverde -all wijst niet onmiddellijk alle adressen af die het beleid van de service hebben gemist. Het bovenliggende beleid wordt hervat na een niet-overeenkomend opnameresultaat.
Begrijp waar de verwerking stopt
Een matchingmechanisme maakt een einde aan de gewone mechanisme-evaluatie. Een fout uit een bereikte termijn kan ook het einde van de evaluatie betekenen. Het herschikken van termen kan daarom het resultaat of de afhankelijkheden die een ontvanger moet opvragen, veranderen.
Het all-mechanisme komt altijd overeen, dus termen erna kunnen geen aanvullende autorisatie bieden. A omleidingsmodificator wordt genegeerd wanneer ergens in de record een all-mechanisme aanwezig is. Schrijven -all redirect= policy.example.com creëert geen noodterugval.
Onder RFC 7208 §4.7Als er geen mechanisme overeenkomt en er geen omleiding is, is het standaardresultaat neutraal. Maak het beoogde einde expliciet, zodat een andere beheerder niet hoeft te concluderen of de weglating opzettelijk was.
Controleer het pad en het volledige record
Voordat u publiceert, valideert u de volledige syntaxis, en niet alleen het gedeelte dat naar verwachting overeenkomt met een bekend IP-adres. Een ongeldige polis kan niet worden veiliggesteld door uit te gaan van een gunstige vroege match. Evalueer vervolgens geautoriseerde IPv4 en IPv6 -invoer, een ongeautoriseerde invoer en afhankelijkheden die mislukken of geen SPF record retourneren.
De belangrijkste geëvalueerde limieten DNS -termen zijn onder meer a, mx, ptr, exist en redirect-termen, inclusief recursie. Het gaat niet om een telling van geciteerde TXT fragmenten. Houd een spoor bij waarin zowel het geselecteerde resultaat als de bereikte DNS voorwaarden worden weergegeven. Budget voor veranderingen in de afhankelijkheid van providers in plaats van een beleid te ontwerpen zonder speelruimte.
Breng een beoordeelbare wijziging aan
Schrijf het voorgestelde record naast het huidige record en leg het beoogde toestemmingsverschil in gewone taal uit. Behoud de eerdere waarde en TTL, controleer het resultaat bij gezaghebbende DNS en via een recursieve solver, en test vervolgens door representatief ontvangen berichten.
De acceptatievoorwaarde is niet simpelweg dat een parser de string accepteert. De beoogde afzenders moeten doorgaan voor de juiste identiteit, onbedoelde afzenders mogen geen toestemming krijgen en vereist zijn DMARC uitlijning intact moeten blijven.
De praktische afhaalmaaltijd
Lees elk SPF term per type, kwalificatie en positie. Een duidelijk evaluatiespoor maakt syntaxisbeoordeling tot een toestemmingsbeoordeling in plaats van tot een interpunctieoefening.
Houd de beslissing reproduceerbaar
In de armatuur met twee records gaat het lokale adres vóór opname door, het serviceadres gaat via de kinderpas en het niet-gerelateerde adres bereikt de uiteindelijke mislukking van de ouder. Als het kind in plaats daarvan geen SPF record heeft, retourneert de bereikte include permerror . Houd dat foutgeval gescheiden van het mislukte/niet-overeenkomende kind. Dit zijn analytische uitkomsten, geen uitgevoerde parser- of verifiertest.