前一篇文章我们介绍了如何快速搭建 DNS 服务器,本文将向大家介绍如何向 DNS 服务器添加反向解析记录,支持将指定的 IP 解析到对应的域名。
什么是反向域名解析
DNS 服务器里面有两种类型的 zone,即“正向查找区域”和“反向查找区域”,正向查找区域记录域名到 IP 的映射关系,反向查找区域记录 IP 到域名的映射关系,通过反向查找我们可以得到指定 IP 对应的域名信息,这个过程我们称之为反向域名解析,而 IP 映射到域名的信息记录我们称之为 PTR 记录。
反向解析的用途
邮件交换记录中有 A 记录和 PTR 记录两种,A 记录解析域名到 IP,PTR 记录解析 IP 到域名。反向域名解析主要用于确保邮件交换记录的有效性,用于拦截邮件服务系统中的垃圾邮件。
一般情况下,垃圾邮件发送者使用动态分配的 IP 地址或者没有注册域名的 IP 地址来发送垃圾邮件,通过反向解析可以判断邮件的合法性。当邮件服务器收到邮件时,邮件服务器会查看邮件由哪个 IP 地址发出,然后根据这个 IP 地址进行反向解析,如果反向解析得到的域名与发送方邮件的域名不一致则认为邮件发送者不是从真正的邮件服务器发出,则可以拒绝接收此邮件。比如当anonymous@qq.com 收到一份来自 simulate@163.com 的邮件时,qq邮件服务器会查看邮件来源的 IP,根据 IP 进行反向解析,如果解析到的域名和 163.com 一致则接收邮件,否则认为邮件来源的 IP 伪造拒绝这封邮件。
反向解析记录在域名系统中的实现
我们知道域名系统中正向解析是通过域名出发去寻找 IP 地址的,整个域名系统层次结构就是一个从根开始的域名树,但是反向解析是从 IP 出发查找域名,而一个 IP 地址可以对应多个域名,在域名树中查找 IP 对应的所有域名就需要遍历域名树,这样实现基本不可能。为了完成反向域名解析,域名系统提供了一个特别的域名,称之为反向解析域 in-addr.arpa,需要被解析的 IP 地址会被表达成类似域名的可显示串的形式,后缀为 in-addr.arpa。比如 IP 地址 61.129.7.47 的反向解析域名表达式为:47.7.129.61.in-addr.arpa,从而利用地址作为索引的域名空间完成快速的反向解析。
添加反向解析记录
我们以 IP 地址为 139.199.199.225 的 DNS 服务器为例(假设 139.199.199.225 已经搭建了 DNS 服务器,如何搭建 DNS 服务可以查考之前的文章,这里不在阐述。),介绍如何添加反向解析记录:
zone "7.129.61.in-addr.arpa" IN {
type master;
file "data/61.129.7.zone";
};
$TTL 1D
@ IN SOA dns.qq.com. webmaster.qq.com. (
20181125 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.qq.com.
@ IN MX 10 mail.qq.com.
4 IN PTR mail.qq.com.
88 IN PTR ptr.qq.com.
验证 DNS 服务器有效性
至此,我们搭建了具备反向解析能力的 DNS 服务器。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。