質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

Q&A

解決済

1回答

1660閲覧

PowerDNS-recursorでドメイン指定してのrecursorが動作しない

ajifly

総合スコア7

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

0グッド

0クリップ

投稿2017/08/17 07:31

CentOS6.9上で
powerdnsとpowerdns-recursorでDNSを構築しています。

・centOS
IPアドレス 10.10.10.1
/etc/resolv.conf
nameserver 127.0.0.1
searchに複数のドメインを設定

・powerdns
local-address 10.10.10.1
local-port 53
recursor 127.0.0.1

・powerdns-recursor
local-address 127.0.0.1
local-port 5053
forward-zones=ドメイン名=フォワーダ
forward-zones=.=フォワーダ

powerdns-recursorにはforward-zonesを複数作成してドメイン毎にフォワーダを利用したいと考えています。
powerdnsがコンテンツサーバ、解決できない場合、powerdns-recursorでドメイン毎にフォワーダ振り分けというふうに考えています。

powerdnsに登録しているレコードは解決され、forward-zonesについても「.」のものは名前解決される状態です。
ただし、searchに設定されているドメインをクライアントから解決することができない状態となっています。
centos上ではnslookupでポート5053を指定して確認すると名前解決されているのですが
クライアント(Win7)からnslookupするとNon-existent domainと表示され名前解決されません。

何か不足している設定があればご教授頂きたいと思います。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pdns.conf では recursor=127.0.0.1:5053 とポート番号まで設定していますでしょうか?

また、recursor.confforward-zones は「,」カンマ区切りで 1行で設定するようです。


(2017/08/21 12:03) 追記

nslookup でポート 5053 を指定すると名前解決できるとのことですので、pdns-recursor は問題なく、pdns → pdns-recursor に問題があるのではないかと推測されます。
pdns.conf でログレベルをあげるなどして、pdns-recursor に接続できているかどうか確認するといいと思います。

---- pdns.conf 設定例 ---- log-dns-queries=yes loglevel=9 ---- syslog(/var/log/messages など) 出力例:接続できない場合 ---- Remote 127.0.0.1 wants 'www.yahoo.co.jp|A', do = 0, bufsize = 512: packetcache MISS Error receiving packet from recursor backend: Connection refused

あるいは、lo インターフェースの TCP 5053 番ポートをパケットキャプチャするとか。


(2017/08/22 16:56) 追記
tcpdump で接続できているようですが、2回目の接続が謎です。
1回目のクエリの応答(10:26:52:610517 IP 127.0.0.1 5053 > 127.0.0.1.24837: UDP, length 122) を見たいところです。
recursor.conf で trace=on として、syslog に出力される応答を確認できますでしょうか。

---- 例 ---- 1 [1/1] answer to question 'www.yahoo.co.jp.|A': 2 answers, 0 additional, took 1 packets, 18.973 ms, 0 throttled, 0 timeouts, 0 tcp connections, rcode=0

投稿2017/08/20 09:19

編集2017/08/22 07:56
TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ajifly

2017/08/21 02:06

回答ありがとうございます。 pdns.confのrecursorはrecursor=127.0.0.1:5053とポート指定しています。 recursor.confのforward-zonesは1行設定はしていなかったので、1行設定してみましたが同じ状態でした。 またforward-zones-file.confを作成し、中には +ドメイン名=DNS1:53;DNS2:53;DNS3:53;DNS4:53 と複数行設定し、recursor.conf内にforward-zones-file=で指定しましたが変わりありませんでした。 DNS複数指定する際は;区切りで間違いないでしょうか? ↓こちらを参考にして作成しています。 https://doc.powerdns.com/md/recursor/settings/
ajifly

2017/08/21 03:47

ありがとうございます。 ログレベルを9にしていますが、特にコネクションエラーは出ていない状態です。 Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン.サフィックス1|A', do = 0, bufsize = 512: packetcache MISS Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン.サフィックス2|AAAA', do = 0, bufsize = 512: packetcache MISS Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン.サフィックス3|A', do = 0, bufsize = 512: packetcache MISS Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン.サフィックス3|AAAA', do = 0, bufsize = 512: packetcache MISS Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン.サフィックス4|A', do = 0, bufsize = 512: packetcache MISS Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン.サフィックス4|AAAA', do = 0, bufsize = 512: packetcache MISS Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン.サフィックス5|A', do = 0, bufsize = 512: packetcache MISS Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン.サフィックス5|AAAA', do = 0, bufsize = 512: packetcache MISS Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン|A', do = 0, bufsize = 512: packetcache MISS Aug 21 12:17:47 DNSサーバ[22302]: Remote 10.10.10.5 wants '検索ドメイン|AAAA', do = 0, bufsize = 512: packetcache MISS また、「forward-zones-recursor=.=」で指定しているDNSを存在していないDNSに書き換えるとアクセスできなくなるので5053での接続はできているかと思います。 ただ、PDNSとPDNS-recursorの問題と思われるところも見られており、local-addressとポートを入れ替えPDNS-recursor:53で接続するようにするとコンテンツサーバ登録している名前解決はできなくなるのですが、PDNS-recursorのforward-zoneの解決はできるようになります。 サーバ上でnslookupしてset port=5053でポート指定すると解決できるのですが クライアントからnslookupしてset port=5053ですと解決できません。 外部から見た場合に問題があるように思えるのですが、何か心当たりはございませんでしょうか?
ajifly

