Sintaxis del registro SPF

Hemos desarrollado esta guía completa para aumentar su SPF comprender y ayudar a solucionar problemas que nuestra aplicación podría haber llamado su atención. Tener una validez y precisión SPF el registro conducirá a una mejor cobertura de autenticación, capacidad de entrega y ayudará a promover el nivel de seguridad deseado para sus dominios.

¿No tiene una cuenta en dmarcian? Igual puede consultar el contenido de su registro SPF usando nuestra herramienta de diagnóstico SPF.

Cree una cuenta gratuita ahora para tener dmarcian controla tu SPF, DKIM y DMARC Registros para usted automáticamente. Obtenga visibilidad instantánea de errores de entrega, phishing e intentos de suplantación con dmarcian'S Plataforma SaaS.

Use el menú de navegación que se encuentra justo debajo para saltar al elemento particular de su registro SPF en cuestión. Puede encontrar información adicional sobre SPF en los artículos enlazados al final de este documento.

Mecanismos

Los mecanismos se pueden usar para describir el conjunto de hosts que se designan como remitentes de correo salientes para el dominio y se pueden ser precedidos por uno de los cuatro calificadores siguientes:

+ (Pasar)
- (Fallar)
~ (SoftFail)
? (Neutral)

Si un mecanismo produce un acierto, se utiliza su valor calificador. El calificador predeterminado es "+", Es decir," Pase ". Los mecanismos se evalúan en orden. Si no coincide ningún mecanismo o modificador, el resultado predeterminado es "Neutral".

Más información detallada sobre las diferencias entre "~" y "-" se puede encontrar aquí

Ejemplos:

“v=spf1 -all”

“v=spf1 a -all”

“v=spf1 a mx -all”

“v=spf1 +a +mx -all”

Si un dominio no tiene SPF registro en absoluto, el resultado es "Ninguno". Si un dominio tiene un error temporal durante el procesamiento de DNS, obtiene el resultado "TempError" (llamado "error" en borradores anteriores). Si se produce un error de sintaxis o evaluación (por ejemplo, el dominio especifica un mecanismo no reconocido), el resultado es "PermError" (anteriormente "desconocido").

La evaluación de un registro SPF puede devolver los siguientes resultados:

Resultado Explicación Acción prevista
Pass (Pasar) El registro de SPF designa al host como autorizado a enviar aceptar
Fail (Fallar) El registro del SPF ha designado al host como NO autorizado a enviar rechazar
SoftFail El registro SPF ha designado al host como NO autorizado a enviar, pero en transición aceptar pero marcar
Neutral El registro de SPF especifica explícitamente que no se puede decir nada sobre la validez aceptar
None (ninguna) El dominio no tiene un registro SPF o el registro SPF no evalúa a un resultado aceptar
PermError Se ha producido un error permanente (por ejemplo, un registro SPF mal formateado) sin especificar
TempError Se ha producido un error transitorio aceptar o rechazar

El mecanismo "all"

all

Este mecanismo siempre coincide. Siempre debe ir al final del registro SPF.

Ejemplos:

"V = spf1 mx ~ todos"
Permite que los MX del dominio envíen correo para el dominio, prohíbe todos los demás.

"V = spf1 ~ todos"
El dominio no envía correo alguno.

"V = spf1 + all"
El dominio permite que todas las direcciones IP en Internet envíen correo. Aunque «válido», no es recomendable.

El mecanismo "ip4"

ip4:<ip4-address>
ip4: <ip4-network> / <prefix-length>

El argumento del mecanismo "ipXNUMX:" es un rango de red IPvXNUMX. Si no se indica una longitud de prefijo, se asume / XNUMX (señalando una dirección de host individual). Hay que tener cuidado de incluir una longitud de prefijo mayor que / XNUMX, ya que la entrega a receptores más pequeños podria verse afectada.

Ejemplos:

"V = spf1 ip4: 192.168.0.1/16 ~ todos"
Permite cualquier dirección IP entre 192.168.0.1 y 192.168.255.255.

El mecanismo "ip6"

ip6:<ip6-address>
ip6: <ip6-network> / <prefix-length>

El argumento del mecanismo "ipXNUMX:" es un rango de red IPvXNUMX. Si no se indica una longitud de prefijo, se asume / XNUMX (señalando una dirección de host individual).

Ejemplos:

“v=spf1 ip6:1080::8:800:200C:417A/96 ~all”
Permite cualquier dirección IPv6 entre 1080 :: 8: 800: 0000: 0000 y 1080 :: 8: 800: FFFF: FFFF.

“v=spf1 ip6:1080::8:800:68.0.3.1/96 ~all”
Permite cualquier dirección IPv6 entre 1080 :: 8: 800: 0000: 0000 y 1080 :: 8: 800: FFFF: FFFF.

El mecanismo "a"

a
a/<prefix-length>
a:<domain>
a:<domain>/<prefix-length>

Se examinan todos los registros A para el dominio . Si el IP del cliente se encuentra entre ellos, este mecanismo coincide. Si la conexión se realiza a través de IPv6, entonces se realiza una búsqueda de AAAA en su lugar.

If dominio , se utiliza el dominio actual .

Los registros A tienen que coincidir exactamente con la dirección IP del cliente, a menos que se indique una longitud de prefijo, en cuyo caso cada dirección IP devuelta por la búsqueda A se ampliará a su correspondiente prefijo CIDR, y se buscará la IP del cliente dentro de esa subred.

Ejemplos:

"V = spf1 a ~ todos"
Se utiliza el dominio actual.

"V = spf1 a: example.com ~ all"
Equivalente si el dominio actual es example.com.

"V = spf1 a: mailers.example.com ~ all"
Quizás example.com ha elegido enumerar explícitamente todos los envíos de correo salientes en un registro A especial en mailers.example.com.

"V = spf1 a / 24 a: offsite.example.com/24 ~ all"
Si example.com se resuelve en 192.0.2.1, se buscará la IP del cliente en toda la clase C de 192.0.2.0 / 24. Del mismo modo para offsite.example.com. Si se devolviera más de un registro A, cada uno se expandiría a una subred CIDR.

El mecanismo "mx"

mx
mx/<prefix-length>
mx:<domain>
mx:<domain>/<prefix-length>

Se examinan todos los registros A de todos los registros MX del dominio en orden de prioridad MX. Si la IP del cliente se encuentra entre ellos, este mecanismo coincide.

If dominio , se utiliza el dominio actual .

Los registros A tienen que coincidir exactamente con la IP del cliente, a menos que se proporcione una longitud de prefijo, en cuyo caso cada dirección IP devuelta por la búsqueda de A se ampliará a su correspondiente prefijo CIDR, y se buscará la IP del cliente dentro de esa subred.

Ejemplos:

"V = spf1 mx mx: deferrals.domain.com ~ all"
Tal vez un dominio envía correo a través de sus servidores MX más otro conjunto de servidores cuyo trabajo es reintentar el correo para diferir los dominios.

"V = spf1 mx / 24 mx: offsite.domain.com/24 ~ all"
Tal vez los servidores MX de un dominio reciben el correo en una dirección IP, pero envían el correo en una dirección IP diferente pero cercana.

El mecanismo "ptr"

ptr
ptr:<domain>

El nombre o los nombres de host para la IP del cliente se buscan mediante consultas PTR. A continuación, se validan los nombres de host: al menos uno de los registros A de un nombre de host PTR debe coincidir con la IP original del cliente. Los nombres de host no válidos se descartan. Si un nombre de host válido termina en dominio, este mecanismo coincide.

Si no se especifica el dominio, se utiliza el dominio actual.

Si es posible, debe evitar usar este mecanismo en su SPF registro, ya que dará como resultado una mayor cantidad de costosas búsquedas de DNS.

Ejemplos:

"V = spf1 ptr ~ todos"
Un dominio que controla directamente todas sus máquinas (a diferencia de un ISP de acceso telefónico o de banda ancha) permite que todos sus servidores envíen correo. Hotmail.com o paypal.com podrían hacer esto, por dar dos ejemplos.

"V = spf1 ptr: otherdomain.com ~ all"
Se designa cualquier servidor cuyo nombre de host termine en otherdomain.com.

El mecanismo "exists"

existe: <dominio>

Realice una consulta A en el dominio proporcionado. Si se encuentra un resultado, esto constituye un resultado positivo. No importa cuál sea el resultado de la búsqueda, podría ser 127.0.0.2.

Cuando se utilizan macros con este mecanismo, se pueden realizar búsquedas de IP inversa al estilo RBL o configurar excepciones por usuario.

Ejemplos:

En el siguiente ejemplo, la IP del cliente es 1.2.3.4 y el dominio actual es example.com.

"V = spf1 existe: ejemplo.com ~ todos"

Si example.com no da ningun resultado, se considera un fallo. Si da algun resultado, este mecanismo da un resultado positivo .

El mecanismo "include"

include:<domain>

Se busca una coincidencia en el dominio especificado. Si la búsqueda no devuelve una coincidencia o un error, el procesamiento pasa a la siguiente directiva. Advertencia: si el dominio no tiene un registro SPF válido, el resultado es un error permanente. Algunos receptores de correo electrónico rechazarán en función de un PermError.

Ejemplos:

En el siguiente ejemplo, la IP del cliente es 1.2.3.4 y el dominio actual es example.com.

"V = spf1 incluye: ejemplo.com ~ todos"

Si example.com no tiene un registro SPF, el resultado es PermError.
Supongamos que el registro SPF de example.com fuera "V = spf1 a ~ todos".
Busque el registro A para example.com. Si coincide con 1.2.3.4, devuelve Pass (Pasar).
Si no hay coincidencia, aparte del "~ todos" del dominio incluido, la inclusión en su conjunto no coincide; el resultado final sigue siendo Fallo de la directiva externa establecida en este ejemplo

