资源

DNS Server 开源版本

MarginNote 3 - Mac端PDF阅读批注工具 激活码价格:¥69.00
赤友 NTFS for Mac 助手 -  磁盘硬盘格式读写软件注册激活码价格:¥35.00
虫洞 -  iPhone安卓投屏操控 电脑手机多屏协同,价格:¥45.00
namesilo全网最便宜域名注册商,输入折扣码:nsilo20立减1美元!

DNS Server 开源版本DNS是互联网的基础设施,开源的DNS也有不少,下面列出主要的几种供参考:

1 Bind9

ISC(Internet System Consortium)的Bind一直以来基本上都是DNS的工业标准,Bind应该是目前世界上使用最为广泛的DNS服务器了。Bind起源于1980年的Berkeley大学,比起我的年龄还大,Bind的名称也是源自Berkeley Internet Name Domain。不过Bind也是一直漏洞不断,Bind9是ISC开发人员对Bind重写,目前常见的Linux发行版本中,会自带Bind9的安装包。
Bind9可以作为权威与递归DNS。主要特性如下:
作为权威DNS时:

  • Response Rate Limiting (RRL):对DNS增强,以减少放大攻击
    • Dynamically-Loadable Zones (DLZ):支持从外部数据库获取Zone数据,但不建议使用在高性的权威DNS。
    • Minimum Re-load Time:支持配置文件动态加载。
    • HSM Support:支持通过原生的 PKCS#11接口或OpenSSL PKCS#11的接口的HSM( Hardware Security Modules)。
    • DNSSEC with In-line Signing:支持NSEC与NSEC3的安全协议的签名。
    • Catalog Zones:支持多Zone的目录管理。
    • Scalable Master/Slave Hierarchy:支持Master+多Slave组网,Slave从Master同步Zone配置。

作为递归DNS时:

  • NXDOMAIN Redirect:当查询一个不存在域名时,转向一个Web页面,它依赖于DLZ特征。
  • Flexible Cache Controls:对于不正确或过期的域名记录,灵活的缓存控制。
  • Split DNS:通过配置不同的View,来保护部分私有信息。
  • Optimum Cache Hit Rate:通过 DNS pre-fetch 技术来优化缓存命中率。
  • Resolver rate-limiting:在受攻击下,对权威DNS查询限速,减轻对路径解析器的DDoS攻击影响。
  • DNSSEC Validation:支持对DNSSEC的检验。
  • GeoIP:支持基于来源不同的递归DNS的请求给出不同的响应。
  • Response Policy Zone(RPZ):通过响应策略的Zone来减少对被认为是滥用或非法目的Zone的访问。

双License:ISC 与Mozilla Public 2.0。
开发语言:C。
官方网站:https://www.isc.org/

2 PowerDNS

PownerDNS发起于1999年,也是一个老牌的开源DNS了。它可以作为权威(最新版本3.4.11)与递归DNS(最新版本3.7.4)。2011年07月23日,PowerDNS 3.0 正式版发布,主要特性如下:

  • 完全支持 DNSSEC ,包括自动签名、rollovers 和密钥维护
  • TSIG,兼容 MyDNS 的后端
  • 基于 IPv6 的主从结构,并行从节点引擎,MongoDB 支持和 Lua 的区域编辑

欧洲30%+的域名采用PownerDNS,以及全世界75%+的DNSSEC应用。
作为权威DNS时:

  • Standards compliant serving of DNS information from all relevant databases
    • Text files, dynamic scripts in various languages
    • Native support for legacy BIND zonefiles
  • Leading DNSSEC implementation
    • worldwide, hosting >75% of all DNSSEC domains
  • Powerful dynamic abilities
    • Geographical load balancing
    • Content redirection, ‘best answer’ generation
  • Supported on generic hardware running generic operating systems

作为递归DNS时:

  • Standards compliant resolution of domain names
    • Strive for maximum resolution percentage
    • or conversely, least customer complaints
  • Powerful dynamic abilities
    • Content redirection
    • ‘best answer’ generation
    • query & answer modification
    • Filtering
  • Supported on generic hardware running generic operating systems

提供相关的工具:

  • dnsscope: query/answer latency time statistics
  • dnsreplay: replay existing traffic against reference nameservers
  • dnsgram: per-time period sampling of traffic to determine overloads
  • dnswash: anonimize PCAP traces, hiding IP addresses, for third party analysis

支持API,承载在(Local socket,”raw” TCP/IP,RESTful API direct,)

  • Statistics
  • Provisioning
  • Zone editing
  • Master/slave operations
  • Log-file investigations
  • Configuration (updates)
  • Stop/Start/Upgrade/Restart