2017/08/21 03:48

なお、iptablesは無効、getenforceもdisableとなっています。
TaichiYanagiya

2017/08/21 06:49

接続エラーは出ていないようですね。 pdns.conf で allow-recursion=0.0.0.0/0 は変更していないでしょうか? また、"tcpdump -nn -i lo port 5053" で 5053 番ポートの接続を監視しながら、nsloopup で 53 番ポート(pdns)に名前解決を試みると、通信内容が表示されますでしょうか? > クライアントからnslookupしてset port=5053ですと解決できません。 pdns-recursor が 127.0.0.1:5053 しか LISTEN していないためだと思います。
ajifly

2017/08/22 01:41

>pdns-recursor が 127.0.0.1:5053 しか LISTEN していないためだと思います。 よくわかりました、ありがとうございます。 10:26:52:610410 IP 127.0.0.1 24837 > 127.0.0.1.5053: UDP, length 47 10:26:52:610517 IP 127.0.0.1 5053 > 127.0.0.1.24837: UDP, length 122 10:26:52:611216 IP 127.0.0.1 24837 > 127.0.0.1.5053: UDP, length 47 tcpdumpした結果、やはり通信自体はできているのではないかと思います。 クライアントで表示されるページ、表示されないページ、nslookupした場合など、通信状態は表示されるため、5053には達しているように見受けられます。
ajifly

2017/08/22 01:51

追記 コンテンツサーバで解決される名前についてはtcpdumpでは通信状態表示されず、www.yahoo.co.jpやフォワーダ指定したいドメイン名のものはtcpdumpに通信表示されるという状態です。
ajifly

2017/08/24 01:38

