感谢为您解答此问题。在了解dns服务器之前,让我们先谈谈什么dns?dns就是域名系统,属于互联网基础服务,其实,dns就是一分布式内存数据库,实现域名到ip地址的映射,完成用户日常的域名解析服务。
dns服务器有很多种,目前开源的有bind,powerdns,knot dns和knot resolver,unbound等等。还有微软的azure dns,但其不开源,可提供免费试用。不管采用什么dns服务器,递归解析目前是由icann提供的13组根服务器完成的。
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服务器,动态加载配置文件、对缓存操作等内容
7)主从服务器间区域传输。
bind架构图如下所示:
bind可应用在个人,企业,大学及政府机关,部署dns服务器,现在大部分采用bgp anycast,通过路由算法,实现最近的机器响应dns解析,减少延迟。
2. powerdns
powerdns是以c 开发的,支持区域数据文件和关系数据库后端作为dns缓存的数据中心。即可以做递归服务器,又可以做权威服务器。支持dnssec及多线程运行等特性。其中,dnsdist是一个高性能的负载均衡器 ,通过lua语法配置,可以动态更新配置文件。
3. knot dns
knot dns是一款权威dns服务器,由cz.nic开发,采用rcu(read copy update)锁和基数树(radix tree)来实现多线程技术,充分发挥其dns服务器性能。
4. knot resolver
同属于knot生态家庭的knot resolver是一款轻量级的高性能缓存dns服务器,采用c语言和luajit实现,提供了lua接口来操作内部dns协议,包括对缓存的操作。命令行工具kresd简化了knot resolver的操作。
5. azure dns
微软的azure dns也是优秀的dns服务器,同样,采用anycast部署,可实现域名资源记录秒级更新,通过部署dns防火墙可缓解钓鱼和数据泄露及部分ddos攻击,进而实现dns服务器安全。
6. unbound
unbound是一款缓存dns服务器,由nlnetlabs开发,为了保护隐私,支持通过dns-over-tls( dot)来加密,此外,为了防止dns劫持,还支持dnssec验证。unbound获得了bsd许可,可以运行在windows和常见发行版linux系统中,支持异步dns查询,最新版本为1.9.4。
当然,如果对dns不是很熟悉,可以参考下我的文章,“初识互联网基础服务:域名系统”,链接:***/i6749787295169118727/, 欢迎批评指正。此外,关于互联网技术交流,可在下方评论区留言,我们共同探讨。
dns服务器,也叫域名解析服务器。通俗点说就是提供一个名称到地址的转换。因为信息在网络中传输,依靠的不是*** 这种域名,而是 10.15.23.45这种ip。域名的产生仅仅是为了方便人们记忆。
以百度举例,想要访问百度网站,你可以直接在浏览器访问*** 也可以直接访问 61.135.185.32这个ip,效果是一样的。但是因为人类对数字不敏感,记住*** 很明显比记住61.135.185.32 这个ip要更容易一些。所以dns就应运而生,这就使得我们不用费力去记忆ip,更不用去查自己的笔记本。只要输入你想访问的地址域名,dns就会告诉网络,应该去访问那个ip。
下面的过程就是计算机dns的一个转换过程。
c:usershack>ping ***
正在 ping *** [61.135.185.32] 具有 32 字节的数据:
来自 61.135.185.32 的回复: 字节=32 时间=4ms ttl=56
来自 61.135.185.32 的回复: 字节=32 时间=24ms ttl=56
来自 61.135.185.32 的回复: 字节=32 时间=88ms ttl=56
来自 61.135.185.32 的回复: 字节=32 时间=56ms ttl=56
通过上述过程,可以看到dns服务将域名转换成了ip地址。
本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。e-mail:dandanxi6@qq.com