AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[powerdns](server)

Martin Hope
Nick Williams
Asked: 2024-12-29 09:46:44 +0800 CST

PowerDNS Recursor 服务器昨晚停止解析大约一半的域名;我建立了一个新服务器,它仍然在做同样的事情

  • 5

我有一个现有的 PowerDNS Recursor 4.0.4 服务器,运行在 Debian Jessie 8 上(我知道,我知道,已经过时了……我马上就来)。它处理我家庭实验室网络的所有 DNS 请求。它的配置相当简单,并且已经连续工作了好几年,没有中断过。它还配置为验证并成功验证了所有 DNSSEC。

昨晚午夜刚过,它停止解析全球大约一半的域名,然后SERVFAIL又返回。有时它会解析主域名(例如athenahealth.com),但不会解析子域名(例如20785-1.portal.athenahealth.com)。有时它不会解析主域名(例如serverfault.com或askubuntu.com)。我找不到任何模式,无论我如何修改配置(包括完全关闭 DNSSEC),都无法解决问题。

我的下一个想法是我需要升级 PowerDNS Recursor,但由于我的 DNS 服务器太旧,我无法升级。因此,我在 Ubuntu 24.04.1 上构建了一个运行 PowerDNS Recursor 5.1.3 的全新服务器。同样,配置很简单。这是主要文件:

$ cat /etc/powerdns/recursor.conf 
dnssec:
  # validation: process # default
  trustanchorfile: /usr/share/dns/root.key
recursor:
  hint_file: /usr/share/dns/root.hints
  include_dir: /etc/powerdns/recursor.d
#incoming:
 # listen:
 # - 127.0.0.1 # default
#outgoing:
 # source_address:
 # - 0.0.0.0 # default

这是一个文件recursor.d:

$ cat /etc/powerdns/recursor.d/me.yml 
dnssec:
  validation: off # validate
#  log_bogus: true
incoming:
  listen:
    - 10.20.30.76:53
logging:
  common_errors: true
  facility: 1
  loglevel: 6
  quiet: true
  trace: fail
recursor:
  auth_zones:
    - zone: my-domain-1.com
      file: /etc/powerdns/my-domain-1.com.zone
  forward_zones:
    - zone: my-domain-2.com
      forwarders:
        - 10.20.31.2
  setgid: pdns
  setuid: pdns
  socket_dir: /var/run
  write_pid: true
webservice:
  address: 10.20.30.76
  allow_from:
    - 10.20.30.0/24
    - 172.24.52.0/24
  api_key: loremipsum
  password: foobarbazqux
  port: 8080

此配置与我以前的 PowerDNS Recursor 配置相同,只是禁用了 DNSSEC 以尝试使其正常工作。如果我从根目录开始手动dig(我喜欢dig)askubuntu.com,我很容易找到答案:

# Using i.root-servers.net is 192.36.148.17
$ dig @192.36.148.17 com NS

; <<>> DiG 9.10.6 <<>> @192.36.148.17 com NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2217
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 21

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;com.               IN  NS

;; ANSWER SECTION:
com.            136670  IN  NS  d.gtld-servers.net.
com.            136670  IN  NS  c.gtld-servers.net.
com.            136670  IN  NS  k.gtld-servers.net.
com.            136670  IN  NS  f.gtld-servers.net.
com.            136670  IN  NS  i.gtld-servers.net.
com.            136670  IN  NS  b.gtld-servers.net.
com.            136670  IN  NS  l.gtld-servers.net.
com.            136670  IN  NS  a.gtld-servers.net.
com.            136670  IN  NS  e.gtld-servers.net.
com.            136670  IN  NS  m.gtld-servers.net.
com.            136670  IN  NS  j.gtld-servers.net.
com.            136670  IN  NS  h.gtld-servers.net.
com.            136670  IN  NS  g.gtld-servers.net.

