当前位置:Gxlcms > mysql > 利用bind9架设智能DNSPostgreSQL数据库篇

利用bind9架设智能DNSPostgreSQL数据库篇

时间:2021-07-01 10:21:17 帮助过:30人阅读

利用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 内容

    linux

    人气教程排行