Reverse DNS and PTR Records Explained: FCrDNS, Mail-Receiver Reputation Checks, and the Per-Provider rDNS Setup Reference (RFC 1035 + RFC 1912 + RFC 5321 + RFC 8499)
A focused operational reference on reverse DNS and PTR records: what a PTR record IS (a DNS resource record type defined by RFC 1035 that maps an IP address back to a hostname via the special-use in-addr.arpa zone for IPv4 or the ip6.arpa zone for IPv6, with the terminology formalized by RFC 8499), the forward-confirmed reverse DNS (FCrDNS) check mail receivers perform against every connecting SMTP client (lookup PTR for the connecting IP, lookup A/AAAA for the returned hostname, accept the connection only if the returned IP matches the connecting IP), why mail receivers REJECT mail from IPs that fail FCrDNS or lack a PTR record entirely (RFC 1912 operational requirement reinforced by RFC 5321 §4.1.1.4 + §5.1, and by virtually every modern mailbox provider including Gmail, Microsoft 365 / Outlook.com, Yahoo, AOL, and the spam-filtering vendor ecosystem), the in-addr.arpa zone encoding for IPv4 (octets reversed and suffixed: 192.0.2.25 becomes 25.2.0.192.in-addr.arpa) versus the ip6.arpa nibble-reversed encoding for IPv6, per-provider PTR setup procedures (Amazon EC2 PTR-submission form for Elastic IPs, Google Cloud Compute PTR via instance metadata, Azure VM PTR via portal-side request, Hetzner Robot panel rDNS UI, DigitalOcean droplet-name-determines-PTR, Linode PTR via Cloud Manager, OVH/Scaleway/Vultr/Akamai Linode panels, self-hosted BIND in-addr.arpa zones for on-prem deployments), how PTR records interact with the rest of the email-authentication stack (PTR is the receiver-side trust-baseline anchor; SPF/DKIM/DMARC layer on top of a valid PTR; MX is the inbound-routing record and operates on the receiving side independent of PTR), the explicitly-deprecated SPF "ptr" mechanism (RFC 7208 §5.5: SHOULD NOT BE PUBLISHED in new deployments because of receiver-side performance cost and security ambiguity), shared-IP and cloud-load-balancer considerations (operators running mail through a shared IP cannot publish their own PTR but inherit the provider PTR; load-balanced senders need PTR on every egress IP), TTL recommendations, common PTR mistakes (publishing a generic provider PTR like ec2-1-2-3-4.compute-1.amazonaws.com on a custom mail-sending IP, missing IPv6 PTR when IPv6 outbound is enabled, mismatched forward/reverse where the PTR target resolves to a different IP than the connecting IP), troubleshooting "mail is bouncing because reverse DNS is missing or invalid", and an FAQ covering the questions operators ask when a freshly-deployed mail server starts seeing 550 5.7.1 "reverse DNS does not resolve" or 550 "Client host rejected: cannot find your hostname" bounce signatures.
This reference is provided in English. Reverse DNS and PTR records are specified in English-language RFCs (RFC 1035, RFC 1912, RFC 5321, RFC 7208, RFC 8499) and the canonical vocabulary (PTR, reverse DNS, rDNS, FCrDNS, in-addr.arpa, ip6.arpa, glue record, nibble-reversed, SHOULD NOT BE PUBLISHED) does not translate. We keep the body in the source language so technical terms remain consistent with the specifications.
TL;DR
- A PTR (Pointer) record is a DNS resource record type (RFC 1035 §3.3.12) that maps an IP address back to a hostname — the inverse of an A or AAAA record.
- PTR records live in the special-use in-addr.arpa zone (IPv4) and ip6.arpa zone (IPv6) (RFC 8499) with the IP octets / nibbles reversed and suffixed: 192.0.2.25 becomes 25.2.0.192.in-addr.arpa, and 2001:db8::25 becomes 5.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
- The FCrDNS check (Forward-Confirmed Reverse DNS) is what mail receivers run against every connecting SMTP client: PTR lookup → A/AAAA lookup of the returned hostname → verify the returned IP matches the connecting IP. If they do not match, the client is rejected or heavily spam-scored.
- Mail receivers REJECT IPs without matching PTR. RFC 1912 operational guidance plus RFC 5321 §4.1.1.4 + §5.1 plus every major mailbox provider (Gmail, Microsoft 365 / Outlook.com, Yahoo, AOL) require valid FCrDNS before accepting mail. Missing or generic provider PTR is the single most common cause of "mail is being rejected" deliverability complaints.
- The SPF "ptr" mechanism is EXPLICITLY DEPRECATED. RFC 7208 §5.5: "SHOULD NOT BE PUBLISHED" in new deployments. Performance cost (extra receiver-side DNS lookups) plus security ambiguity (PTR is controlled by the IP-block holder, not the domain). PTR records remain operationally important (FCrDNS, sender reputation), but they do NOT belong inside an SPF record.
- Per-provider PTR setup varies. Amazon EC2 requires a PTR submission form for Elastic IPs; Google Cloud sets PTR via instance metadata; Azure VM PTR requires a portal-side request; Hetzner has a Robot panel rDNS UI; DigitalOcean uses the droplet name; Linode uses the Cloud Manager. Self-hosted environments configure in-addr.arpa zones in BIND directly. The end-customer renting an IP CANNOT publish PTR records directly — only the IP-block holder can.
- IPv6 PTR is mandatory if you send over IPv6. Gmail in particular has been aggressive about IPv6 preference since 2014 and REJECTS IPv6 mail from IPs without matching ip6.arpa PTR with a 550 5.7.1 bounce. Dual-stack senders need both in-addr.arpa and ip6.arpa entries.
- Recommended TTL: 3600 to 86400 seconds. PTR records change rarely (typically only when migrating mail servers to new IPs), so longer TTLs improve cache efficiency. Lower to 300 to 3600 seconds BEFORE a planned IP migration and raise back afterwards. See DNS propagation for the pre-emptive-TTL- reduction pattern.
1. Overview: what reverse DNS and PTR records are
Every internet name lookup most operators are
familiar with goes in one direction: a hostname
like mail.example.com is resolved
to an IP address like 192.0.2.25.
The DNS RR types that drive the forward
direction are A (for IPv4) and AAAA (for IPv6).
Reverse DNS is the OTHER direction: given an IP
address, what hostname does the IP-block holder
claim for it?
Reverse lookups are answered by PTR records, a
DNS resource record type defined by RFC 1035
section 3.3.12. PTR records do not live in the
forward DNS zone with the A and AAAA records;
they live in two special-use DNS zones reserved
by IANA: in-addr.arpa for IPv4 and
ip6.arpa for IPv6. The zones are
delegated hierarchically to match the
hierarchical IP-block allocation done by ARIN,
RIPE, APNIC, AfriNIC, and LACNIC, so the
authoritative nameservers for a PTR record on
192.0.2.25 are owned by whoever holds the
192.0.2.0/24 IP block — typically the
hosting provider or ISP renting the IP to the
end-customer.
For email delivery, PTR records are operationally load-bearing. Mail receivers query the PTR record of every connecting SMTP client as part of the trust-baseline check that runs BEFORE any envelope or header data is transmitted, BEFORE SPF can be evaluated, BEFORE DMARC can be checked. A missing PTR or one that does not forward-confirm causes the receiver to reject the connection outright with a 550 5.7.1 series error or to apply a heavy spam-scoring penalty. This page is the deep dive on what PTR records ARE, how the FCrDNS check works, why receivers care, the in-addr.arpa and ip6.arpa zone encoding, per-provider PTR setup procedures, and the troubleshooting funnel for "mail is bouncing because reverse DNS is missing".
2. PTR record syntax (in-addr.arpa and ip6.arpa)
A PTR record is a single-string RDATA RR. The DNS query name encodes the IP, and the RDATA payload is the hostname the IP maps back to. The encoding rules differ between IPv4 and IPv6.
2.1 IPv4 PTR (in-addr.arpa)
For an IPv4 address, the octets are REVERSED
and suffixed with .in-addr.arpa:
; Forward zone (example.com):
mail.example.com. IN A 192.0.2.25
; Reverse zone (2.0.192.in-addr.arpa, owned by the /24 holder):
25.2.0.192.in-addr.arpa. IN PTR mail.example.com.
Verifying with dig:
$ dig -x 192.0.2.25 +short
mail.example.com.
$ dig PTR 25.2.0.192.in-addr.arpa +short
mail.example.com.
The two queries are equivalent — dig
-x is a convenience wrapper that
automatically constructs the reversed in-addr.arpa
name from the IP argument.
2.2 IPv6 PTR (ip6.arpa)
For an IPv6 address, the full 128-bit address is
expanded (no :: shorthand), each
hex nibble is reversed, and the result is
suffixed with .ip6.arpa:
; Forward zone:
mail.example.com. IN AAAA 2001:db8::25
; Reverse zone (under the /48 or /64 holder's authoritative servers):
5.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. IN PTR mail.example.com.
The verbose nibble-reversed encoding is what
makes ip6.arpa hierarchical delegation match
the /4 boundary of the IPv6 address, which is
why a single IPv6 PTR query name has 32 hex
characters separated by 31 dots. The dig
-x wrapper handles IPv6 transparently.
3. The forward-confirmed reverse DNS (FCrDNS) check
FCrDNS is the trust-baseline check that mail receivers run against every connecting SMTP client. Most modern receivers (Gmail, Microsoft 365 / Outlook.com, Yahoo, AOL, Apple iCloud, and the major commercial spam-filtering vendors: Proofpoint, Mimecast, Barracuda, Cisco IronPort) run FCrDNS unconditionally; the only way to AVOID the check is to not run mail at all. The procedure has four steps and a single pass/fail outcome:
- Record the connecting IP. Whatever IP the SMTP client used to open the TCP connection on port 25 (or port 587 / 465 for authenticated submission — FCrDNS applies to both).
- Query PTR for the connecting IP.
Reverse-resolve via
dig -xequivalent. The receiver expects a hostname back; if the result is NXDOMAIN or the PTR is missing entirely, FCrDNS FAILS. - Query A or AAAA for the returned hostname. Forward-resolve the PTR result. The receiver expects an IP back.
- Compare the forward-resolved IP to the connecting IP. Match → FCrDNS PASSES; mismatch → FCrDNS FAILS.
The check is operationally significant because
it is the lowest-cost trust signal a receiver
can compute: a single PTR lookup plus a single
A/AAAA lookup, both cacheable, evaluated before
any SMTP DATA has been received. Spammers
cannot easily produce matching PTR records on
the IPs they hijack — botnet IPs
typically inherit a generic provider PTR
(something like
1-2-3-4.dynamic-pool.example-isp.com)
that does NOT resolve back to the same IP that
connected, so the botnet traffic fails FCrDNS
while legitimate operator-controlled mail
servers pass. Even a single PTR-only check
(without the forward-confirmation step) is
enough to reject ~30 percent of total botnet
traffic per publicly-published Gmail and
Microsoft anti-abuse data.
4. Why mail receivers reject IPs without matching PTR
The receiver-side rejection rule is rooted in RFC 1912 section 2.1 ("PTR records") which documents the operational expectation that every IP advertised on the public internet SHOULD have a matching PTR record, and that mail servers in particular MUST. The MUST language is reinforced by RFC 5321 section 4.1.1.4 (the EHLO greeting expects a fully-qualified domain that resolves back to the connecting IP) and section 5.1 (the mail-delivery sequence assumes the sender is a properly-configured SMTP MTA, which by RFC 1912 operational guidance means PTR-published).
In practice, the receiver-side enforcement has converged on these rejection patterns:
- Gmail: rejects with
550 5.7.1 The IP address sending this message does not have a PTR record setup, or the corresponding forward DNS does not match the reverse DNS. The error has been in Gmail's published anti-abuse documentation since 2010. - Microsoft 365 / Outlook.com:
rejects with
550 5.7.1 Client host rejected: cannot find your reverse hostname, [your.ip.address]or the Sender-Score-based equivalent. - Yahoo / AOL: rejects with
550 5.7.1 Connection denied (Mode: normal) ... reverse DNS does not resolve. - Spam-filter vendors (Proofpoint, Mimecast, Barracuda): apply heavy spam-score penalty rather than outright rejection, but the practical effect is the same — mail goes to the recipient's junk folder or is silently dropped.
The single most common cause of "mail is being
rejected" deliverability complaints from
new-mail-server operators is missing or
mis-aligned PTR. Operators on shared-IP
hosting (typical VPS providers, basic cloud
droplets) inherit the generic provider PTR
(something like vps-203-0-113-25.
example-cloud.net) which technically
passes FCrDNS but is heavily penalized by every
major mailbox provider because the hostname
contains the dynamic-pool / generic-VPS
signature.
5. PTR records for IPv6 (ip6.arpa)
IPv6 PTR is structurally the same as IPv4 PTR but encoded in the ip6.arpa special-use zone instead of in-addr.arpa. The nibble-reversed encoding is what makes ip6.arpa hierarchical delegation match the /4 boundary of the IPv6 address: a /48 IPv6 block holder is delegated authority over the corresponding /48-prefix nibbles in ip6.arpa, a /64 holder over the /64-prefix nibbles, and individual /128 PTR records live at the leaf of the 32-character nibble-reversed name.
Why IPv6 PTR matters more than operators expect: Gmail has been progressively expanding its IPv6 transport preference since 2014, and since 2016 has rejected outbound IPv6 mail from IPs without matching ip6.arpa PTR with a 550 5.7.1 bounce containing the literal text "IPv6 sending server must have PTR record". Microsoft 365 / Outlook.com applies the same rule. The practical consequence: a mail server with valid IPv4 PTR but missing IPv6 PTR sees normal delivery to most receivers but Gmail specifically (which represents a huge fraction of total recipient endpoints) returns 550 bounces, sometimes randomly when the dual-stack sender alternates between IPv4 and IPv6 transport based on receiver AAAA-record publication.
Recommended IPv6 PTR strategy:
- If you publish AAAA on your mail host: you MUST also publish ip6.arpa PTR for every IPv6 address the AAAA resolves to. Symmetric forward / reverse is the baseline.
- If your mail host is dual-stack
but you only want to send IPv4:
explicitly bind the outbound SMTP socket
to the IPv4 interface (in Postfix:
inet_protocols = ipv4; in Exim: the equivalentdisable_ipv6directive; in Sendmail: theO DaemonPortOptionsAddress4 binding). Without this, the kernel may default to IPv6 outbound when an AAAA record exists, and the mail server will silently use IPv6 with the missing ip6.arpa PTR. - Safe default: publish both in-addr.arpa and ip6.arpa PTR for every outbound interface that has any forward record, even if you're not yet actively sending IPv6. An inadvertent IPv6 path enabled later does not silently break delivery.
6. Per-provider PTR setup
The end-customer renting an IP from a hosting provider CANNOT publish PTR records directly — only the IP-block holder (the provider) can. Per-provider setup procedures vary significantly. The following are the operator-facing patterns as of 2026 for the major providers operators encounter; the underlying authoritative-nameserver configuration is the same in all cases (an in-addr.arpa or ip6.arpa PTR record published by the provider on the customer's request).
6.1 Amazon EC2 / SES
- EC2 with Elastic IP: AWS
provides the default generic PTR
(
ec2-203-0-113-25.compute-1.amazonaws.com) automatically. To set a custom PTR (mail.example.com), submit the "Request to Remove Email Sending Limitations" form in the AWS Support Center. The form requires the EIP to be allocated, the forward A/AAAA record to be published first (so FCrDNS passes immediately when the PTR takes effect), and the domain to be controlled by the requestor. Amazon processes manually with a 24-48-hour turnaround. - SES managed IPs: Amazon publishes the PTR automatically on the SES-managed IP pool; no operator action. For dedicated SES IPs, the customer's configured "From" domain drives the PTR.
6.2 Google Cloud Compute
- PTR is configured per-instance via the
Compute Engine metadata. The
gcloud compute instances add-access-configcommand accepts a--public-ptr-domain-nameflag that sets the PTR for the instance's external IP. Alternatively, in the Cloud Console: VM Instances → Edit → Network interfaces → External IP → Public DNS PTR. Verification of forward ownership is automated against the domain's published TXT challenge.
6.3 Microsoft Azure VMs
- Azure publishes a generic PTR
(
cust-azure-203-0-113-25.cloudapp.net) by default. Custom PTR requires a portal-side request through Azure Support or programmatically viaSet-AzPublicIpAddresswith the-ReverseFqdnparameter. As with EC2, the forward record MUST be published before the PTR change.
6.4 Hetzner
- Hetzner exposes PTR management in the Robot panel (dedicated servers) or Cloud Console (cloud servers). Customers can update PTR self-service with no support ticket. The change propagates within minutes.
6.5 DigitalOcean
- DigitalOcean derives PTR from the droplet
name automatically: rename the droplet
mail.example.comand the PTR updates to match within a few minutes. No separate PTR configuration screen. Verification of forward ownership is the operator's responsibility.
6.6 Linode
- Linode exposes PTR in the Cloud Manager under Networking → rDNS. Self-service; propagation within minutes; forward-record ownership is the operator's responsibility.
6.7 Self-hosted (BIND)
- For on-prem deployments where the
organization holds the IP block directly
(typically a /24 or larger from ARIN), the
operator runs BIND with an
in-addr.arpareverse zone:
// /etc/bind/named.conf.local
zone "2.0.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.0.2";
allow-transfer { trusted; };
};
// /etc/bind/zones/db.192.0.2
$TTL 86400
@ IN SOA ns1.example.com. hostmaster.example.com. (
2026052101 ; Serial
3600 ; Refresh
900 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
IN NS ns1.example.com.
IN NS ns2.example.com.
25 IN PTR mail.example.com.
7. PTR and email authentication (SPF, DMARC, MX)
PTR is operationally UPSTREAM of SPF, DKIM, and DMARC. The order of receiver-side checks during an inbound SMTP transaction is:
- TCP handshake on port 25
- FCrDNS check on the connecting IP — FAIL here and the connection is rejected before any envelope or header data transmits
- EHLO greeting (the sender announces its hostname)
- MAIL FROM (envelope sender)
- RCPT TO (envelope recipient)
- DATA (header + body)
- Receiver-side processing: SPF check (against MAIL FROM domain), DKIM check (against signed headers), DMARC alignment check (against From: header)
Steps 1-2 are the trust-baseline gate; if PTR is missing or FCrDNS fails, the receiver-side SPF / DKIM / DMARC machinery is never even invoked. This is why "I have perfect SPF and DMARC alignment but mail is still being rejected" is almost always a PTR / FCrDNS problem — SPF and DMARC are OPERATIONALLY DOWNSTREAM of PTR and cannot rescue a PTR failure.
For MX records on the INBOUND side, PTR is the natural sibling check: the MX target hostname SHOULD have a forward A/AAAA record matching the PTR of the MX target IP. See the MX records deep dive for the inbound side and the "reverse-DNS on the resolved IP" troubleshooting funnel that anchors against this page.
8. The deprecated SPF "ptr" mechanism (RFC 7208 §5.5)
Historically, SPF supported a "ptr" mechanism that instructed receivers to reverse-resolve the sending IP via PTR, then check whether the returned hostname was within the domain named in the SPF record:
; Deprecated syntax (DO NOT USE):
v=spf1 ptr:example.com -all
The mechanism is EXPLICITLY DEPRECATED by RFC 7208 §5.5: the language is "SHOULD NOT BE PUBLISHED". Two reasons drove the deprecation:
- Performance. Every SPF "ptr" evaluation requires the receiver to perform a PTR lookup followed by one or more A/AAAA lookups against each returned hostname to check domain membership. This dramatically inflates the receiver-side DNS query budget — SPF already has a 10-DNS-lookup hard limit (RFC 7208 §4.6.4) and "ptr" mechanisms count against that limit at a higher per-record cost than any other mechanism. Receivers running high-volume mail benefit from SPF records without "ptr" because the per-message DNS cost is lower.
- Security and ambiguity. PTR records are controlled by the IP-BLOCK HOLDER, not by the domain owner. An attacker who compromises an IP block (or who rents an IP from a careless provider that does not require forward- record proof) can manipulate PTR responses to forge SPF passes. The "ptr" mechanism also has ambiguous semantics around CNAME chains in the PTR response and around IPv4-mapped IPv6 addresses. RFC 7208's authors concluded that the cost did not justify keeping it.
The deprecation has been honored by every
major SPF library and receiver since 2014.
Modern SPF deployments use
ip4: / ip6: /
a / mx /
include: mechanisms and avoid
ptr entirely. See the
SPF
explained and
SPF
lookup limit deep dives for the modern
SPF authoring guidance.
Important: this deprecation applies to the SPF "ptr" MECHANISM, not to PTR records themselves. PTR records remain operationally important for the FCrDNS receiver-side check that runs OUTSIDE the SPF evaluation pipeline.
10. PTR record TTL recommendations
PTR records change rarely — typically only when migrating mail servers to new IPs or when rebuilding mail infrastructure — so longer TTLs improve cache efficiency at the millions of recursive resolvers across the internet. The recommendations mirror the general DNS TTL guidance in the DNS propagation deep dive:
- Stable production PTR: 3600 to 86400 seconds (1 hour to 24 hours). This is the default for almost every operator-managed and provider-managed PTR.
- Pre-migration: lower to 300 to 3600 seconds AT LEAST 24-48 hours BEFORE a planned IP migration so the new PTR propagates within the lowered TTL window. After the migration is stable, raise back to the long default.
- Emergency rollback: if a wrong PTR was published and is being actively cached, raise the long TTL is useless — the change takes the old TTL to age out at receivers, not the new TTL. The pre-emptive-TTL-reduction pattern is the operational discipline that prevents this trap.
11. Common PTR-record mistakes
- Generic provider PTR on a custom
mail-sending IP. Operators rent an
Elastic IP from AWS and start sending mail
immediately without filing the PTR-change
request. The PTR resolves to
ec2-203-0-113-25.compute-1.amazonaws.com; FCrDNS technically passes (the forward record exists and resolves back to the connecting IP) but Gmail and Microsoft 365 heavily penalize thecompute.amazonaws.com/amazonaws.com/cloudapp.netgeneric-PTR signature for outbound mail. - Missing IPv6 PTR when dual-stack is enabled. The forward AAAA record exists; mail server picks IPv6 outbound; Gmail rejects with 550 5.7.1 "IPv6 sending server must have PTR record". The operator sees intermittent bounces because the kernel sometimes picks IPv4 (which works) and sometimes IPv6 (which doesn't).
- Mismatched forward / reverse.
PTR resolves to
mail.example.combut the A record formail.example.compoints to a different IP. FCrDNS fails; all major receivers reject. The fix is to update either the PTR target or the forward A record so both ends match the connecting IP exactly. - PTR pointing at a CNAME. RFC 1034 §3.6.2 explicitly prohibits PTR records from targeting CNAME aliases — the PTR RDATA must be a hostname that resolves directly to an A or AAAA record. Some legacy provider portals quietly accept CNAME-pointing PTR; receivers treat them as missing.
- Multiple PTR records on a single IP. RFC 1912 §2.1 recommends a single PTR per IP; multiple PTRs are legal but produce undefined receiver behaviour (some receivers pick the lexicographically first; others reject randomly). For mail, publish exactly one PTR.
- PTR not updated after an IP change. The mail server moved from old IP to new IP; A record was updated; PTR was forgotten. The new IP returns the provider-generic PTR which FCrDNS-passes but Gmail penalizes. Audit PTR on every IP change as part of the migration runbook.
12. Troubleshooting "reverse DNS missing"
When a receiver bounces mail with the 550 5.7.1 series error containing "reverse DNS does not resolve" or "Client host rejected: cannot find your hostname" or "PTR record does not resolve", work the diagnostic funnel:
- Identify the connecting IP. Inspect the Received: header chain of a bounce message or the SMTP transcript to find the IP your mail server actually connected from. For NAT or cluster-egress topologies, this may NOT be the IP you expected.
- Confirm PTR exists. Run
dig -x your.sending.ip +short. Expected output: a hostname likemail.example.com. NXDOMAIN or empty → PTR is missing entirely; file a PTR change with your IP-block holder. - Confirm forward-confirmation
passes. Take the PTR result from
step 2, run
dig +short the.returned.hostname, and compare the result IP to the connecting IP from step 1. Mismatch → either the forward A/AAAA is wrong (fix it under your control) or the PTR is pointing at a different host than you intend. - Check IPv4 vs IPv6. If your mail server is dual-stack, repeat the check for both. Gmail specifically rejects on missing ip6.arpa PTR even when in-addr.arpa is fine.
- Verify the provider PTR is
acceptable. If the PTR resolves
to a generic provider hostname
(
ec2-*,compute.amazonaws.com,cloudapp.net,example-cloud.net), the FCrDNS check technically passes but Gmail / Outlook will heavily spam-score or reject. File a custom-PTR request with the provider. - Check the EHLO greeting.
The HELO/EHLO hostname the mail server
announces should match the PTR
target. Mismatch is not strictly
FCrDNS-failing but is heavily
spam-scored. Configure
myhostnamein Postfix or the equivalent in your MTA to match the PTR. - Check IP reputation. The DMARC Analyzer Blacklist Checker queries the major RBLs against the sending IP; if the IP is listed, FCrDNS may pass but mail is still rejected. PTR is necessary but not sufficient.
13. FAQ — common questions about reverse DNS and PTR
- What is a PTR record?
- A PTR (Pointer) record is a DNS resource record type defined by RFC 1035 section 3.3.12 that maps an IP address back to a hostname — the inverse of the more familiar A or AAAA record. PTR records live in two special-use DNS zones standardized by RFC 8499: in-addr.arpa for IPv4 and ip6.arpa for IPv6.
- What is FCrDNS and why do mail receivers care?
- FCrDNS is the Forward-Confirmed Reverse DNS check: the receiver looks up PTR for the connecting IP, then looks up A/AAAA for the returned hostname, and accepts the connection only if the returned IP matches the connecting IP. The check is operationally significant because spammers cannot easily produce matching PTR records on the IPs they hijack, so FCrDNS is the cheapest available trust-baseline filter at the SMTP handshake layer.
- Does my PTR record affect SPF or DMARC?
- PTR is operationally upstream of SPF and DMARC. The receiver runs FCrDNS during the SMTP connection handshake, BEFORE SPF or DMARC are evaluated. A failed PTR causes the connection to be rejected before SPF / DMARC are even checked, so SPF and DMARC alignment cannot rescue a PTR failure.
- How do I set up a PTR record on an Amazon EC2 instance?
- For EC2 with an Elastic IP, submit Amazon's "Request to Remove Email Sending Limitations" form which doubles as the PTR-modification request. The form requires the EIP allocated, the forward A/AAAA record published first, and domain ownership of the PTR target. Amazon processes the request manually with a 24-48-hour turnaround.
- Do I need an IPv6 PTR if my mail server only sends over IPv4?
- If your mail server is genuinely IPv4-only (no AAAA record on the forward, outbound socket bound to the IPv4 interface), IPv6 PTR is irrelevant. If your mail server is dual-stack with AAAA on the forward, you MUST publish ip6.arpa PTR — Gmail and Microsoft 365 reject IPv6 mail from IPs without it.
- Why was the SPF "ptr" mechanism deprecated?
- RFC 7208 section 5.5 explicitly deprecated the SPF "ptr" mechanism in 2014 with the language "SHOULD NOT BE PUBLISHED" for two reasons: performance (PTR lookups dramatically inflate the receiver-side DNS query budget within the 10-DNS-lookup SPF limit) and security ambiguity (PTR is controlled by the IP-block holder, not the domain). PTR records themselves remain operationally important for FCrDNS; the SPF mechanism is what was deprecated.
- What is the in-addr.arpa zone and why does PTR live there?
- in-addr.arpa is a special-use DNS zone reserved by IANA for reverse-mapping IPv4 addresses to hostnames. The reversed-octet encoding (192.0.2.25 becomes 25.2.0.192.in-addr.arpa) makes the hierarchical DNS delegation match the hierarchical IP-block allocation by the regional internet registries.
- What does 550 5.7.1 reverse DNS does not resolve mean?
-
The 550 5.7.1 series of SMTP errors are
receiver-side rejections caused by a
failed PTR or FCrDNS check. Remediate by
confirming the PTR exists
(
dig -x your.ip), confirming the forward record resolves back to the same IP, and filing a custom-PTR change with the IP-block holder if the provider-default PTR is generic.
15. Audit your reverse DNS now
DMARC Analyzer's
Domain Security
Checker performs a live PTR lookup against
every IP resolved from your MX, SPF, and
sending-pool records (via
includes/DnsChecker.php) and
reports the PTR target, FCrDNS pass/fail
status, TTL, and matching IP-reputation
signals. Use it to confirm your mail-sending
IPs are correctly configured for FCrDNS, that
the PTR is not pointing at a generic provider
hostname, and that IPv6 PTR is published if
AAAA is present on the forward side. The
Email Header
Analyzer parses Received: chains from
captured messages (via
includes/EmailHeaderParser.php)
so you can identify the exact connecting IP
and EHLO hostname for an inbound message
— the key inputs to a PTR / FCrDNS
troubleshooting session.