各种DNS的技术对比以及DNS缓存配置
七月 14, 2024 [网络与安全] #obsidian #网络各种DNS的技术对比以及DNS缓存配置
各种DNS技术对比
在开源界,有多种DNS技术。在RHEL上,笔者主要用过三种:BIND、Unbound(DNS缓存)、Dnsmasq等。
各种DNS技术功能对比如下:

各种DNS适用的操作系统平台如下:

从上图我们可以看出来:在三种DNS技术中,Bind的功能最全、适用的操作系统种类最多,也是RHEL标准带的DNS服务。
下面对这三种DNS技术进行简单介绍。
BIND是事实上的标准DNS服务器。它是一种免费软件产品,在大多数Unix和Linux平台上均已分发,在大多数情况下也被称为named(名称守护程序)。它是部署最广泛的DNS服务器。[1]从历史上看,BIND经历了三个主要修订,每个修订的体系结构都有明显不同:BIND4,BIND8和BIND9。BIND4和BIND8现在在技术上已过时,因此本文中不予考虑。BIND9是对BIND的完全重写,除其他功能和增强功能外,还具有完整的DNSSEC支持。RHEL8自带的是BIND9.11。
Unbound是一种为高性能而设计的验证,递归和缓存DNS服务器。它是由NLnet Labs根据BSD许可在2008年5月20日发行的免费软件(版本1.0.0)。从版本10.0开始,它作为基本系统的一部分安装在FreeBSD中;从版本8.0开始,它被安装在NetBSD中。OpenBSD 5.6及更高版本中也提供了一个版本。(BIND随附的FreeBSD的早期版本。)
Dnsmasq是一种轻量级,易于配置的DNS转发器,旨在为小型网络提供DNS(以及可选的DHCP和TFTP)服务。它可以服务不在全局DNS中的本地计算机的名称。Dnsmasq接受DNS查询,并从一个小的本地缓存中答复它们,或将其转发到真实的递归DNS服务器。它加载/etc/hosts的内容,以便可以解析未出现在全局DNS中的本地主机名。RHEL8中的dnsmasq开始支持DNSSEC(符合上面功能对照表的描述)
在RHEL7中,官方配置是BIND。RHEL8默认也使用BIND。Dnsmasq的好处是配置简单,使用方便。这在小型的开发测试环境和PoC环境非常适合。Unbound主要功能是做DNS缓存。