Home > DNS > dip.jpにおける間違ったグルー設定

dip.jpにおける間違ったグルー設定 add this entry to hatena bookmarkhatena bookmark counter

  • 2008-03-23 (日) 21:42
  • DNS

しゃお邸ではDNSのキャッシュやプライベートコンテンツのためにDNSサーバ(djbdns)を立てています、その環境で一部のホストの名前がうまく引けません。

引けないドメインは ***.orz.hm だとか ***.or.tp とか、 ***.dip.jp 。最初はキャッシュが悪さしてるとか上位のレコードがぶっこわれてるとかそんなもんだろうと思っていたのですが、(友人の通う)某大学からも引けないとかいう話になったので調べてみることにしました。

結論から言うと、NSのグルーがなく、ネームサーバのIPアドレスを取得するために多段問い合わせを実行する必要が出ていました。NS名からIPアドレスを得るために3回以上問い合わせを行うようなケースだと一部のDNSキャッシュサーバ(djbdns, 8.2.7以前のBIND, 一部のWindows ServerのDNSサービス)が名前解決を諦めてしまうため、これらのドメインの名前解決ができず、エラーが返されます。

さて、dip.jpはどうなっていたのだろうでしょうか。DNSのクエリを追うため、digコマンド(BINDに付属)やdnsq(djbdnsに付属)を使い、doga.dip.jp の名前を解決する手順を確認してみました。

まずdip.jpのネームサーバがどこか、.jpのルートサーバに問い合わせ (本来は.jpのルートサーバを探すためにルートサーバ[ROOT-SERVERS.NET]に問い合わせるが省略。以下同)を行います。

[shao@runa ~]$ dnsq ns dip.jp a.dns.jp
2 dip.jp:
90 bytes, 1+0+3+0 records, response, noerror
query: 2 dip.jp
authority: dip.jp 86400 NS ns1.ieserver.net
authority: dip.jp 86400 NS ns2.ieserver.net
authority: dip.jp 86400 NS ns3.ieserver.net

dip.jp は ns1.ieserver.net 〜 ns3.ieserver.net が担当しているということがわかりましたが、IPがわからない(応答に含まれていない[仮に応答に含まれていても、a.dns.jpは.netを委譲されていないので権威のない回答であり、DNSクライアントは無視する])ので、ieserver.netを管轄するネームサーバがどこにあるか、今度はgTLDのルートサーバに問い合わせをします。

[shao@runa ~]$ dnsq ns ieserver.net a.gtld-servers.net
2 ieserver.net:
80 bytes, 1+2+0+0 records, response, noerror
query: 2 ieserver.net
answer: ieserver.net 172800 NS ns01.agora-inc.jp
answer: ieserver.net 172800 NS ns02.agora-inc.jp

まだIPがわかりません。ieserver.netを担当するns01.agora-inc.jpはどこにあるのか、agora-inc.jpのネームサーバについて、.jpのルートサーバに問い合わせます。

[shao@runa ~]$ dnsq ns agora-inc.jp a.dns.jp
2 agora-inc.jp:
81 bytes, 1+0+2+0 records, response, noerror
query: 2 agora-inc.jp
authority: agora-inc.jp 86400 NS ns01.agora-inc.net
authority: agora-inc.jp 86400 NS ns02.agora-inc.net

やっぱりIPがわからないです。今度はagora-inc.netが誰だかまた調べなくてはいけないです。このへんでDNSクライアントによっては諦めますが、仮にここで諦めない実装であると仮定し、今度はagora-inc.netのネームサーバをgTLDのルートに問い合わせます。

[shao@runa ~]$ dnsq ns agora-inc.net a.gtld-servers.net
2 agora-inc.net:
118 bytes, 1+2+0+2 records, response, noerror
query: 2 agora-inc.net
answer: agora-inc.net 172800 NS ns55.domaincontrol.com
answer: agora-inc.net 172800 NS ns56.domaincontrol.com
additional: ns55.domaincontrol.com 172800 A 208.109.14.49
additional: ns56.domaincontrol.com 172800 A 208.109.255.28

やっとIPアドレスらしきものが帰ってきました。しかも、.comに関して権威を持っていますので今度はns55/ns56を問い合わせる必要はなく、このレスポンスによってagora-inc.netのネームサーバが判明します。

その後の手順は省略しますが、ns56.domaincontrol.com に ns01.agora-inc.net を問い合わせ、ns01.agora-inc.netにns01.agora-inc.jpを問いあわせ、ns01.agora-inc.jpにns1.ieserver.netを問い合わせ、ns1.ieserver.netにdoga.dip.jpのAレコードを問い合わせます。こんなひどい多重問い合わせはまずやりません。直ちに直すべきです。

ちなみに正しい設定例はこんな感じ。www.yahoo.co.jp を調べるため、まずは.jpのルートサーバにyahoo.co.jpのネームサーバを問い合わせます。

[shao@runa ~]$ dnsq ns yahoo.co.jp a.dns.jp
2 yahoo.co.jp:
101 bytes, 1+0+2+2 records, response, noerror
query: 2 yahoo.co.jp
authority: yahoo.co.jp 86400 NS dnsg01.yahoo.co.jp
authority: yahoo.co.jp 86400 NS ns10.yahoo.co.jp
additional: ns10.yahoo.co.jp 86400 A 210.80.243.9
additional: dnsg01.yahoo.co.jp 86400 A 211.14.12.10

IPアドレスが権威をもったサーバから返っていますので、ns10.yahoo.co.jp A 210.80.243.9は信用できますので、こちらに問い合わせができます。

[shao@runa ~]$ dnsq a www.yahoo.co.jp ns10.yahoo.co.jp
1 www.yahoo.co.jp:
313 bytes, 1+13+2+2 records, response, authoritative, noerror
query: 1 www.yahoo.co.jp
answer: www.yahoo.co.jp 300 A 203.216.235.154
answer: www.yahoo.co.jp 300 A 203.216.235.201
(中略)
authority: yahoo.co.jp 900 NS ns10.yahoo.co.jp
authority: yahoo.co.jp 900 NS dnsg01.yahoo.co.jp
additional: ns10.yahoo.co.jp 900 A 210.80.243.9
additional: dnsg01.yahoo.co.jp 900 A 211.14.12.10

正しくはこうです。つまるところ、NSは自分のドメインと同じ場所、もしくは違う場所であるならば1階層のみの委譲で済むように (example.jp のNSは ns.example.ne.jp であり、 ns.example.ne.jpのIPアドレスは.jpのルートサーバからグルーが貼られている)しましょう。

参考資料: (株)日本レジストリサービス ネームサーバは内部名で (application/pdf)

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://d.1555.info/2008/03/23/wrong-dns-settings_on_dip-jp/trackback/
Listed below are links to weblogs that reference
dip.jpにおける間違ったグルー設定 from しゃおの雑記帳

Home > DNS > dip.jpにおける間違ったグルー設定

Search
Feeds
Meta

Return to page top