「内部名」と「外部名」とは何ですか?:DNS Tips
DNSの世界で使われる「内部名」と「外部名」とは、具体的に何を指し、どう異なるのだろうか。そして外部名を利用する際に、管理者が留意すべき事柄とは何だろうか。
内部名や外部名はいずれも権威DNSサーバー名に対して使われ、その違いは、権威DNSサーバー名が委任されたドメイン名の内部にあるか、外部にあるかである。内部にある場合を「内部名」、外部にある場合を「外部名」と呼ぶ。
例えば「example.jp」というドメイン名が権威DNSサーバー名「ns1.example.jp」「ns2.example.jp」に委任されている場合、それらの権威DNSサーバー名は内部名である。なぜなら、権威DNSサーバー名「ns1.example.jp」や「ns2.example.jp」が、委任されたドメイン名「example.jp」の内部にあるからである。
一方、権威DNSサーバー名が「ns1.example.net」「ns2.example.net」である場合、これらの権威DNSサーバー名は外部名である。なぜなら、権威DNSサーバー名「ns1.example.net」や「ns2.example.net」が委任されたドメイン名「example.jp」の外部にあるからである。このように、内部名か外部名かは委任元の権威DNSサーバーに登録されているNSレコードを見れば簡単に判別できる。リスト1とリスト2は、内部名と外部名のNSレコードの例である。
example.jp. 86400 IN NS ns1.example.jp.
example.jp. 86400 IN NS ns2.example.jp.
example.jp. 86400 IN NS ns1.example.net.
example.jp. 86400 IN NS ns2.example.net.
なお、正しく名前解決できるようにするためには、内部名の場合においては、ゾーンNSレコードだけでなくAレコード(IPv6の場合はAAAAレコードも)もゾーンに登録する必要がある。一方、外部名の場合は、これらのレコードを登録する必要はない。このようなAレコード(もしくはAAAAレコード)のことを「グルーレコード」と呼ぶ。NSレコードやグルーレコードについて詳しくは、DNS Tips「NSリソースレコードについて教えてください(今後公開予定)」「グルーとは何ですか?(今後公開予定)」を参照。
外部名を使用する場合には、権威DNSサーバーの管理者は以下の点に留意しておく必要がある。
外部名の参照先ドメイン名が有効であること
外部名の参照先のドメイン名が失効してしまうと、管理しているドメイン名全てが名前解決に失敗したり、最悪の場合、失効したドメイン名が悪意を持った第三者に再登録され、管理しているドメイン名が乗っ取られたりする危険がある。外部名の権威DNSサーバーの場合は、参照先ドメイン名の管理にも常に注意を払う必要がある。特に、外部組織の権威DNSサーバーをセカンダリサーバーとして使用するなど、管理主体が異なる場合はより注意が必要である。
多段外部名の使用
外部名の参照先が再び外部名となるような多段外部名の使用は、特別な理由がない限り避けるべきである。なぜなら、BIND 8のような古い実装のキャッシュDNSサーバーにおいて名前解決が失敗する事例が報告されていたり、参照回数に適切な上限値を設定していないキャッシュDNSサーバーに対して非常に多い多段外部名や、循環参照するような外部名を参照させることでリソースが過度に消費され、結果としてDoS攻撃が成立してしまうDNS実装の脆弱性(*1)が報告されていたりするからである。
注1:「(緊急)複数のDNSソフトウェアにおける脆弱性(システム資源の過度な消費)について」<http://jprs.jp/tech/security/2014-12-09-multiple-impl-vuln-delegation-limit.html>
名前解決における遅延時間
内部名より外部名の方が参照するドメイン名の数が多いため、特に、検索結果がまだキャッシュされていない初期状態の場合に、名前解決の遅延時間に影響を及ぼすことが考えられる。しかし、実際の運用においてはキャッシュが有効に働くことから、外部名の段数が一段程度である場合、両者の違いはほとんどない。
神戸 直樹(かんべなおき)
所属:株式会社日本レジストリサービス(JPRS) システム部
2004年にJPRS入社。レジストリシステムの開発・保守から、レジストリデータベース、WHOISシステムの管理運用まで幅広い業務にたずさわる。現在は、WHOIS代替プロトコルのプロトタイプ開発、WHOISにおける国際化登録データの要件定義および、データのモデル化の検討などに従事。2009年から2013年にかけてDNSソフトウエアである「BIND 10(現Bundy)」の開発プロジェクトに開発者として参加。
著書・執筆:2009年〜2010年「月刊ASCII.technologies」(アスキーメディアワークス)の連載記事「正しく学ぶDNS」の一部執筆を担当。
Copyright © ITmedia, Inc. All Rights Reserved.