Bali, Indonesia
Insights

Checking Forward-Confirmed Reverse DNS to Stop Sudden Mail Bounces

October 16, 2026
0:00
A mail server that sent transactional receipts cleanly yesterday can suddenly find its outbound messages rejected with generic 550 or 554 errors this morning. The administrator usually checks SPF, DKIM, and DMARC first, sees that all cryptographic signatures and policy records pass, and wonders why destination servers still drop connections at the SMTP handshake. In many cloud setups, the culprit is a silent mismatch in Forward-Confirmed Reverse DNS (FCrDNS)—a basic network trust verification that breaks easily when instances migrate, floating IPs change, or reverse pointers get overlooked. Understanding how recipient servers evaluate your network identity and choosing a practical validation strategy can keep your mail egress points from drifting out of compliance.
When your mail transfer agent (MTA) connects to an external mail server, it greets the remote host with a hostname declared in its HELO or EHLO command. Before accepting email data, many receiving servers perform a two-way identity check across the Domain Name System. First, the receiving server looks at the connecting IP address and queries the in-addr.arpa (for IPv4) or ip6.arpa (for IPv6) zone for a Pointer (PTR) record. This is standard reverse DNS. For example, if your egress IP is 198.51.100.25, the receiver queries 25.100.51.198.in-addr.arpa to see what hostname your network provider maps to that IP. If that returns mail.example.com, standard reverse DNS is satisfied. However, spam operators can easily buy VPS instances and assign arbitrary hostnames to their PTR records if their provider gives them rDNS delegation. To prevent spoofing, the receiving server executes the critical second step: it takes that returned hostname (mail.example.com) and performs a forward lookup for its Address (A or AAAA) record. If the IP address returned by the forward lookup matches the initial connecting IP address, the connection is "forward-confirmed." If the forward record points to a different IP, or if the PTR points to a default provider hostname (like vps-198-51-100-25.compute.cloudprovider.net) while the MTA identifies itself as mail.example.com, strict receivers will reject or heavily penalize the message before evaluating header signatures. If you are already auditing your authentication records, pairing that with Preventing Root DMARC Policies from Silently Breaking Subdomain Mail gives you a full picture of where authentication breaks down.
In traditional bare-metal setups with static IP allocations, FCrDNS was set once during server commissioning and rarely touched. Cloud infrastructure, however, separates forward DNS management from reverse DNS management across two completely different control planes. Forward records (A and AAAA) are managed in your authoritative DNS zone, hosted on Route 53, Cloudflare, or your domain registrar. Reverse records (PTR) are managed by the entity that owns the IP prefix—typically your cloud provider or ISP. Whenever any of the following events occur, the two systems can easily fall out of sync:
  1. IP reassignments and instance rebuilds: Destroying and recreating an instance often assigns a new ephemeral public IP. If the automation updates the forward A record but skips the cloud provider's PTR API, forward lookups will succeed while reverse lookups return default vendor hostnames.
  2. Floating IP cutovers: Shifting an elastic or floating IP between two nodes running different services can point an established mail IP to a server that identifies itself under a different HELO banner.
  3. Asymmetric IPv4 and IPv6 egress: A server might have correct FCrDNS configured for IPv4, but the local MTA chooses IPv6 for outbound delivery by default. If the IPv6 interface uses a dynamic SLAAC address with no corresponding PTR record in ip6.arpa, outbound mail over IPv6 will fail instantly.
To diagnose an FCrDNS issue, you do not need third-party web checkers. You only need standard DNS query tools like dig to run the two-step verification manually from any terminal.
BASH
# Step 1: Check the reverse PTR record for your outbound IP
dig +short -x 198.51.100.25

# Step 2: Check the forward A record for the hostname returned above
dig +short A mail.example.com
If the output of the second command does not exactly equal the IP address queried in the first command, your egress point lacks forward confirmation. If the reverse lookup returns nothing or returns SERVFAIL, you may need to confirm whether upstream delegation or DNSSEC issues are blocking resolution, as discussed in Using dig to Confirm If DNSSEC Validation Failures Cause SERVFAIL.
Depending on how frequently your servers change and how many mail egress points you manage, relying on manual terminal checks can become an operational bottleneck. You can choose between three general approaches to maintain alignment:
StrategyMaintenance OverheadSetup ComplexityBest Suited ForRisk ProfileCost
Manual AuditLow initial, high recurringNone (built-in CLI)Static single-server setupsHigh risk of human error during migrationsFree
Periodic Probe ScriptLow recurringLow (cron / shell / alert)Small fleets (2–10 nodes)Low risk, detects drift within hoursNegligible
IaC Pipeline ValidationNegligible recurringHigh (Terraform / CI/CD)Dynamic cloud environmentsNear-zero risk of configuration driftModerate engineering effort
If you run one or two static mail servers that rarely migrate, automating DNS validation might introduce unnecessary maintenance. A manual checklist applied strictly during IP changes or server rebuilds is often enough. This approach works when changes are infrequent and handled by experienced engineers who understand that updating an A record is only half the job. The trade-off is organizational risk: the moment an emergency server rebuild happens outside normal hours, updating the reverse PTR record is frequently forgotten until users report bounce messages.
For teams managing a handful of VPS instances, running a periodic probe provides a safety net without heavy engineering investment. A lightweight shell script or monitoring plugin running once or twice a day can query the outbound IP, look up the PTR, resolve the resulting name, and alert your team via email or webhook if the forward IP does not match. This method requires minimal technical effort to implement and catches drift caused by accidental provider-side resets or unintended IP replacements before external reputation scores suffer. The only downside is latency: an alert generated after an IP change means there will still be a brief window where outbound delivery may fail or get queued.
In environments where infrastructure is provisioned through tools like Terraform, Ansible, or custom APIs, FCrDNS should not be treated as an operational afterthought. Cloud providers often expose API endpoints for setting reverse DNS on allocated floating IPs or instances. By tying the forward A record creation and the reverse PTR API call into the same configuration resource or pipeline, you eliminate drift entirely. Furthermore, your deployment pipeline can include an automated verification stage that tests FCrDNS resolution before bringing an egress node into the active mail routing pool. This demands higher technical skill and upfront development time, but it completely removes human error in environments with autoscaling, frequent blue/green deployments, or multi-region failovers.
Forward-Confirmed Reverse DNS is not an optional optimization; it is a fundamental handshake requirement for modern SMTP hygiene. If your outbound mail servers operate on static infrastructure, make a two-way dig check a mandatory gate in your migration checklist. If you manage cloud instances that move or rebuild frequently, integrate your provider's PTR management directly into your provisioning automation to ensure forward and reverse records update simultaneously.