検索
連載

「内部名」と「外部名」とは何ですか?DNS Tips

DNSの世界で使われる「内部名」と「外部名」とは、具体的に何を指し、どう異なるのだろうか。そして外部名を利用する際に、管理者が留意すべき事柄とは何だろうか。

Share
Tweet
LINE
Hatena

 内部名や外部名はいずれも権威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.

リスト1 内部名の場合のNSレコードの例

example.jp.     86400   IN      NS      ns1.example.net.

example.jp.     86400   IN      NS      ns2.example.net.

リスト2: 外部名の場合のNSレコードの例

 なお、正しく名前解決できるようにするためには、内部名の場合においては、ゾーン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.

ページトップに戻る