利用bind9架设智能DNS——PostgreSQL数据库篇

2014-11-24 18:25:16 · 作者: · 浏览: 0

在用户解析一个域名的时候,判断一下用户的IP,然后跟DNS服务器内部的IP表匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP地址。目前的域名服务运营商不提供智能DNS服务,所以必须自行架设DNS服务或者使用网上免费的智能DNS服务,如DNSPOD


本实例中我架设的是一个简单的内外解析模式,如果需要增加其他类别(电信、网通)只需添加对于的 view 即可。


bind 在很早以前就已经集成了bind-dlz 数据库模块,可支持sqllit、bdb Mysql PostgreSQL ODBC LDAP等数据源,详见:http://bind-dlz.sourceforge.net/


本次架设采用PostgreSQL作为数据源实现,数据库已经准备完毕(可使用已有的数据库系统,创建一个新库即可)。


1、配置说明
两个view
local 内部网络
any 其他(公网)


两台DNS服务器
master dns 10.0.0.8 222.222.222.8
slave dns 10.0.0.9 222.222.222.9


2、创建数据库、表并添加基本记录记录


其他域名的添加方式类似,将zone项替换为对于的域名即可



3、bind 编译安装及配置


rpm包默认不支持dlz模式,需要使用源码编译


以下安装路径为系统默认路径


配置文件 /etc/named.conf


其他配置文件路径 /etc/named/


4、创建相关配置文件



查看是否存在 /etc/rndc.key 文件,如果没有就生成一个
rndc-confgen -a -c rndc.key


默认的rndc.key 文件中的key名称 好像是 rndckey


手动生成的key名称是 rndc-key


key的名称一定要一致,否则会出现不能使用 rndc 刷新、不能同步的问题。


如:



详细见下面的完整配置文件,该配置文件包含文件存储和数据库两种方式(数据库存储已经注视掉),文件存储方式已经包含master slave 之间的TSIG 方式同步。


及在不同的view中使用各自key进行同步。


完整 named.conf 内容