;; ADDITIONAL SECTION:
b.gtld-servers.net. 43604   IN  A   192.33.14.30
b.gtld-servers.net. 71837   IN  AAAA    2001:503:231d::2:30
l.gtld-servers.net. 44115   IN  A   192.41.162.30
l.gtld-servers.net. 74612   IN  AAAA    2001:500:d937::30
a.gtld-servers.net. 59944   IN  A   192.5.6.30
a.gtld-servers.net. 52029   IN  AAAA    2001:503:a83e::2:30
e.gtld-servers.net. 11582   IN  A   192.12.94.30
e.gtld-servers.net. 63219   IN  AAAA    2001:502:1ca1::30
m.gtld-servers.net. 27782   IN  A   192.55.83.30
m.gtld-servers.net. 50020   IN  AAAA    2001:501:b1f9::30
j.gtld-servers.net. 39663   IN  A   192.48.79.30
h.gtld-servers.net. 79936   IN  A   192.54.112.30
g.gtld-servers.net. 57527   IN  A   192.42.93.30
g.gtld-servers.net. 63219   IN  AAAA    2001:503:eea3::30
d.gtld-servers.net. 44435   IN  A   192.31.80.30
d.gtld-servers.net. 10633   IN  AAAA    2001:500:856e::30
c.gtld-servers.net. 50185   IN  A   192.26.92.30
k.gtld-servers.net. 32146   IN  A   192.52.178.30
i.gtld-servers.net. 48002   IN  A   192.43.172.30
i.gtld-servers.net. 27967   IN  AAAA    2001:503:39c1::30

$ dig @192.33.14.30 askubuntu.com NS

; <<>> DiG 9.10.6 <<>> @192.33.14.30 askubuntu.com NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46168
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 13

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;askubuntu.com.         IN  NS

;; ANSWER SECTION:
askubuntu.com.      86400   IN  NS  sureena.ns.cloudflare.com.
askubuntu.com.      86400   IN  NS  damian.ns.cloudflare.com.

;; ADDITIONAL SECTION:
damian.ns.cloudflare.com. 48087 IN  A   172.64.35.50
damian.ns.cloudflare.com. 48087 IN  A   162.159.44.50
damian.ns.cloudflare.com. 48087 IN  A   108.162.195.50
damian.ns.cloudflare.com. 13178 IN  AAAA    2803:f800:50::6ca2:c332
damian.ns.cloudflare.com. 13178 IN  AAAA    2606:4700:58::a29f:2c32
damian.ns.cloudflare.com. 13178 IN  AAAA    2a06:98c1:50::ac40:2332
sureena.ns.cloudflare.com. 38809 IN A   108.162.194.126
sureena.ns.cloudflare.com. 38809 IN A   172.64.34.126
sureena.ns.cloudflare.com. 38809 IN A   162.159.38.126
sureena.ns.cloudflare.com. 32427 IN AAAA    2a06:98c1:50::ac40:227e
sureena.ns.cloudflare.com. 32427 IN AAAA    2803:f800:50::6ca2:c27e
sureena.ns.cloudflare.com. 32427 IN AAAA    2606:4700:50::a29f:267e

$ dig @172.64.35.50 askubuntu.com A

; <<>> DiG 9.10.6 <<>> @172.64.35.50 askubuntu.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35705
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;askubuntu.com.         IN  A

;; ANSWER SECTION:
askubuntu.com.      300 IN  A   172.64.150.156
askubuntu.com.      300 IN  A   104.18.37.100

完美。但是如果我询问我现有的 PowerDNS Recursor 4.0.4 服务器或我的新 PowerDNS Recursor 5.1.3 服务器,我会得到SERVFAIL:

$ dig @10.20.30.76 askubuntu.com A

; <<>> DiG 9.10.6 <<>> @10.20.30.76 askubuntu.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58213
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
; OPT=15: 00 16 64 65 6c 65 67 61 74 69 6f 6e 20 63 6f 6d ("..delegation com")
;; QUESTION SECTION:
;askubuntu.com.         IN  A

