DNS関連技術情報のトップへ戻る

------------------------------------------------------------------------
■DNS サーバの最大数について
                                                         2003/07/10(Thu)
------------------------------------------------------------------------

▼はじめに

  DNS は、そのプロトコルの制約により、NS レコードとして登録できるネーム
  サーバの最大数に制限があります。ここでは、TLD のネームサーバの最大数に
  ついて技術的に考察します。

▼DNS サーバの最大数

  DNS には、そのプロトコルの仕組み上、応答メッセージが 512byte 以内に収
  まる必要があり(*1)、上位の DNS サーバに登録できる NS レコードの数には
  制限があります。

  (*1) TCP への fallback もありますが、ルートサーバなどの上位の DNS サー
       バに TCP の接続が集中すると負荷などが問題となり、UDP で問い合わせ
       を行う必要があります。

  NS の最大数を考える条件としては、応答メッセージ内に、問い合わせした文
  字列の情報や、Additional Record で返ってくる情報がもっとも多くなる、い
  わゆる最悪のケースの時に、返すことのできる NS の数となります。

  具体的には、TLD の DNS サーバの最大数を考えた場合、ルートサーバに、最
  も長いドメイン名の問い合わせを行ったときに、UDP の 512byte 以内に収ま
  り、かつ、1つ以上の Additional Record を返すことができる時(*2)の NS
  の数が最大数となります。

  (例) % dig @a.root-servers.net any 123456789.123…890.jp.
                                     <------ 255文字 ----->

  (*2) Additional Record がまったく返らなかった場合、DNSサーバの
       実装によっては、引けなくなってしまう可能性があります。また
       冗長性を考えて、2つ以上返すことが望まれます。

  例えば、2003/06/23 時点の JP DNS サーバの構成では、以下のようにホスト
  名が統一されていないため、DNS のメッセージ圧縮技術があまり有効にならず、
  より多くの JP DNS サーバをルートゾーンに登録することができません。
  
  [JP DNS サーバの構成(2003/06/23時点)]

     ホスト名           IPv4 アドレス   IPv6 アドレス
     ns0.nic.ad.jp      202.12.30.131
     ns-jp.nic.ad.jp    61.120.151.100
     dns0.spin.ad.jp    165.76.0.98
     ns0.iij.ad.jp      202.232.2.34    2001:240::53
     ns.wide.ad.jp      203.178.136.63  2001:200:0:1::4
     ns-jp.sinet.ad.jp  150.100.2.3     2001:2f8:0:100::135

  また、ルートゾーンに IPv6 アドレス (AAAA) が登録できるようになると、最
  大数はさらに減ることになります。


▼ホスト名の統一

  ここで、より DNS のメッセージ圧縮技術が有効になるように、かつ、IPv6 ア
  ドレスが入っても、より多くの NS を返せるようにするために、DNS サーバの
  ホスト名を短い文字列に統一する方法について考えます。

  仮に .JP の DNS サーバを a.dns.jp ~ ?.dns.jp とし、IPv4 アドレスのみを
  持つとした場合、圧縮効果により、登録できる NS の最大数は12台となります
  (12台の場合、Additional Record は2つ返ってくる)。

  次に、.JP の DNS サーバを同じく、a.dns.jp ~ ?.dns.jp とし、各 DNS サー
  バが IPv4 アドレスと IPv6 アドレスを共に持った場合はさらに少なくなります。
  Additional Record に IPv6 アドレスしか返らなかった場合、(*2) と同様に、
  名前解決ができなくなることが考えられます。

  そこで、IPv4, IPv6 アドレスの両方を持つ時の最大数は、応答メッセージの情
  報量が最も多くなる時を踏まえて次のような条件になります。

  [条件]
    上位の DNS サーバに最も長いドメイン名の問い合わせを行った時に、
    UDP の 512 byte 以内に収まり、かつ、Additional Record に 上位
    に登録した全 IPv6 アドレスが返せて、かつ IPv4 アドレスが複数
    返せる時の NS の数。

  この条件を考えるため、登録された NS の数と、Additional Record に入る
  IPv4 (A), IPv6 (AAAA) の関係を調査すると次のようになります。

     NS  AAAA  A  Addi           Status
     ---+-----+--+--------------+------
     3   3     3  AAAA x3, A x3  all
     4   3     4  AAAA x3, A x4  all
     5   3     5  AAAA x3, A x4  part
     6   3     6  AAAA x3, A x3  part
     7   3     7  AAAA x3, A x2  part
     8   3     8  AAAA x3, A x1  part
     9   3     9  AAAA x3, A x0  part
     10  3     10 over           over

     4   4     4  AAAA x4, A x3  part
     5   4     5  AAAA x4, A x2  part
     6   4     6  AAAA x4, A x1  part
     7   4     7  over           over

     5   5     5  AAAA x5, A x1  part
     6   5     6  AAAA x5, A x0  part
     7   5     7  over           over

     6   6     6  over           over
     ---+-----+--+---------------------

     NS    : 登録した NS レコードの数
     AAAA  : 登録した AAAA レコードの数
     A     : 登録した A レコードの数
     Addi  : 返すことのできる AAAA および A の数

     Status
       all : 512 byte を超えることなく Additional Record に、登録
             した全ての AAAA と A が返せる場合
       part: 512 byte 内で、Additional Record に、全ての AAAA と
             一部の A が返せる場合
       over: AAAA を先に全て返そうとすると 512 byte を超えて
             しまう場合

     * SOA レコードのホスト名とメールアドレスは a.dns.jp としている *

  このことから、すべての NS に IPv4, IPv6 アドレスを併記した場合の最も理想の
  NS の数は、3つ(NS=3, IPv4=3, IPv6=3) となります。

  また Additional Record に複数の IPv4 アドレスが返せる NS の数は、4つ(NS=4,
  IPv4=4, IPv6=4)、または 5つ(NS=5, IPv4=5, IPv6=4)などがあります。

▼まとめ

  以上のことから、IPv6 をサポートする際には DNS サーバのホスト名を統一すること
  が強く求められることがわかります。

  なお、IPv4 のみの場合であれば、ホスト名を短くすることで TLD の場合で12台ま
  でとなります。

  また、副次的な効果になりますが dns.jp ゾーンそのものを、その DNS サーバに持
  たせることで委任関係がシンプルになります。

  ここでは、TLD (.JP) の DNS サーバについてその最大数について考察しましたが、
  SLD や 3LD の DNS サーバにおいても当てはまることになります。具体的には、非
  常に長いドメイン名を登録されている場合には、DNS サーバの最大数に注意が必要
  です。


株式会社日本レジストリサービス Copyright©2001-2016 Japan Registry Services Co., Ltd.