DNS BIND DLZ实现智能DNS

全世界范围内标准DNS服务器是BIND。尽管被流传了许多年,经过多次修改,BIND的基本功能保持不变。遗憾的是,有一些不好的缺陷。
 * BIND从文本文件中获取数据,这样容易因为编辑错误出现问题。
 * BIND需要将数据加载到内存中,如果域或者记录较多,会消耗大量的内存。
 * BIND启动时解析Zone文件,对于一个记录较多的DNS来说,会耽误更多的时间。
 * 如果最近修改一条记录,那么要重新加载或者重启BIND才能生效,可能会影响客户端查询。
而bind-dlz主要解决上述缺陷而诞生, 对Zone文件操作也更方便了,直接对数据库操作,可以很方便扩充及开发管理程序。
DLZ不是一个dns服务器,只是bind9的一个补丁,为简化了管理,减少了内存的使用和启动时间。使用DLZ可以将ZONE文件数据库数据存储在数据库,当数据库变化后,即可在BIND的响应DNS查询到最新数据,不需要重启或重新加载配置。DLZ支持数据库 PostgreSQL, MySQL, Berkeley DB, ODBC (thus Firebird, DB2, Oracle, Sybase, SAPDB) and LDAP,它也可以使用一个标准的文件系统作为数据库,如果现有的驱动不满足,也支持API实现自定义驱动开发。DLZ不会影响bind现有的特性,你仍然可以使用标准的dns zone文件。

官网:http://bind-dlz.sourceforge.net/

bind9 最新版本安装包中已经包含DLZ:/contrib/dlz,只需要在安装bind的时候安装该插件即可:--with-dlz-mysql。
在配置DLZ前需要数据库的支持,这里我们选择mysql。关于DZL的安装部署请参考:智能DNS(Bind dlz)在企业中的应用

处理流程:

1.通过web管理页面,将域名的配置添加到mysql数据库中

2.当bind响应dns查询时,通过DLZ使用SQL查询最新的解析记录

文件下载

1.bind配置

2.web管理(基于php+mysql)

修改common下的config中数据库的配置,默认用户admin/111111




mysql使用配置参考:http://bind-dlz.sourceforge.net/mysql_driver.html

大家可以解析自己公司的情况修改程序实现自己的dns服务器。可以通过mysql的主从实现多台dns服务器,提高其可用性。

参考文章:

1.Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法

你可能感兴趣的:(dns)