OPT=15带有某种签名加号的行很delegation com有趣。这种情况不会发生在每个无法解析的域上,因此它可能是一个转移注意力的借口(并且它会发生变化……例如再次运行相同的查询会导致OPT=15: 00 16 64 65 6c 65 67 61 74 69 6f 6e 20 61 73 6b 75 62 75 6e 74 75 2e 63 6f 6d ("..delegation askubuntu.com"))。

以下是 PowerDNS Recursor 5.1.3 查找失败的跟踪信息askubuntu.com: https: //gist.github.com/beamerblvd/d8fa24bdf1037e2a670f8e331b7e4905

值得一提的是,我在康卡斯特商务舱拥有 5 个地址的静态 IP 委派。

我做错什么了?

powerdns
  • 1 个回答
  • 39 Views
Martin Hope
user3482229
Asked: 2022-02-03 15:32:41 +0800 CST

75.75.75.75(康卡斯特 DNS)无法解析 ironpawsllc.com

  • 0

IronPawsLLC.com 不可 ping,给出 NXDOMAIN,并且在使用 dig @75.75.75.75 ironpawsllc.com 时得到 0 个答案。到目前为止,我测试过的所有其他 DNS 服务器都已解析。IronPawsLLC.com 是一个运行 CPanel、Centos7 和 PowerDNS 权威的 HostGator VPS4000。CPanel 和 HostGator 已经反复研究过。康卡斯特说他们不知道发生了什么。

IronPawsLLC.com 的 IP 162.240.41.15 不在任何黑名单上,包括 Comcasts。如果有任何后果,服务器是从 108.179.251.79 迁移过来的。

为简洁起见,我只是列出了一些 DNS 配置花絮。

DNS 区域是:

162-240-41-15.www.hostgator.com
41.240.162.in-addr.arpa
cloud-ci.unifiedlayer.com
ironpawsllc.com

DNS 胶水是:

ironpawsllc.com.    3600    SOA 
Serial: 2022020103
Mname: ns1.ironpawsllc.com
Retry: 1800
Refresh: 3600
Expire: 1209600
Rname: [email protected]

ironpawsllc.com.    3600    NS  ns1.ironpawsllc.com
ironpawsllc.com.    3600    NS  ns2.ironpawsllc.com
ironpawsllc.com.    3600    A   162.240.41.15
ns1.ironpawsllc.com.    3600    A   162.240.41.15
ns2.ironpawsllc.com.    3600    A   162.240.41.68
5594881.ironpawsllc.com.    14400   A 162.240.41.15

我还是服务器管理的新手,任何见解都值得赞赏。

centos domain-name-system dns-zone powerdns
  • 1 个回答
  • 122 Views
Martin Hope
navotera
Asked: 2022-01-16 00:34:18 +0800 CST

PowerDNS Slave 拒绝接收通知 notify Refused-*

  • 0

您好,我收到错误:通知从服务器上的 Refused-等待从主服务器更新记录。

我已经使用官方 PowerDNS ansible 和徒手在新服务器上安装了 PowerDNS(真的测试了这两种方法!:D)

这是配置和详细信息。

规格
PowerDNS 版本:4.5.2
Ubuntu 20.04 后端:mysql

主配置
pdns.conf

发射=
允许-axfr-ips=159.223.76.221/32
配置目录=/etc/powerdns
守护进程=是
禁用-axfr=否
监护人=是
本地地址=0.0.0.0
本地端口=53
日志-dns-详细信息=打开
日志级别=3
主人=是
从机=否
setgid=pdns
setuid=pdns
套接字目录=/var/pdns
版本字符串=powerdns
包含目录=/etc/powerdns/pdns.d
api=是
api-key=24xd

我可以毫无问题地在主服务器上添加任何记录。