License:GPL 2.0。
开发语言:C++,扩展:Lua。
官方网站:https://www.powerdns.com/

3 CoreDNS

CoreDNS去年8月份发起新的开源项目,目前已纳入开源基金会CNCF(Cloud Native Computing Foundation,云端原生计算基金会),它归属于Linux基金会。
CoreDNS的前身是SkyDNS,它的主要目的是构建一个快速灵活的DNS服务器,让用户可以通过不同方式访问和使用DNS内的数据。它被设计为Caddy网络服务的一个服务器插件。CoreDNS的每个特性都可以被实现为可插拔的中间件,如,日志、基于文件的DNS以及多种后端技术,进而可以拼接多个插件来创建定制化的管道。CoreDNS已经得到扩展,可以直接被Kubernetes访问服务数据,并以KubeDNS的形式提供给用户使用。
CoreDNS同样可以权威与递归DNS,目前官方的中间件已有31个:

  • bind: Serve zone data from a file; both DNSSEC (NSEC only) and DNS are supported (file).
  • dnssec: Sign zone data on-the-fly
  • cache: Caching
  • etcd: Use etcd as a backend, i.e., a 101.5% replacement for SkyDNS
  • kubernetes: Use k8s (kubernetes) as a backend
  • proxy: Serve as a proxy to forward queries to some other (recursive) nameserver
  • loadbalance:Load balancing of responses
  • rewrite: Rewrite queries (qtype, qclass and qname)

License: Apache-2.0。

开发语言:GO。
官方网站:https://coredns.io/

4 其它

4.1 DNSPod-SR

dnspod-sr是中国最大域名解析服务商DNSPod官方于2012年6月1日开源的一款递归DNS服务器软件。
主要特性:

  • CNAME解析加速
  • A记录组包缓存
  • 请求转发功能
  • 缓存刷新功能
  • HASH表缓存

License:BSD。
开发语言:C。
官方网站:https://github.com/DNSPod/dnspod-sr

4.2 Dnsmasq

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。
作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。
License: GPL-2.0。
开发语言:C。
官方网站:http://www.thekelleys.org.uk/dnsmasq/

4.3 Atomia DNS

Atomia DNS是一个多租户DNS管理系统,通过编程接口处理大量的DNS数据。Atomia DNS支持对PowerDNS和BIND-DLZ DNS服务器的代理,PowerDNS是默认代理选项。
主要特性:

  • 支持DNSSEC
  • 完整,易于使用的API

Atomia DNS License:ISC。
开发语言:PHP。
官方网站:http://atomiadns.com/

4.4 SmartDNS

smartdns是python语言编写,基于twisted框架实现的dns server,能够支持针对不同的dns请求根据配置返回不同的解析结果。smartdns获取dns请求的源IP或者客户端IP(支持edns协议的请求可以获取客户端IP),根据本地的静态IP库获取请求IP的特性,包括所在的国家、省份、城市、ISP等,然后根据我们的调度配置返回解析结果。
smartdns的使用场景:

  1. 服务的多机房流量调度,比如电信流量调度到电信机房、联通流量调度到联通机房;
  2. 用户访问控制,将用户调度到离用户最近或者链路质量最好的节点上。

主要特性:

  • 支持A、SOA、NS记录的查询
  • 支持DNS forward功能

License:未注名
开发语言:Python。
官方网站:https://github.com/xiaomi-sa/smartdns

5 总结

Bind9是最为成熟的DNS Server,代表了DNS的标准,它特性丰富,License友好,使用者众多,是作为权威与递归DNS的首先,缺点是扩展性一般(相对于CoreDNS),安全漏洞相对比较多(也说明使用者多,被研究与攻击多)。
CoreDNS是开源DNS Server的新星,它的架构优秀,扩展性非常好,是非常有前途的DNS;又在Linux基金会下,有Google带头大哥,主创人员为安全公司Infoblox,所谓是背影深厚。但由于项目时间太短,使用未经大规模考验,待它成熟之后,不排除它可能代替Bind9,成为互联网的基础设施。
PowerDNS它有成熟的管理控制系统,相比于Bind9,它提供基于REST API以及基于Lua脚本的扩展能力。但它的License商用不友好。在商用产品中集成或使用它要注意边界,避免使整个产品开源。

(0)

本文由 podipod软库网 作者:DevOps 发表,转载请注明来源!

ToDesk - 安全好用流畅远程控制软件 替代TeamViewer,价格:¥108.00
Eagle - 图片收集管理必备软件 激活码价格:¥119.00
PDF Expert 2 - Mac上优秀的PDF阅读编辑工具,价格:¥119.00

热评文章

发表评论