张普:现代DNS系统典型架构

张普:现代DNS系统典型架构

  随着时间的推移,DNS系统早已超出了最初设定的“地址本”功能,随着互联网络的普及,也出现了越来越多的恶意入侵、DDoS攻击等。一个现代的DNS系统从设计之初就应该考虑到这些问题,以及给最终的用户提供一个快速、易用的界面。DNSPod的DNS系统经过几代的发展,现在已经可以很好地满足了上述要求。

  DNS系统的使用入口是站长添加删除记录等,这部分的要求是简单易用,快速生效,所以需要一个强大的队列系统迅速分发数据并保持各个服务器的同步。系统出口则是提供查询服务的53端口。一方面要很好地满足各个不同递归服务器的兼容要求,另一方面,也要防止抵御各式各样的入侵及攻击。中间的核心模块则是提供基本的解析功能,需要尽可能地兼容各种RFC协议同时最大化地提升性能。

  DNSPod的 web 前端使用MySQL数据库存储用户记录,但后端的队列系统并没有使用其主从同步的功能,而是自行从MySQL数据库中读取数据进行分发。这样可以做到10秒内在各个服务器之间生效,一般情况下用户在网站在添加完记录,关闭网页再去服务器请求时,数据已经完成更新。

  DNS服务器之前有黑洞集群防护设备,主要用于检测一些常见的攻击形式,同时也可以接受后端的实时命令,及时封禁域名,修改策略。实现部分智能的攻击防护。而在DNS服务器上,则在内核态运行着攻击检测及相应的保护程序。保护程序实时统计检测本机数据流量,确保不会超过机器最高负荷。攻击检测程序探测数据包特征,实时分析,发现有特征收敛时立即通知前方的黑洞设备,即可在最前方抵御攻击,减少正常服务的压力。

  最终提供服务的标准DNS服务器则可以使用高效的网络编程模式,内存数据库等提升性能,同时及时实现最新的RFC协议,确保跟各大递归服务器之间的无缝连接。

  由此可以看到,DNS系统的构架早已经不是最初的运行特定的服务器软件这么简单,而是成为一个链条,一个大的系统,需要各方面密切配合才能做好。

  【作者简介】

  张普 就职于DNSPod,Inc.,高级系统开发工程师。现从事公司DNS系统开发工作,主要研究方向为Linux内核,网络,数据库开发。




关注ITBear科技资讯公众号(itbear365 ),每天推送你感兴趣的科技内容。

特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。


您可能还会对下面的文章感兴趣: