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

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

ただいまの
回答率

87.34%

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

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,859

score 7

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と表示され名前解決されません。

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

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

また、recursor.conf の forward-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/24 10: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

    キャンセル

  • 2017/08/24 12:34

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

    この「サフィックス1.」って何でしょうか?
    nslookup で直接 pdns-recursor に問い合わせた場合も「サフィックス1.」が付くのでしょうか?

    キャンセル

  • 2017/08/25 16:38

    サフィックスは/etc/resolv.confで設定しているsearchの検索ドメインになります。
    5個あるのですが、そのうち2個のみしか検索されていない状態となります。

    いづれにしてもrecursor側をlocal-addressとすれば名前解決でき、pdnsでは直接recursorを指定しても解決できないことからpdns側の問題と思いますので、再構築も含め、pdnsを重点的に調べてみようと思います。
    解決できなさそうであれば改めて質問しようと思います。
    ありがとうございました。

    キャンセル

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

  • ただいまの回答率 87.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る