------------------------------------------------------------------------
■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-2024 Japan Registry Services Co., Ltd.