从站配置
pdns.conf

发射=
#监护人=是
守护进程=开启
日志-dns-详细信息=打开
奴隶=是
从机周期间隔=60
记录设施=0
日志-dns-查询=是
日志级别=5
包含目录=/etc/powerdns/pdns.d

在主服务器上的通知命令上:

pdns_control 通知 gogon.xyz

根据从 DNS上的命令:

tcpdump -n '主机 128.199.220.234 和端口 53' -v

这是我得到的:

tcpdump:监听 eth0,链接类型 EN10MB(以太网),捕获大小 262144 字节 08:06:08.926420 IP(tos 0x0, ttl 60, id 24776, offset 0, flags [DF], proto UDP (17), length 55 )128.199.220.234.11643 > 159.223.76.221.53: 10150 通知 [b2&3=0x2400] SOA?gogon.xyz。(27) 08:06:08.928383 IP (tos 0x0, ttl 64, id 20439, offset 0, flags [none], proto UDP (17), length 55) 159.223.76.221.53 > 128.199.220.234.11643: 10150 notify拒绝*- 0/0/0 (27)

一些在线资源建议我允许打开端口 53/UDP。这是我的 UFW 状态:

53/tcp 允许 任何地方
53/udp 允许 任何地方
53/tcp(v6) 允许 任何地方(v6)
53/udp (v6) 允许 任何地方(v6)

在Slave上还添加了数据库中的记录:

+-----------------+----------+-------- -+
| 知识产权 | 域名服务器 | 帐户 |
+-----------------+----------+-------- -+
| 128.199.220.234 | ns2.share-system.com | 管理员 |
+-----------------+----------+-------- -+

记录在域的Master上

--+
| 编号 | domain_id | 姓名 | 类型 | 内容 | ttl | 优先 | 残疾人| 订单名 | 认证 |
+----+------------+------------+------+------------- -------------------------------------------------- ----------------------+--------+------+----------+- ----------+------+
| 1 | 1 | gogon.xyz | SOA | ns1.share-system.com hostmaster.share-system.com 2022011603 28800 7200 604800 86400 | 86400 | 0 | 0 | 空 | 1 |
| 2 | 1 | gogon.xyz | NS | ns1.share-system.com | 86400 | 0 | 0 | 空 | 1 |
| 3 | 1 | gogon.xyz | NS | ns2.share-system.com | 86400 | 0 | 0 | 空 | 1 |
| 4 | 1 | gogon.xyz | 一个 | 128.199.220.234 | 86400 | 0 | 0 | 空 | 1 |
+----+------------+------------+------+------------- -------------------------------------------------- ----------------------+--------+------+----------+- ----------+----

ns1.share-sytem.com 和 ns2.share-system.com 记录 A 已添加到域控制及其基于主从 IP 的名称服务器记录(ns1 -> 主,ns2 -> 从)

测试域 gogon.xyz 也分别添加到了 ns1 和 ns2 在此处输入图像描述

我已经将 pnds.conf 中的从属更改为辅助,将主更改为主,但没有任何成功。

在检查监听端口时:

udp UNCONN 0 0 159.223.76.221:53 0.0.0.0:* 用户:(("pdns_server",pid=9966,fd=5))
tcp LISTEN 0 128 159.223.76.221:53 0.0.0.0:* 用户:(("pdns_server",pid=9966,fd=6))

两台服务器之间的 ping 正常工作没有任何问题。

任何解决此问题的建议表示赞赏。

谢谢你。

ubuntu domain-name-system ubuntu-20.04 powerdns
  • 2 个回答
  • 641 Views
Martin Hope
inbal stoli
Asked: 2021-07-28 21:59:41 +0800 CST

powerdns 递归日志记录不起作用

  • 2

我正在尝试使用 rsyslog 设置带有查询日志记录到特定日志文件的 powerdns 递归器。当我设置它并尝试查询某个地址并查看查询日志文件时,每一行都加倍,它也发生在日志中。我不知道该怎么做有人可以帮助我吗?

