菜鸡源码,专注精品下载!
当前位置:首页 > 建站教程 > 运营推广

使用PowerDNS进行内网DNS解析

发布时间:2024-01-04  栏目:运营推广   浏览:   分类:DNS解析

PowerDNS是一个开源的、功能强大的DNS服务器,它可以用于实现内网DNS解析。在内网中,我们可以使用PowerDNS作为主DNS服务器,为内网中的计算机提供域名解析服务。这样,当内网中的计算机需要访问外部网站时,它们会将请求发送到PowerDNS服务器,然后由PowerDNS服务器负责将请求转发到外部DNS服务器进行解析。此外,PowerDNS还支持多种DNS协议,如A、AAAA、CNAME等,可以满足不同的需求。总之,利用PowerDNS实现内网DNS解析是一种简单而有效的方法。

部署环境

公司内部安装powerdns实现局域网服务DNS解析,避免通过ip访问。

系统: CentOS 7.9

mysql版本: 5.7.33

pdns版本: 4.4.1

pdns-recursor版本: 4.4.2

PowerDNS-admin版本: 0.2.3

DNS服务器主机: 10.x.x.109

测试服务器ip: 10.y.y.195

使用docker方式安装mysql,docker-compose.yml如下所示:

---version:'3.7'services:mysql:hostname:mysqlcontainer_name:mysqlrestart:alwaysimage:mysql:5.7.33ports:-3306:3306command:['--default-authentication-plugin=mysql_native_password','--max_connections=5000','--expire_logs_days=5','--character-set-server=utf8mb4','--collation-server=utf8mb4_unicode_ci','--slow_query_log=on','--long_query_time=2','--slow_query_log_file=/var/lib/mysql/slow_query.log']environment:MYSQL_DATABASE:powerdnsMYSQL_ROOT_PASSWORD:XpWxxxxx0WmEMYSQL_USER:normalMYSQL_PASSWORD:2GVoxxxxxtUsI5yvolumes:-/data/mysql/data:/var/lib/mysql-/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro-./my.cnf:/etc/mysql/my.cnfnetworks:-mysqlnetworks:mysql:external:true

mysql配置my.cnf如下:

[mysqld]pid-file=/var/run/mysqld/mysqld.pidsocket=/var/run/mysqld/mysqld.sockdatadir=/var/lib/mysqlsecure-file-priv=NULL#Disablingsymbolic-linksisrecommendedtopreventassortedsecurityriskssymbolic-links=0sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONslow_query_log=onlong_query_time=2slow_query_log_file=/var/lib/mysql/slow_query.loglog_queries_not_using_indexes=ONmax_connections=4000skip-name-resolve#lower_case_table_names=1#Customconfigshouldgohere!includedir/etc/mysql/conf.d/

配置powerdns yum源

yuminstallepel-releaseyum-plugin-priorities&&curl-o/etc/yum.repos.d/powerdns-auth-44.repohttps://repo.powerdns.com/repo-files/centos-auth-44.repo&&yummakecachefast

安装pdns及pdns连接mysql插件

yuminstallpdns.x86_64pdns-backend-mysql.x86_64

修改pdns.conf配置:

api=yesapi-key=Qno9k64Vkkkyfz1LtC3klkdaemon=noguardian=nolaunch=gmysqlgmysql-host=10.x.x.109gmysql-port=3306gmysql-dbname=powerdnsgmysql-user=rootgmysql-password=XpWxxxxx0WmElocal-address=0.0.0.0,::local-port=5300setgid=pdnssetuid=pdnswebserver=yeswebserver-address=0.0.0.0webserver-allow-from=0.0.0.0/0webserver-port=8081

初始化数据库:

mysql-h10.x.x.109-uroot-pXpWxxxxx0WmE-e"usepowerdns;source/usr/share/doc/pdns-backend-mysql-4.4.1/schema.mysql.sql;"

启动pdns服务:

systemctlstartpdns&&systemctlenablepdns

安装递归查询服务pdns-recursor

配置yum源

curl-o/etc/yum.repos.d/powerdns-rec-44.repohttps://repo.powerdns.com/repo-files/centos-rec-44.repo&&yummakecachefast

安装pdns-recursor

yuminstallpdns-recursor

修改pdns-recursor配置文件pdns-recursor.conf

allow-from=10.10.0.0/16,10.20.0.0/16#对应权威服务器的allow-recursion允许哪些ip进行递归#forward-zones=mydomain.com=10.x.x.109:5300#哪些域名需要自己的权威服务器来解析,域名=权威服务器ip:端口forward-zones-file=/etc/pdns-recursor/zonesforward-zones-recurse=.=223.5.5.5,.=180.76.76.76,.=114.114.114.114#除forward-zones外其他所有的请求发至223.5.5.5,180.76.76.76,114.114.114.114local-address=0.0.0.0#对应权威服务器的local-addresslocal-port=53setgid=pdns-recursorsetuid=pdns-recursor

配置哪些域名强制走内网dns解析,/etc/pdns-recursor/zones配置如下

+mydomain.com=10.x.x.109:5300test.dev.mydomain.com=10.x.x.109:5300test2.prod.mydomain.com=10.x.x.109:5300

启动pdns-recursor服务

systemctlstartpdns-recursor&&systemctlenablepdns-recursor

安装PowerDNS管理后台服务powerdns-admin,docker-compose.ymk如下

---version:'3.7'services:powerdnsadmin:hostname:pdnsadmincontainer_name:pdnsadminimage:ngoduykhanh/powerdns-admin:0.2.3restart:alwaysports:-80:80networks:-pdnsvolumes:-/data/pdnsadmin/data:/datalogging:driver:json-fileoptions:max-file:'3'max-size:'10m'networks:pdns:driver:bridgeexternal:true

访问powerdns-admin页面并配置接口信息

添加A记录

修改测试客户端10.y.y.195的dns ip为10.x.x.109并解析上一步添加的A记录

解析A记录

解析baidu.com,通过内网递归查询到外部域名

至此内网单机版dns服务器部署完毕,可以正常解析域名。

相关文章

    无相关信息
评论
运营推广
建站知识
使用技巧
调试安装
运营推广