Enum(voip)dnsクエリにpowerdnsを使用しようとしています。
私はそれがすべて正しくセットアップされていると信じています。
mysqlテーブルでは正しいようです
select * from records\G
id: 3
domain_id: 3
name: 0.1.9.2.8.4.3.3.0.7.1.e164.arpa
type: NAPTR
content: 100 10 "u" "E2U+sip" "!^.*$!sip:[email protected]!" .
ttl: 120
prio: NULL
change_date: NULL
select * from domains\G
id: 3
name: e164.arpa
master: 127.0.0.1
last_check: NULL
type: MASTER
notified_serial: NULL
account: NULL
そして私はpdnsログに基づいてクエリを見ることができます:
Jun 8 16:10:47 localhost pdns[12575]: Remote 127.0.0.1 wants '0.1.9.2.8.4.3.3.0.7.1.e164.arpa|NAPTR', do = 0, bufsize = 512: packetcache MISS
Jun 8 16:10:47 localhost pdns[12575]: Query: select content,ttl,prio,type,domain_id,name from records where type='SOA' and name='0.1.9.2.8.4.3.3.0.7.1.e164.arpa'
Jun 8 16:10:47 localhost pdns[12575]: Query: select content,ttl,prio,type,domain_id,name from records where type='SOA' and name='1.9.2.8.4.3.3.0.7.1.e164.arpa'
Jun 8 16:10:47 localhost pdns[12575]: Query: select content,ttl,prio,type,domain_id,name from records where type='SOA' and name='9.2.8.4.3.3.0.7.1.e164.arpa'
しかし、私の発掘は失敗します:
Dig NAPTR @127.0.0.1 0.1.9.2.8.4.3.3.0.7.1.e164.arpa
; <<>> Dig 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> NAPTR @127.0.0.1 0.1.9.2.8.4.3.3.0.7.1.e164.arpa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 8911
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;0.1.9.2.8.4.3.3.0.7.1.e164.arpa. IN NAPTR
;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jun 8 16:04:28 2015
;; MSG SIZE rcvd: 49
Mysqlクエリに結果「type = SOA」がない理由がわかりますが、なぜ「NAPTR」ではなくtype =「SOA」を試行しているのですか?
答えは、ホーカン・リンドクヴィストの提案に基づいています。
レコードテーブルを次のようにします。
id: 6
domain_id: 3
name: someServer.com
type: SOA
content: ns1.someDNSServer.com
ttl: 120
prio: NULL
change_date: NULL
*************************** 2. row ***************************
id: 7
domain_id: 3
name: someServer.com
type: NS
content: ns1.someDNSServer.com
ttl: 120
prio: NULL
change_date: NULL
問題はNAPTR
レコード自体にあるのではないと思いますが、PowerDNSはSOA
レコードができるまでゾーンが有効であるとは見なしません。
PowerDNSの特定の動作を無視すると、DNSの一般的な要件は、ゾーンの頂点に少なくともSOA
およびNS
レコードが必要であるということです。
(PowerDNSはこれのNS
の側面を検証していないようですが、これらのレコードを追加しないと問題が発生します。)
e164.arpa
全体にゾーンを設定することが実際に意味があるかどうかはわかりませんが、より一般的には、ゾーンの名前がfoo.example
の場合、次のようなものが必要になります。 :
foo.example. 7200 IN SOA ns1.example.com. hostmaster.example.com. 1 3600 1800 2419200 7200
foo.example. 7200 IN NS ns1.example.com.
foo.example. 7200 IN NS ns2.example.com.
...
必要な特定のデータに加えて、これらの必須レコードをゾーンに追加することをお勧めします。
Michaelが指摘したように、2.8.4.3.3.0.7.1.e164.arpa
はより可能性の高いゾーン名です(つまり、+ 1 703 348 2)。
PowerDNS固有の用語では、SQLで直接作業している場合(必ずしも理想的ではありません)、このゾーンを追加すると次のようになります。
INSERT INTO domains (name, type) VALUES('2.8.4.3.3.0.7.1.e164.arpa', 'MASTER');
INSERT INTO records (domain_id, name, ttl, type, content) VALUES(7, '2.8.4.3.3.0.7.1.e164.arpa', 7200, 'SOA', 'ns1.example.com hostmaster.example.com 1 3600 1800 2419200 7200');
INSERT INTO records (domain_id, name, ttl, type, content) VALUES(7, '2.8.4.3.3.0.7.1.e164.arpa', 7200, 'NS', 'ns1.example.com');
INSERT INTO records (domain_id, name, ttl, type, content) VALUES(7, '2.8.4.3.3.0.7.1.e164.arpa', 7200, 'NS', 'ns2.example.com');
その後、NAPTR
レコードを追加します。
INSERT INTO records (domain_id, name, ttl, type, content) VALUES(7, '0.1.9.2.8.4.3.3.0.7.1.e164.arpa', 7200, 'NAPTR', '...');
...