这是我总结的配置文件:

/etc/pdns-recursor/recursor.conf -

allow-from=192.168.4.0/24
forward-zones-recurse=.=8.8.8.8
local-address=192.168.4.102
log-timestamp=no
logging-facility=0
loglevel=5
quiet=no
security-poll-suffix=
setgid=pdns-recursor
setuid=pdns-recursor

/etc/rsyslog.conf -

/etc/rsyslog.conf 第 2 节

在 /usr/lib/systemd/system/pdns-recursor.service 中将 execstart 设置为:

ExecStart=/usr/sbin/pdns_recursor --daemon=no --write-pid=no --disable-syslog=no --log-timestamp=no
linux domain-name-system powerdns powerdns-recursor
  • 1 个回答
  • 935 Views
Martin Hope
danone
Asked: 2020-09-14 05:35:51 +0800 CST

Powerdns GeoIP 无法加载模块“/usr/lib64/pdns/libgeoipbackend.so”:

  • 0

我正在尝试激活 powerdns 上的 geoip 模块,但收到奇怪的错误消息。已安装 GeoIP 数据库

包 GeoIP-1.6.12-7.el8.x86_64 已安装。Centos 8 nginx

/etc/pdns/pdns.conf

launch=gmysql
gmysql-host=localhost
gmysql-user=myuser
gmysql-password=mysqlpsw
gmysql-dbname=powerdns-db

launch+=geoip
geoip-database-files=/home/tiramus/www/geoip2/GeoLite2-City.mmdb
geoip-zones-file=/etc/pdns/geo.yml
geoip-database-cache=memory

版本

[root@srv2-gb usr]# pdns_control version
4.3.0

无法加载模块'/usr/lib64/pdns/libgeoipbackend.so':/usr/lib64/pdns/libgeoipbackend.so:无法打开共享对象文件:没有这样的文件或目录

(编辑)后端 yum 添加

================================================================================
 Package                      Arch        Version          Repository      Size
================================================================================
Installing:
 pdns-backend-ldap            x86_64      4.3.0-5.el8      epel           100 k
 pdns-backend-lua2            x86_64      4.3.0-5.el8      epel           115 k
 pdns-backend-pipe            x86_64      4.3.0-5.el8      epel            65 k
 pdns-backend-postgresql      x86_64      4.3.0-5.el8      epel            58 k
 pdns-backend-remote          x86_64      4.3.0-5.el8      epel           177 k
 pdns-backend-sqlite          x86_64      4.3.0-5.el8      epel            46 k
 pdns-backend-tinydns         x86_64      4.3.0-5.el8      epel            69 k
Installing dependencies:
 tinycdb                      x86_64      0.78-9.el8       AppStream       35 k

Transaction Summary
================================================================================
Install  8 Packages

没有地理

domain-name-system centos8 powerdns
  • 1 个回答
  • 416 Views
Martin Hope
mncache
Asked: 2020-08-07 06:18:32 +0800 CST

使用 powerdns 和 Squid 构建自己的智能 dns 代理到 socks5

  • 0

我想构建自己的小型智能 dns-proxy 服务器,具有以下功能:

  1. 客户端设置 DNS 服务器,如(2.2.2.2 <- 我的 DNS 服务器包括代理鱿鱼)
  2. 客户端发送对特殊域的请求(youtube.com 等)
  3. DNS 响应:2.2.2.2(我的代理服务器)
  4. 我的代理现在连接到另一个位置代理:3.3.3.3:6060 (SOCKSv5)
  5. 我的代理正在获取请求的内容并将其仅发送回客户端。

所以我的目标是只向 SOCKS 代理发送这个特定的请求。

例如,软件 powerdns 和 squid 是否有可能?

谢谢。

