10万域名求自建DNS解决方案?

来源:千亿游戏平台 作者:千亿游戏网站

  公司现在有10w个域名,目前使用的第三方DNS服务,但更新记录手动加域名等等是一项巨型工作。所以目前我们打算自己部署DNS服务器,我想到使用Bind架…

  很有幸我主导过超大型第三方dns开发(CloudXNS - 免费智能DNS解析服务), 支持海量域名,100多条解析线路,还有很多私有记录,整体系统工作得很好。

  ,我所处在的CDN公司有不少CDN客户将DNS解析直接托管给我们,和CDN的权威DNS混在一块管理(此时CDN的权威DNS也是用BIND),这样的托管数量少没有问题,数量多了 1) 影响CDN调度解析数据的下发速度,2) 也容易产生管理混乱, 3) 由于没有用户界面,客户用邮件形式通知修改,实际修改由运维同事处理,增加运维工作量。

  ,域名托管数量一直在增加,我们团队就开始着手对这类业务拆分到一个新项目cloudxns。起初,我们用BIND+DLZ+NOTIFY+AXFR来做底层支撑,DLZ是让BIND从数据库动态读取解析配置的一个模块。

  BIND+DLZ会让DNS解析查询性能下降到不用DLZ的1/10甚至更多(4-5K QPS),但为了给用户提供一个WEB界面,有个数据库的底层支撑会节省很多工作量,因此我们只用BIND+DLZ做master, 仅提供SLAVE的AXFR复制查询,不对外提供实际DNS解析查询; DLZ的mysql数据和WEB系统打通,WEB系统将用户填写的数据实时写到mysql, 然后出发notify通知SLAVE自动化过来AXFR拉取新版本的DNS配置文件。

  2)“实时生效”(域名*线分钟之内,域名*线)SLAVE的性能没有打任何折扣(10万-20万QPS)

  1)既然已经有成型的产品,而且原有域名托管用户转到自助的CloudXNS上还总体比较满意。

  2)恰恰中国云计算市场在此时开始高歌猛进布道之时,做为网络入口的域名解析,开始成为各大巨头要争的战略要地。

  那么CloudXNS也就被顺利成章包装出去运营,接来下用户数量进一步增加,域名解析行业无法绕过的劫数,黑客军团的时不时利用DDOS攻击也开始向我们“宣战”了。BIND+DLZ+NOTIFY+AXFR方案什么时候会停摆挂掉,一直是像高悬在我们头顶一把利剑。

  我经过一段时间的痛苦挣扎和不断反思,终于决定要放弃BIND, 重新实现一个海量第三方域名解析服务器。

  BIND VIEW*ZONE模型,也就是线路*域名的意思,线路多了,数据冗余很大,如何降低冗余,提高zone_transfer效率,比如很多用户整个东北地 区都是一个解析,但有少部分用户东北每个省有各自的解析,那么多大部分用户按VIEW*ZONE进行zone_transfer将有大量的重复冗余数据。

  要解决的问题(这些问题限于篇幅我就不讲了解决的细节了,大家有兴趣可以登录CloudXNS - 免费智能DNS解析服务):

  3)如何实现一个兼容超精细解析(省*运营商)和普通精细解析(到运营商级别)用户需求的系统。

  1)内核模块,(当初的想法是:路由器那么高的性能,为什么不能把dns服务器当路由器来做?)

  2)dpdk(intel刚刚推出的新技术,不是第一个吃螃蟹,也是第一批没有先后的吃螃蟹人)

  经过整个团队(加我自己,3个C工程师+1.5PHP工程师)3个月的连续奋战,我们顺利攻克了各个

  2)解析配置线路可伸可缩,兼容精超细解析需求和普通精细解析用户(支持线万QPS(实际业务环境由于加了其他一些功能,有所下降)

  软件上没有进行大架构调整,仅进行产品功能迭代,界面改版。开始安排专业运营人员进行运营,知名度也慢慢起来了,有大量知名互联网企业大量使用CloudXNS。

  这时DPDK技术也开始成熟起来了,CloudXNS也开始着手DPDK版本的研发,毕竟内核模块的性能还没有到达网卡限速,而DPDK更容易达到这个目标,这也是抗攻击的最大手段了(除了增加服务器之外)。

上一篇:DNS技术和NAT技术详解
下一篇:DNS智能解析的搭建与配置