Relaciones de confianza : El mecanismo "include" está destinado a cruzar los límites administrativos. Hay que tener mucho cuidado para garantizar que los mecanismos "include" no pongan en peligro a los dominios dando resultados de SPF positivos a mensajes que resulten de la falsificación por parte de usuarios cruzados. A menos que existan mecanismos técnicos en el otro dominio especificado para evitar la falsificación por parte de usuarios cruzados, los mecanismos "include" deben dar un resultado neutro en lugar de "pass" (pasar/ aproabar). Esto se hace añadiendo "?" delante de "include".

El ejemplo sería entonces:

"V = spf1? Include: example.com ~ all"

Modificadores

Los modificadores son opcionales. Un modificador puede aparecer solo una vez por registro. Los modificadores desconocidos se ignoran.

El modificador "redirect"

redirect = <dominio>

El registro de SPF para el dominio reemplaza el registro actual. El macro expandido dominio macro expandido también sustituye al dominio actual en esas búsquedas.

Si se utiliza un modificador "redirect", el registro SPF no debe incluir el mecanismo "all". Si ambos están presentes, el modificador "redirect" es ignorado. Cualquier otro modificador "redirect" que no sea el primero será ignorado.

Ejemplos:

En el siguiente ejemplo, la IP del cliente es 1.2.3.4 y el dominio actual es example.com.

"V = spf1 redirect = example.com"

Si example.com no tiene un registro SPF, eso es un error; el resultado es desconocido.
Supongamos que el registro SPF de example.com fuera "V = spf1 a ~ todos".
Busque el registro A para example.com. Si coincide con 1.2.3.4, devuelve Pass (Pasar).
Si no hay coincidencia, el ejecutivo no puede coincidir y se utiliza el valor ~ all.

El modificador "exp"

exp = <dominio>

Si un receptor SMTP rechaza un mensaje, puede incluir una explicación. Un editor de SPF puede especificar la cadena de explicación que ven los remitentes. De esta manera, un proveedor de servicios Internet puede dirigir a los usuarios no conformes a una página web que proporciona más instrucciones sobre cómo configurar SASL.

El dominio se expande; Se realiza una búsqueda TXT. El resultado de la consulta TXT se macroexpande y se muestra al remitente. Se pueden usar otras macros para proporcionar una explicación personalizada.

El modificador exp solo puede contener caracteres ASCII imprimibles.

¿Demasiadas búsquedas?

En la última década, se ha vuelto cada vez más fácil enviar correos electrónicos. Incontable fuentes han ingresado al mercado, cada uno de los cuales proporciona un conjunto de herramientas especializadas para satisfacer las necesidades modernas de los vendedores, desarrolladores y pequeñas empresas. Junto con esta expansión, la autenticación de correo electrónico, específicamente SPF, se ha convertido en un asunto cada vez más complejo de navegar.

Dentro de la Especificación RFC de SPF (esencialmente ley de internet) existe un límite práctico de cuántos "mecanismos de consulta DNS" un solo SPF registro puede contener Ese límite es diez. La búsqueda máxima de diez establece que un administrador de dominio (¡ese es usted!) No requerirá que personas como Gmail u otros receptores realicen más de diez búsquedas DNS consecutivas para ver si autoriza a una dirección IP particular a enviar correo en su nombre.

Como se ha convertido en algo común para cualquier organización autorizar una gran cantidad de bloques de red dispares (debido a la naturaleza externalizada de la infraestructura de correo electrónico), queda lo que parece la invasión constante e innecesaria en la búsqueda máxima de diez. Sin embargo, este límite sigue siendo absolutamente práctico y debe ser respetado para garantizar una entrega puntual y tasas de entrada favorables. Además, la solución para evitar el límite se aborda directamente en otras prácticas óptimas de correo electrónico, que desde hace mucho tiempo han sido fomentadas por los principales receptores de correo entrante, como Gmail y Yahoo.

La solución más práctica para evitar el problema de 'demasiadas búsquedas' es utilizar subdominios. Como cada subdominio discreto tiene su propio máximo de diez búsquedas, SPF es efectivamente ilimitado Ejemplo: a hello.com se le permiten diez búsquedas y a sub.hello.com también. En pocas palabras, nunca debe ejecutar la condición de búsqueda máxima de diez si está segmentando correctamente diferentes flujos de correo (por ejemplo, transaccional, corporativo, marketing, etc.) en un espacio de nombre discreto.

En la subsección «Solucionar problemas de entrega de correo» del Sitio de ayuda de Gmail se recomienda:

  • Utilizar direcciones de correo electrónico separadas
  • Enviar correo desde diferentes dominios y / o direcciones IP

En resumen, no debe ejecutar el máximo de 10 búsquedas. Si lo hace, describimos algunas estrategias adicionales y materiales de base de conocimiento sobre cómo navegar.

Lectura adicional:

- Video: Cómo SPF funciona
- Lectura adicional sobre 'demasiadas búsquedas'
- Conceptos erróneos comunes sobre SPF
- SPF Herramienta de agrimensor
- ¿Cuál es la diferencia entre ~all y -all en SPF?

¿Desea continuar la conversación? Diríjase al foro de dmarcian Foro