linux domain-name-system proxy squid powerdns
  • 1 个回答
  • 1327 Views
Martin Hope
Koen Vuurens
Asked: 2020-04-08 14:55:40 +0800 CST

PowerDNS主从配置问题

  • 0

在我的 2 节点 PowerDNS 集群的主节点上,我在我的测试环境中找到所有要部署到生产的细节,我在日志中收到以下错误:

Request to queue notification for domain 'domain.example' was processed, but no valid nameservers or ALSO-NOTIFYs found. Not notifying!

这与该域上的 NS / A 记录有关,只是我现在找不到我必须做的事情,似乎我的配置是正确的。

主配置:

allow-axfr-ips=10.10.30.32
master=yes
slave=no

从站配置:

allow-axfr-ips=10.10.30.31
master=no
slave=yes

在从节点上,我还在数据库中添加了以下记录:

MariaDB [powerdns]> select * from supermasters;
+-------------+--------------------+---------+
| ip          | nameserver         | account |
+-------------+--------------------+---------+
| 10.10.30.31 | ns2.domain.example | admin   |
+-------------+--------------------+---------+

正如我在文档中所读到的,我个人认为这与数据库有关:

• 名称服务器必须正确设置为NS 域记录,即为每个从属定义一个NS 和A 记录。

• 必须在域表中基于每个域配置主/从状态。即类型列必须分别是 MASTER 或 SLAVE,并且从站需要在域表的主列中以逗号分隔的主节点 IP 地址列表。

但我就是不明白它想说什么。有人有想法吗?

编辑:

在我的从服务器上,域表中有一条错误记录,这导致从服务器将请求发送到错误的服务器,如下所示:

Apr  8 08:56:03 hfr-nl-dns02 pdns_server[2582]: While checking domain freshness: Query to '10.10.30.32' for SOA of 'ns2.domain.example.' did not return a SOA
Apr  8 09:02:12 hfr-nl-dns02 pdns_server[2582]: message repeated 3 times: [ While checking domain freshness: Query to '10.10.30.32' for SOA of 'ns2.domain.example.' did not return a SOA]

将 ip 更改为 .31 后,出现以下错误:

掌握:

Apr  8 10:07:45 hfr-nl-dns01 pdns_server[11803]: AXFR of domain 'ns2.domain.example' initiated by 10.10.30.32
Apr  8 10:07:45 hfr-nl-dns01 pdns_server[11803]: AXFR of domain 'ns2.domain.example' allowed: client IP 10.10.30.32 is in allow-axfr-ips
Apr  8 10:07:45 hfr-nl-dns01 pdns_server[11803]: AXFR of domain 'ns2.domain.example' failed: not authoritative

奴隶:

Apr  8 10:07:45 hfr-nl-dns02 pdns_server[2737]: Initiating transfer of 'ns2.domain.example' from remote '10.10.30.31'
Apr  8 10:07:45 hfr-nl-dns02 pdns_server[2737]: Unable to AXFR zone 'ns2.domain.example' from remote '10.10.30.31' (resolver): AXFR chunk error: Server Not Authoritative for zone / Not Authorized

编辑 2:主数据库记录,在这里看到的 IP,也用 /etc/hosts 文件中定义的名称服务器的主机名进行了尝试。

+----+-----------+--------------------+------+----------------------------------------------------------------------------------+------+------+----------+-----------+------+
| id | domain_id | name               | type | content                                                                          | ttl  | prio | disabled | ordername | auth |
+----+-----------+--------------------+------+----------------------------------------------------------------------------------+------+------+----------+-----------+------+
| 14 |         5 | domain.example     | NS   | 10.10.30.31                                                                      | 3600 |    0 |        0 | NULL      |    1 |
| 15 |         5 | domain.example     | NS   | 10.10.30.32                                                                      | 3600 |    0 |        0 | NULL      |    1 |

linux domain-name-system mysql powerdns
  • 1 个回答
  • 3062 Views
