我遇到了这些话,好像我是一个好人。大家好,我是小米。这本书继续上述。我介绍了BIND 9的基本结构和模块说明。通常,您可以对Bind 9有初步的了解,并且您可以自己构建一组本地DN。使用它;尽管BIND 9与TAI Mount一样稳定,但功能强大且复杂,配置文件设计也不对用户友好。最初可以预测,将来,Bind 9肯定会使用新语言和配置方法进行重构或重新开发。 ,将其命名为最新的绑定10。当然,这次肯定会很长。可能不可能在5年内离开,因此您仍然可以了解有关Bind 9的更多信息。
今天,我将为PowerDNS简要介绍和构建。最重要的是了解内部配置文件的含义。构造非常简单。要掌握它,您仍然需要了解配置文件的每种情况的使用。
PowerDNS简介
PowerDNS成立于1990年代后期,是开源DNS软件,服务和支持的主要供应商。 2015年成为Open-Xchange的一部分,可以用作权威和递归DNS。
三个主要组成部分:
权威服务器 - PowerDNS权威服务器
递归服务器 - 托管递归
DNS分销商DNSDIST(DOCS)
权威服务器有时称为托管服务器,递归服务器称为缓存服务器,并且DNS发行商也可以称为DNS负载平衡器。
特征
权威服务器和递归服务器和DNS分销商有几个共同点:
权威服务器:
支持普通的绑定区域解析文件,还支持数据库解析记录,包括但不限于MySQL,PostgreSQL,SQLITE3,Microsoft SQL Server,LDAP,LIDAP缓存服务器软件,纯文本文件和许多其他SQL数据库。还支持数据库的主奴隶复制。
提示:BIND 9还支持数据库解析和记录数据,并且需要与DLZ+MySQL或LDAP或DYNDB+LDAP匹配
DNSSEC和TSIG支持,区域2SQL迁移工具,本地和远程访问API以及许多其他功能。您可以直接查看官方网站:
递归服务器:
先进的反欺诈功能,对普通绑定区域文件的支持,本地和远程访问API以及其他功能。您可以直接查看官方网站:
负载平衡器:
动态路由,流量过滤,NxDomain域名重定向和其他功能。您可以直接查看官方网站:
PowerDNS安装环境简介
IP
系统
成分
功能
192.168.10.120
Ubuntu 22.04.1 Lts
PowerDNS权威服务器 + MySQL
权威解析服务器,RR放置在MySQL数据库中
192.168.10.110
Ubuntu 22.04.1 Lts
PowerDNS递归
递归解析服务器缓存服务器软件,转移外部网络递归解析到外部公共DNS
192.168.10.10
Ubuntu 22.04.1 Lts
DNSDist
负载平衡器和分流器
上图是一个简单的PowerDNS服务构建图,其中PDNS-ADMIN是权威PowerDNS服务器的Web界面管理程序,它主要是为了促进Web接口中的RR记录的添加,删除,修改和检查;其中在192.168.10.120在服务器所在的主机上也将PDNS-ADMIN程序部署在权威部署中,官方文档:
安装和部署
PowerDNS权威服务器安装:
阅读源代码汇编的文档:
此安装基于稳定版本,而不是最新的开发版本。该系统是使用官方存储库安装的Ubuntu 22.04.1 LTS。请注意使用它之间的区别:2022年12月9日PowerDNS权威服务器最新稳定版本4.7.3
# 创建官方提供的repo源文件,从官方仓库安装,路径:/etc/apt/sources.list.d/pdns.list
cat >/etc/apt/sources.list.d/pdns.list</etc/apt/preferences.d/pdns<
PowerDNS递归安装:
2022年11月25日PowerDNS递归最新稳定版本4.7.4
阅读源代码汇编的文档:
# 创建官方提供的repo源文件,从官方仓库安装,路径:/etc/apt/sources.list.d/pdns.list
cat >/etc/apt/sources.list.d/pdns.list</etc/apt/preferences.d/pdns<
DNSDIST安装:
2022年11月25日DNSDIST最新稳定版本1.7.3
阅读源代码汇编的文档:
# 创建官方提供的repo源文件,从官方仓库安装,路径:/etc/apt/sources.list.d/pdns.list
cat >/etc/apt/sources.list.d/pdns.list</etc/apt/preferences.d/pdns<
官方存储库:
配置说明
DNSDist
查看官方文件:
配置文件默认路径:
# 执行命令查看状态和启停
systemctl status dnsdist.service
systemctl stop dnsdist.service
systemctl start dnsdist.service
# 配置文件默认在 /etc/dnsdist/dnsdist.conf 示例配置文件:/usr/share/doc/dnsdist/examples/
cat /etc/dnsdist/dnsdist.conf
# -- 设置dnsdist监听套接字
addLocal("127.0.0.1:53")
# -- 允许访问的子网
setACL({'192.168.0.0/16', '2001:DB8:1::/56'})
# -- 监听控制台连接 dnsdist 可以通过加密的 tcp 连接公开命令行控制台,以控制它、调试 DNS 问题和检索统计信息
controlSocket("127.0.0.1:5900")
# -- 设置监听控制台连接密钥
setKey("XXXXX")
# -- 允许哪些地址可以连接访问控制台
setConsoleACL('192.168.10.0/24')
# -- 开启dnsdist的Web服务
webserver("127.0.0.1:8083")
# -- 允许192.168.10.0/24子网的Web访问,不允许192.168.10.1的地址Web访问
setWebserverConfig({password="supersecretpassword", apiKey="supersecretAPIkey", acl="192.168.10.0/24, !192.168.10.1"})
# -- DNS加密
addDNSCryptBind("127.0.0.1:8443", "2.provider.name", "DNSCryptResolver.cert", "DNSCryptResolver.key")
# 定义下游服务器 负载均衡主要配置
newServer("192.0.2.1")
newServer({address="192.0.2.1:5300", pool="abuse"})
如下所示,它是常规负载平衡配置:
# 配置 在114.114.114.114和223.5.5.5之间负载 默认内置负载策略 leastOutstanding
dnsdist -l 130.161.252.29 -a 130.161.0.0/16 114.114.114.114 223.5.5.5 2620:0:ccc::2 2620:0:ccd::2
setLocal("130.161.252.29:53")
setACL("130.161.0.0/16")
newServer("114.114.114.114")
newServer("223.5.5.5")
newServer("2620:0:ccc::2")
newServer("2620:0:0ccd::2")