根dns服务器和dns服务器区别(科普啦)(1)

前面文章主要讲解了DNS服务,下面我们来了解下主流的DNS服务器。

1. BIND,其历史悠久,起源于1980年的加州大学伯克利分校,后来由ISC(Internet System Consortium)维护,BIND一直以来都是DNS的工业标准,是目前世界上使用最为广泛的DNS服务器了。BIND即可以做权威服务器又可以做递归服务器。目前,已集成到Linux操作系统中。

BIND有如下功能:

1)DNSSEC(DNS安全扩展)验证,保证DNS数据可信。

2)RPZ(Response Policy Zone):定制响应zone的策略,提升安全性。

3)rate-limit:限流,减少DDOS攻击中放大攻击的可能性

4)DLZ(Dynamically-Loadable Zones):支持从外部数据库获取Zone数据,如MySQL和PostgreSQL

5)Dyndb,提供了操作接口,支持在内存中动态加载外部数据库,性能要优于DLZ

6)rndc命令支持,不重启DNS服务器,动态加载配置文件、对缓存操作等内容

BIND的应用如下图所示:

根dns服务器和dns服务器区别(科普啦)(2)

BIND DNS应用

BIND可以提供企业,大学,运营商等DNS服务,加入CDN,提供高性能、安全可靠的DNS服务。

图片来源: https://www.isc.org/bind/

2.PowerDNS

PowerDNS是以C 开发的,支持区域数据文件和关系数据库后端作为DNS缓存的数据中心。即可以做递归服务器,又可以做权威服务器。支持DNSSEC及多线程运行等特性。其中,dnsdist是一个高性能的负载均衡器 ,通过Lua语法配置,可动态更新配置文件。

官网:https://www.powerdns.com/

3.Knot DNS

根dns服务器和dns服务器区别(科普啦)(3)

KNOT DNS

KNOT DNS是一款权威DNS服务器,由CZ.NIC开发,采用RCU(Read Copy Update)锁和基数树(Radix Tree)来实现多线程技术,充分发挥其DNS服务器性能。官方对KNOT DNS进行benchmark,如下所示。

根dns服务器和dns服务器区别(科普啦)(4)

测试条件如下:

可以看出,在对100万顶级域名进行测试时,吞吐可以达到180万/秒。

数据来源:https://www.knot-dns.cz/benchmark/

4.Knot Resolver

同属于Knot生态家庭的Knot Resolver是一款轻量级的高性能缓存DNS服务器,采用C语言和

LuaJIT实现,提供了Lua接口来操作内部DNS协议,包括对缓存的操作。命令行工具kresd简化了knot resolver的操作。

启动Knot Resolver,在查询域名baidu.com时 ,控制台会返回如下信息:

[44353.03][iter] <= rcode: NOERROR

[44353.03][cach] => stashed baidu.com. A, rank 020, 26 B total, incl. 0 RRSIGs

[44353.03][cach] => not overwriting NS baidu.com.

[44353.03][resl] <= server: '202.108.22.220' rtt: 197 ms

[44353.03][resl] AD: request NOT classified as SECURE

[44353.03][resl] finished: 4, queries: 1, mempool: 32800 B

rcode: NOERROR表示域名查询成功,结果为A类型,IP为202.108.22.220。

,