Martin Hope
ethrbunny
Asked: 2018-09-18 16:58:28 +0800 CST

pdnsutil - 防止创建重复的 DNS 记录

  • 0

如果您使用pdnsutil add-record它允许创建重复的 dns 条目。有什么方法可以防止这种情况吗?

powerdns
  • 1 个回答
  • 871 Views
Martin Hope
DerAndy
Asked: 2017-01-21 18:14:40 +0800 CST

即使 SOA 序列不变,PowerDNS 是否会更新 DNSSEC 记录?

  • 1

我试图了解 PowerDNS 从站是否可以更新记录,即使该区域的 SOA 中的序列号没有更改。我想到的场景如下:

有一台主服务器为 DNSSEC 进行实时签名。背景是我希望能够通过仅更改数据库来提供当前的签名记录。当数据库中的 SOA 序列发生变化时,从属设备会收到通知并自动检索新的(和签名的)数据。

但是,根据文件,RRSIG 记录的有效期为一到两周。即使 SOA 没有改变,slave 会自动获取新的 RRSIG 记录吗?

domain-name-system powerdns
  • 1 个回答
  • 547 Views
Martin Hope
gmazoyer
Asked: 2016-05-09 15:02:33 +0800 CST

PowerDNS 和 Bind9 之间的区域传输

  • 4

尝试将完整区域从 PowerDNS 服务器传输到 Bind9 服务器时遇到问题。奇怪的是,PowerDNS 服务器上有几个区域用作隐藏的主服务器(带有 MySQL 后端),但只有一个区域无法传输到 Bind9 服务器。

两台服务器都运行 Ubuntu 16.04 LTS。和:

  • Bind9 版本 = 9.10.3.dfsg.P4-8ubuntu1
  • PowerDNS 版本 = 4.0.0~alpha2-3build1

Bind9 从区配置如下:

zone "example.net" {
    type slave;
    file "/var/lib/bind/slaves/db.example.net";
    masters {
          10.0.0.1;
    };
};

PowerDNS 的 DNS 区域是:

% sudo pdnsutil show-zone example.net
This is a Master zone
Last SOA serial number we notified: 2016050801 == 2016050801 (serial in the database)
Zone is not actively secured
Metadata items: None
No keys for zone 'example.net.'.

% sudo pdnsutil list-zone example.net
example.net.    10800   IN  MX  10 mx1.example.org.
example.net.    10800   IN  MX  50 mx2.example.org.
example.net.    10800   IN  NS  ns1.example.org.
example.net.    10800   IN  NS  ns2.example.org.
example.net.    86400   IN  SOA ns1.example.org. hostmaster.example.org. 2016050801 28800 7200 604800 86400
...

请注意此输出中.net和.org之间的区别。这是在尝试将区域提供给 Bind 时日志中的 PowerDNS 输出。

May  9 00:44:14 hdns01 pdns[40494]: AXFR of domain 'example.net.' initiated by 10.0.0.2
May  9 00:44:14 hdns01 pdns[40494]: AXFR of domain 'example.net.' allowed: client IP 10.0.0.2 is in allow-axfr-ips
May  9 00:44:14 hdns01 pdns[40494]: AXFR of domain 'example.net.' failed: not authoritative

以及Bind给出的对应日志。

May  9 00:44:14 rdns01 named[32973]: zone example.net/IN: refresh: unexpected rcode (REFUSED) from master 10.0.0.1#53 (source 0.0.0.0#0)
May  9 00:44:14 rdns01 named[32973]: zone example.net/IN: Transfer started.
May  9 00:44:14 rdns01 named[32973]: transfer of 'example.net/IN' from 10.0.0.1#53: connected using 10.0.0.2#55376
May  9 00:44:14 rdns01 named[32973]: transfer of 'example.net/IN' from 10.0.0.1#53: failed while receiving responses: NOTAUTH
May  9 00:44:14 rdns01 named[32973]: transfer of 'example.net/IN' from 10.0.0.1#53: Transfer status: NOTAUTH
May  9 00:44:14 rdns01 named[32973]: transfer of 'example.net/IN' from 10.0.0.1#53: Transfer completed: 0 messages, 0 records, 0 bytes, 0.004 secs (0 bytes/sec)

