专栏首页前端之心如何为 DNS 服务器添加反向解析记录
原创

如何为 DNS 服务器添加反向解析记录

前一篇文章我们介绍了如何快速搭建 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 服务可以查考之前的文章,这里不在阐述。),介绍如何添加反向解析记录:

  • 修改 /etc/named.rfc1912.zones 文件,假设需要反向解析的 IP 为 61.129.7.47,如下加入反向解析域配置;
zone "7.129.61.in-addr.arpa" IN {
        type master;
        file "data/61.129.7.zone";
};
  • 新增 /var/named/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.
  • 通过命令 systemctl  restart  named.service 重启 DNS 服务器,通过 netstat -npl|grep named 截图如下所示;

验证 DNS 服务器有效性

  • 通过修改 PC 电脑的 /etc/resolv.conf 配置文件指定 nameserver,将 PC 的默认 DNS 服务器设置为我们搭建的 DNS 服务器;
  • 通过 PC 电脑执行命令 dig -x 61.129.7.4,查看反向解析情况是否生效,结果如下图所示则反向记录生效;
  • 通过 PC 电脑执行命令 dig -x 61.129.7.88,查看反向解析情况是否生效,结果如下图所示则反向记录生效;

至此,我们搭建了具备反向解析能力的 DNS 服务器。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 域名解析详解

    我们知道网络通讯基本上是基于TCP/IP的,而TCP/IP以IP地址为基础,而域名仅仅是为了方便人类的记忆而设计的名称,计算机在网络中进行通讯时不能识别域名,只...

    9527
  • 为什么全球只有13组根域名服务器?

    根域名服务器是域名解析系统(DNS)中最为顶级的域名服务器,它们负责管理顶级域的权威域名服务器地址。作为互联网基础设施的重要部分,所有域名的解析操作均离不开它们...

    9527
  • 如何搭建主从架构的 DNS 服务器

    前面我们介绍了如何搭建 DNS 服务器以及如何往 DNS 服务器添加反向解析记录,本文将在前面的基础上告诉大家如何搭建主从架构的 DNS 服务器。

    9527
  • 新浪短网址生成器等短链接工具的原理(第二章)

    短网址顾名思义就是一个很短的链接和网址,常用于将一个长连接缩短成一个短链接,方便利于推广。  url.cn短网址,可能很多朋友都已经不再陌生,特别是在微博、微信...

    南昌谢大脚
  • Pandas 基础

    Pandas 库基于 NumPy 构建,为 Python 编程语言提供易于使用的数据结构和数据分析工具。

    iOSDevLog
  • flutter web之WebSocketChannelException错误

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    望天
  • DevOps:原理、方法与实践

    1 )消除浪费。浪费是不会增加产品价值的东西,这里的价值必须是由客户确定的。 在精益思维中,浪费的概念有一个很大的跨越(与日常浪费概念相比)。如果一个开发周 ...

    用户5760343
  • jedisLock—redis分布式锁实现

      管理后台的部署架构(多台tomcat服务器+redis【多台tomcat服务器访问一台redis】+mysql【多台tomcat服务器访问一台服务器上的my...

    用户1149268
  • 判断一个树是否为平衡二叉树&&二分搜索树 && 完全二叉树

    只要中序遍历是递增的就是搜索二叉树。这里采用的是前面文章采用的二叉树非递归的方式遍历的方法。

    大学里的混子
  • 用Python手写十大经典排序算法

    来源 | https://github.com/hustcc/JS-Sorting-Algorithm

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券