新ISP使用Bind9配置客户反向DNS(rDNS)的技术咨询
问题描述
我们是一家新ISP,最近有个客户的邮件服务器部署在我们的公网IP后方,客户向我们申请配置反向DNS(rDNS)。我们持有一个/21的IP前缀,给客户分配了一个/29的前缀用于他们的服务。我做了些研究,知道作为ISP我们有责任配置rDNS,但实在找不到具体的配置方法。
我搭建了一个Bind9测试服务器,创建了测试正向和反向区,本地测试正常,但不知道怎么配置才能不影响客户的域名。
非常感谢您的帮助。
此致
编辑:折腾了一阵后终于搞定了,感谢大家的指导和信息。此致。
解决方案
作为同是搞ISP DNS运维的,给你捋清楚关键步骤,核心就是你只需要在自己的Bind9里管理IP段的反向记录,完全不需要碰客户的域名配置:
先搞定反向区的全局授权(前提)
首先要确认你持有的/21 IP段的分配机构(比如RIPE、ARIN或者你的上游ISP)已经把这个段对应的反向DNS服务器指向你的Bind9服务器。比如如果你的/21是203.0.112.0/21,对应的反向区是112.0.203.in-addr.arpa,你需要让分配机构把这个区的NS记录设为你的Bind9服务器的公网域名(比如ns1.yourisp.com),这一步是外部网络能查到你配置的反向记录的基础。在Bind9中添加客户/29段的PTR记录
不需要给客户单独建反向区(当然你要这么做也可以,但管理起来麻烦),直接在你的/21主反向区文件里追加客户IP对应的PTR记录就行。举个例子:
假设你的主反向区文件是/etc/bind/db.203.0.112,客户的/29是203.0.112.8/29,客户的邮件服务器用的是203.0.112.10,需要指向mail.customer-domain.com,那就在文件里加:10 IN PTR mail.customer-domain.com.⚠️ 重点:PTR记录的结尾必须加
.,不然Bind会自动拼接当前反向区的域名,导致记录失效。
如果客户需要给/29里的多个IP都配PTR,就依次添加对应的条目就行。重载配置并验证
- 先检查配置文件语法:
named-checkzone 112.0.203.in-addr.arpa /etc/bind/db.203.0.112,确保没有语法错误。 - 重载Bind9配置:
rndc reload - 本地验证:用
dig -x 203.0.112.10 @localhost,看返回的ANSWER SECTION里有没有正确的PTR记录。 - 外部验证:找个外部网络的机器用
dig -x 203.0.112.10,如果能查到,就说明配置生效了。
- 先检查配置文件语法:
额外注意事项
- 你完全不需要修改客户的域名DNS,只需要让客户确保他们的邮件服务器域名(比如mail.customer-domain.com)的A记录指向对应的公网IP,形成双向解析一致——这对邮件服务器的反垃圾邮件信誉很重要,很多邮件服务商都会检查这一点。
- 如果以后有多个客户,都用这个逻辑:在你的主反向区里追加对应IP的PTR记录就行,管理起来非常省心。
备注:内容来源于stack exchange,提问作者aromeromex

