Configurar el DNS inverso de tu propio servidor de correo

«550 5.7.25 … does not have a PTR record»: quien gestiona su propio servidor de correo tropieza tarde o temprano con el DNS inverso. Configurarlo lleva cinco minutos si sabes dónde.

Por qué importa tanto el DNS inverso

Los servidores receptores consultan el nombre (registro PTR) de cada IP que entrega correo y comprueban que ese nombre apunta a la misma IP. Se llama forward-confirmed reverse DNS (FCrDNS). Sin ello, el correo acaba en spam o se rechaza directamente. Google y Yahoo lo exigen expresamente desde 2024. Mensajes de error típicos:

550-5.7.25 [203.0.113.10] The IP address sending this message does not have a
550-5.7.25 PTR record setup, or the corresponding forward DNS entry does not
550 5.7.25 point to the sending IP.

450 4.7.1 Client host rejected: cannot find your reverse hostname, [203.0.113.10]

Dónde se configura el PTR

El PTR no pertenece a tu dominio sino a la dirección IP. Solo puede configurarlo quien posee la IP: tu proveedor de alojamiento o de acceso. Por eso no lo encontrarás en la gestión DNS de tu dominio.

Paso a paso

  1. Elegir un nombre, p. ej. mail.example.com.
  2. Registro A (y AAAA para IPv6) en tu zona: mail.example.com → 203.0.113.10.
  3. PTR en el proveedor: 203.0.113.10 → mail.example.com.
  4. Nombre HELO del servidor de correo con el mismo nombre. Postfix: myhostname = mail.example.com en main.cf. Exchange: FQDN en el conector de envío.
  5. Comprobar SPF: la IP debe estar en el SPF del dominio remitente, p. ej. con mx o ip4:203.0.113.10.

El PTR no tiene que coincidir con el dominio remitente. Un servidor mail.example.com puede enviar sin problema correo de otro-dominio.es. Lo importante es que PTR, registro A y HELO coincidan entre sí.

La trampa de IPv6

Si tu servidor tiene IPv6, Postfix entrega a menudo a Gmail y compañía por IPv6. Entonces la dirección IPv6 también necesita un PTR y un AAAA coincidente. Si no puedes configurarlo, desactiva el envío por IPv6:

# Postfix main.cf
inet_protocols = ipv4
# o permitir IPv6 pero preferir IPv4:
smtp_address_preference = ipv4

Comprobar

# PTR de la IP
dig -x 203.0.113.10 +short
# ¿apunta el nombre a la IP?
dig +short A mail.example.com
# Windows
nslookup 203.0.113.10
# ver el HELO del servidor
openssl s_client -starttls smtp -connect mail.example.com:25 -quiet

Según el TTL, un cambio del PTR puede tardar unas horas hasta que lo ven todos los resolutores. La consulta DNS muestra PTR y comprobación inversa en un paso; el comprobador de propagación DNS indica qué resolutores conocen ya el nuevo registro A.

FAQ

¿Debe el nombre PTR contener mi dominio remitente?

No. Solo tiene que ser un nombre real que apunte a la misma IP mediante un registro A o AAAA. Aun así, algunos receptores valoran peor nombres genéricos como 203-0-113-10.proveedor.net.

¿Puede una IP tener varios PTR?

Técnicamente sí, en la práctica da problemas. Un nombre por IP es lo seguro.

No puedo configurar el PTR. ¿Y ahora?

Envía el correo saliente a través de un smarthost (relé) de tu proveedor o de un servicio de correo. Tu servidor sigue recibiendo, pero envía por el relé.

¿Cuánto tarda en surtir efecto el PTR?

En el proveedor, normalmente al momento. Los resolutores que tienen el valor antiguo en caché solo lo ven al caducar el TTL, a menudo entre una y 24 horas.