[svc]powerdns+mysql,实现私有作用域转发

首先我要实现如下方案


要求要有api,即对数据库增删记录,不用重启dns服务器.

这里选用powerdns+mysqlbackend实现.我还有一篇使用bind+mysqlbackend实现:http://blog.csdn.net/iiiiher/article/details/78548440
不过pdns更加简单一些.

参考

  • 编译安装参考:
    https://github.com/PowerDNS/pdns

  • 管理界面安装参考:
    https://github.com/ngoduykhanh/PowerDNS-Admin

yum install python-devel openldap-devel

pdns安装

参考:
https://doc.powerdns.com/authoritative/guides/basic-database.html#

值得注意的是4.x以后pdns被分割成了3个组件,分别是PowerDNS Authoritative Server和PowerDNS Recursor.
这里centos7,yum安装的是pdns-3.4.11-1.el7.x86_64

  • yum安装
    主要看下这个文档
    参考:https://doc.powerdns.com/authoritative/installation.html
yum install pdns-backend-mysql -y
  • 修改pdns配置
    需要注意开启内置的httpapi,参考文档上的是4.x的,yum安装的3.x的
    参考这个: https://github.com/ngoduykhanh/PowerDNS-Admin 设置.
experimental-json-interface=yes
experimental-api-key=changeme
webserver=yes
webserver-address=0.0.0.0

launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=root
gmysql-dbname=pdns
gmysql-password=mysecretpassword

#recursor=114.114.114.114
recursor=192.168.100.100    #这是我内网dns
allow-recursion=0.0.0.0/0
  • 调试
# /usr/sbin/pdns_server --daemon=no --guardian=no --loglevel=9
  • 数据库需要插入数据
    3.x和4.x表结构都一样

安装pdnsadmin

官方有个基于php的,太重,于是找了个flask的部署上去了.
https://github.com/ngoduykhanh/PowerDNS-Admin

遇到的问题

转发有问题.是对应域中有SOA记录,登录数据库干掉就这个soa记录就可以转发了.这里应该学学dns种类了.

你可能感兴趣的:([svc]powerdns+mysql,实现私有作用域转发)