ありがとうございます。 syslogを見ると、フォワーダの動作はしている様子なのですがサフィックス2までしか検索をしていないようです。(実際にはサフィックス5まであります。) また、pdnsのrecursorにDNS1を設定しても名前解決されないことが分かりました。 クライアントにDNS1を設定した場合は名前解決されます。 pdns-recursorにポート53を設定した場合、接続可能となることからも pdns-recursorではなく、pdns側での問題の様子です。 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: 2 [808/1] question for '宛先ドメイン.サフィックス1.|A' from 127.0.0.1 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: Looking for CNAME cache hit of '宛先ドメイン.サフィックス1.|CNAME' Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: No CNAME cache hit of '宛先ドメイン.サフィックス1.|CNAME' found Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: Entire record '宛先ドメイン.サフィックス1.' or type was negatively cached, but entry expired Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: No cache hit for '宛先ドメイン.サフィックス1.|A', trying to find an appropriate NS record Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: Cache consultations done, have 5 NS to contact Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: Nameservers: +DNS5:53(0.31ms), +DNS1:53(0.42ms), +DNS4:53(0.48ms), Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: +DNS2:53(0.82ms), +DNS3:53(170.35ms) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: Trying to resolve NS '+DNS5:53' (1/5) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: Domain has hardcoded nameserver(s) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: Resolved '.' NS +DNS5:53 to: DNS5 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: Trying IP DNS5:53, asking '宛先ドメイン.サフィックス1.|A' Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: Got 1 answers from +DNS5:53 (DNS5), rcode=3 (Non-Existent domain), aa=0, in 83ms Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: accept answer '.|SOA|a.root-servers.net. nstld.verisign-grs.com. 2017082301 1800 900 604800 86400' from '.' nameservers? YES! Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: determining status after receiving this packet Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: got negative caching indication for RECORD '宛先ドメイン.サフィックス1.' (accept=1), newtarget='' Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: status=NXDOMAIN, we are done (have negative SOA) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [808] 宛先ドメイン.サフィックス1.: failed (res=3) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: 2 [808/1] answer to question '宛先ドメイン.サフィックス1.|A': 0 answers, 0 additional, took 1 packets, 83.473 ms, 0 throttled, 0 timeouts, 0 tcp connections, rcode=3 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: 2 [809/1] question for '宛先ドメイン.サフィックス1.|AAAA' from 127.0.0.1 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [809] 宛先ドメイン.サフィックス1.: Looking for CNAME cache hit of '宛先ドメイン.サフィックス1.|CNAME' Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [809] 宛先ドメイン.サフィックス1.: No CNAME cache hit of '宛先ドメイン.サフィックス1.|CNAME' found Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [809] 宛先ドメイン.サフィックス1.: Entire record '宛先ドメイン.サフィックス1.', is negatively cached via '.' for another 3600 seconds Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [809] .: Found cache hit for SOA: a.root-servers.net. nstld.verisign-grs.com. 2017082301 1800 900 604800 86400[ttl=3600] Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: 2 [809/1] answer to question '宛先ドメイン.サフィックス1.|AAAA': 0 answers, 0 additional, took 0 packets, 0 ms, 0 throttled, 0 timeouts, 0 tcp connections, rcode=3 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: 1 [854/1] question for '宛先ドメイン.サフィックス2.|A' from 127.0.0.1 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: Looking for CNAME cache hit of '宛先ドメイン.サフィックス2.|CNAME' Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: No CNAME cache hit of '宛先ドメイン.サフィックス2.|CNAME' found Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: Entire record '宛先ドメイン.サフィックス2.' or type was negatively cached, but entry expired Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: No cache hit for '宛先ドメイン.サフィックス2.|A', trying to find an appropriate NS record Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: Cache consultations done, have 5 NS to contact Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: Nameservers: +DNS1:53(0.23ms), +DNS2:53(0.27ms), +DNS3:53(0.49ms), Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: +DNS4:53(1.00ms), +DNS5:53(30.11ms) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: Trying to resolve NS '+DNS1:53' (1/5) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: Domain has hardcoded nameserver(s) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: Resolved '.' NS +DNS1:53 to: DNS1 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: Trying IP DNS1:53, asking '宛先ドメイン.サフィックス2.|A' Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: Got 1 answers from +DNS1:53 (DNS1), rcode=3 (Non-Existent domain), aa=0, in 2ms Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: accept answer 'サフィックス2.|SOA|AWSのDNS1. AWSのDNS2 2012121001 7200 900 1209600 3600' from '.' nameservers? YES! Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: determining status after receiving this packet Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: got negative caching indication for RECORD '宛先ドメイン.サフィックス2.' (accept=1), newtarget='' Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: status=NXDOMAIN, we are done (have negative SOA) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [854] 宛先ドメイン.サフィックス2.: failed (res=3) Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: 1 [854/1] answer to question '宛先ドメイン.サフィックス2.|A': 0 answers, 0 additional, took 1 packets, 2.711 ms, 0 throttled, 0 timeouts, 0 tcp connections, rcode=3 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: 1 [855/1] question for '宛先ドメイン.サフィックス2.|AAAA' from 127.0.0.1 Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [855] 宛先ドメイン.サフィックス2.: Looking for CNAME cache hit of '宛先ドメイン.サフィックス2.|CNAME' Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [855] 宛先ドメイン.サフィックス2.: No CNAME cache hit of '宛先ドメイン.サフィックス2.|CNAME' found Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [855] 宛先ドメイン.サフィックス2.: Entire record '宛先ドメイン.サフィックス2.', is negatively cached via 'サフィックス2.' for another 351 seconds Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: [855] サフィックス2.: Found cache hit for SOA: AWSのDNS1. AWSのDNS2 2012121001 7200 900 1209600 3600[ttl=351] Aug 24 10:21:03 サーバ名 pdns_recursor[3499]: 1 [855/1] answer to question '宛先ドメイン.サフィックス2.|AAAA': 0 answers, 0 additional, took 0 packets, 0 ms, 0 throttled, 0 timeouts, 0 tcp connections, rcode=3
TaichiYanagiya

2017/08/24 03:34

ログを見ると、「宛先ドメイン.サフィックス1.」の Aレコードを fowarder に問い合わせて 「rcode=3 (Non-Existent domain)」を受け取り、失敗「failed (res=3)」と判断し、pdns に見つからなかったこと「0 answers」を回答しているようです。 この「サフィックス1.」って何でしょうか? nslookup で直接 pdns-recursor に問い合わせた場合も「サフィックス1.」が付くのでしょうか?
ajifly

2017/08/25 07:38

サフィックスは/etc/resolv.confで設定しているsearchの検索ドメインになります。 5個あるのですが、そのうち2個のみしか検索されていない状態となります。 いづれにしてもrecursor側をlocal-addressとすれば名前解決でき、pdnsでは直接recursorを指定しても解決できないことからpdns側の問題と思いますので、再構築も含め、pdnsを重点的に調べてみようと思います。 解決できなさそうであれば改めて質問しようと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問