所以Bind9是说服务器不权威。这很奇怪。因此,让我们使用dig让事情变得更清晰。

% dig @10.0.0.1 example.net. SOA          

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @10.0.0.1 example.net. SOA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47002
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1680
;; QUESTION SECTION:
;example.net.           IN  SOA

;; ANSWER SECTION:
example.net.        86400   IN  SOA ns1.example.org. hostmaster.example.org. 2016050801 28800 7200 604800 86400

;; Query time: 2 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Mon May 09 00:53:51 CEST 2016
;; MSG SIZE  rcvd: 104

对我来说似乎很权威。所以在那之后我尝试用 dig 做一个 AXFR。令人惊讶的是它有效......

% dig -t axfr example.net @10.0.0.1

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t axfr example.net @10.0.0.1
;; global options: +cmd
example.net.        86400   IN  SOA ns1.example.org. hostmaster.example.org. 2016050801 28800 7200 604800 86400
...
;; Query time: 73 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Mon May 09 00:56:42 CEST 2016
;; XFR size: 58 records (messages 3, bytes 1952)

我不知道该去哪里找了。

谢谢你的帮助。

更新:

数据包捕获的日志:

1   0.000000    10.0.0.2    10.0.0.1    DNS 82  Standard query 0xe0dd SOA example.net OPT
2   0.002902    10.0.0.1    10.0.0.2    DNS 82  Standard query response 0xe0dd Refused SOA example.net OPT
6   0.004506    10.0.0.2    10.0.0.1    DNS 97  Standard query 0x205c AXFR example.net
8   0.006432    10.0.0.1    10.0.0.2    DNS 97  Standard query response 0x205c Not authoritative AXFR example.net

来自成功的手动 AXFR 的 PowerDNS 日志:

May  9 08:19:51 hdns01 pdns[40494]: AXFR of domain 'example.net.' initiated by 10.0.0.2
May  9 08:19:51 hdns01 pdns[40494]: AXFR of domain 'example.net.' allowed: client IP 10.0.0.2 is in allow-axfr-ips
May  9 08:19:52 hdns01 pdns[40494]: AXFR of domain 'example.net.' to 10.0.0.2 finished

PowerDNS 配置文件:

#################################
# allow-axfr-ips    Allow zonetransfers only to these subnets
#
allow-axfr-ips=127.0.0.0/8,::1,10.0.0.2

#################################
# also-notify   When notifying a domain, also notify these nameservers
#
also-notify=10.20.1.78,10.0.0.2

#################################
# daemon    Operate as a daemon
#
daemon=yes

#################################
# include-dir   Include *.conf files from this directory
#
# include-dir=
include-dir=/etc/powerdns/pdns.d

#################################
# launch    Which backends to launch and order to query them in
#
# launch=
launch=

#################################
# master    Act as a master
#
master=yes

#################################
# setgid    If set, change group id to this gid for more security
#
setgid=pdns

#################################
# setuid    If set, change user id to this uid for more security
#
setuid=pdns

以及/etc/powerdns/pdns.d/目录中的 MySQL 后端配置部分。

# MySQL Configuration
#
# Launch gmysql backend
launch+=gmysql

# gmysql parameters
gmysql-host=127.0.0.1
gmysql-port=
gmysql-dbname=pdns
gmysql-user=MYUSER
gmysql-password=MYPASSWORD
gmysql-dnssec=yes
# gmysql-socket=
ubuntu domain-name-system bind powerdns
  • 2 个回答
  • 8047 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve