作者:hosion0723 | 来源:互联网 | 2017-05-12 15:07
利用bind9架设智能DNSmdash;mdash;PostgreSQL数据库篇
智能DNS工作原理:
在用户解析一个域名的时候,判断一下用户的IP,然后跟DNS服务器内部的IP表匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP地址。目前的域名服务运营商不提供智能DNS服务,所以必须自行架设DNS服务或者使用网上免费的智能DNS服务,,如DNSPOD
本实例中我架设的是一个简单的内外解析模式,如果需要增加其他类别(电信、网通)只需添加对于的 view 即可。
bind 在很早以前就已经集成了bind-dlz 数据库模块,可支持sqllit、bdb Mysql PostgreSQL ODBC LDAP等数据源,详见:
本次架设采用PostgreSQL作为数据源实现,数据库已经准备完毕(可使用已有的数据库系统,创建一个新库即可)。
1、配置说明
两个view
local 内部网络
any 其他(公网)
2、创建数据库、表并添加基本记录记录
# zone sample.com
其他域名的添加方式类似,将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 刷新、不能同步的问题。
使用
dnssec-keygen 生成view TSIG key
dnssec-keygen -a hmac-md5 -b 128 -n HOST local
dnssec-keygen -a hmac-md5 -b 128 -n HOST any 将生成的key 填入named.conf 对应的位置
如:
详细见下面的完整配置文件,该配置文件包含文件存储和数据库两种方式(数据库存储已经注视掉),文件存储方式已经包含master slave 之间的TSIG 方式同步。
及在不同的view中使用各自key进行同步。
完整 named.conf 内容