------------------------------------------------------------------------ ■JP DNSサーバの構成について - 2008年10月版 - 2008/10/06(Mon) ------------------------------------------------------------------------ ▼本文書について これまでのJP DNSサーバ(以下JP DNS)およびルートサーバの運用状況を考慮 しながら、2008年10月以降のJP DNSの構成について記します。 ▼これまでのJP DNSの構成 JP DNSは過去の変更(*1, *2)等により、2008年9月末時点では以下の構成となっ ています。 --------------------------------------------------------- 名前 IPv4 アドレス IPv6アドレス -------------+------------------+------------------------ a.dns.jp 203.119.1.1 2001:dc4::1 b.dns.jp 202.12.30.131 d.dns.jp 210.138.175.244 2001:240::53 e.dns.jp 192.50.43.53 2001:200:c000::35 f.dns.jp 150.100.2.3 2001:2f8:0:100::153 --------------------------------------------------------- *1 DNS サーバの最大数について http://jprs.jp/tech/jp-dns-info/2003-07-10-max-number-of-dns-server.html *2 JP DNSサーバの構成変更について http://jprs.co.jp/topics/050318.html 今後は下記検討に基づき、JP DNSのさらなる安定運用を目指した増強を行っ ていきます。 ▼DNSサーバの最大数について 「DNSサーバの最大数について」(*1)では、上位の DNS サーバ(JP DNSの場合 ルートDNSサーバ、以下ルートサーバ)に最も長いドメイン名の問い合わせを 行った時に、DNSのデータが512 バイト 以内に収まり、かつ、Additional Sectionに登録した全 IPv6 アドレスが返せて、かつ IPv4 アドレスが複数返 せる時の NS の数という条件を元に考察を行っていました。 「IPv6アドレスが全部返せて」という条件は、ルートサーバがAdditional SectionにIPv6アドレスを優先して返す可能性を想定したものです(リスト1 (1))。しかしながら実際のルートサーバで、IPv6アドレスを優先して返すよ うな実装は現時点で存在しません。現実のルートサーバはAdditional SectionにIPアドレスを詰める場合、IPv4アドレスとIPv6アドレスを交互に並 べる実装(リスト1 (2a))と、IPv4アドレスを優先的に詰め込みその後IPv6ア ドレスを詰めるような実装(リスト1 (2b))の2種類が存在します。 ------------------------------------------------------------------- リスト1 2つのDNSサーバA.JP、B.JPでそれぞれIPv4アドレスとIPv6アドレスがある場 合のルートサーバでのAdditional Sectionのレコードの並べ方 「DNSサーバの最大数について」で検討したルートサーバのAdditional Section (1) IPv6アドレスが優先される場合がある A.JP. IN AAAA <A.JPのIPv6アドレス> B.JP. AAAA <B.JPのIPv6アドレス> A.JP. A <A.JPのIPv4アドレス> B.JP. A <B.JPのIPv4アドレス> 実際のルートサーバのAdditional Section (2a) IPv4アドレスとIPv6アドレスを交互に名前順 A.JP. IN A <A.JPのIPv4アドレス> A.JP. AAAA <A.JPのIPv6アドレス> B.JP. A <B.JPのIPv4アドレス> B.JP. AAAA <B.JPのIPv6アドレス> (2b) IPv4アドレスを優先して名前順 A.JP. IN A <A.JPのIPv4アドレス> B.JP. A <B.JPのIPv4アドレス> A.JP. AAAA <A.JPのIPv6アドレス> B.JP. AAAA <B.JPのIPv6アドレス> ----------------------------------------------------------------- 細かい説明は省略しますが、JPドメイン名の場合、最も長いドメイン名の問 い合わせをルートサーバに対して行うと、その応答パケットではDNSパケット のヘッダと問合せ名などで275バイト消費します。EDNS0を使わない通常の DNSパケットのUDPでの最大長は512バイトですから、 512 - 275 = 237 となり237バイトをAuthority SectionとAdditional Sectionで利用すること になります。 JP DNSの場合、DNSサーバのドメイン部分を統一したことで、Authority Section にはDNSサーバ名ごとに16バイト、Additional SectionにはIPv4アド レスの場合16バイト、IPv6アドレスには28バイト消費します。 「DNSサーバの最大数について」(*1)では、IPv4でEDNS0を使わない場合の条 件で検討しました。IPv6の通信に対応している場合は比較的新しい実装であ るためEDNS0を組み合わせることでUDPでの応答サイズが512バイト超えても問 題ないので、以後IPv4でEDNS0を使わない通信の場合について検討します。 現実のルートサーバの実装では、Additional SectionにIPv6アドレスを優先 して詰めることは無いので、IPv4アドレスを少なくとも2個返せるようにする ためには、(2a)の場合を考えるとAdditional Sectionに、IPv4アドレス、 IPv6アドレス、IPv4アドレスと並ぶ場合となります。このときネームサーバ に利用できるバイト数を計算すると 237 - (16 + 28 + 16) = 177 177バイト分がネームサーバ名に利用できるので、 177 ÷ 16 = 11.0625 DNSサーバは11個設定できることになります。 また(2b)の場合、Additional SectionがすべてIPv4アドレスだけになり、少 なくとも2個のIPv4アドレスを返すと考えると 237 - (16 × 2) = 205 205バイト分がネームサーバ名に利用できることになり 205 ÷ 16 = 12.8125 DNSサーバは12個設定できることになります。 ルートサーバには(2a)と(2b)が存在することを考えると、11個のネームサー バまでは問題ないと言えます。 ▼IPv4だけのDNSサーバについて JP DNSでもIPv4とIPv6デュアルスタックのサーバが増えつつあり、2008年9月 末時点でIPv4だけのサーバはb.dns.jpだけとなっています。このb.dns.jpも、 2008年中にIPv6対応となりデュアルスタックでの運用を予定しています。 JP DNSなどの権威サーバですべてのDNSサーバがIPv4/IPv6のデュアルスタッ クになると、キャッシュサーバの実装とそのネットワーク環境によっては不 具合がおきることがあるという報告があります。これについての詳細は未確 認ですが、JP DNSでは、運用面の安全性を考慮し当面の間IPv4だけのサーバ を維持する方針で運用するため、新たにg.dns.jpをIPv4のみのサーバとして 追加します。 ▼ JP DNS構成 JP DNSの最新の構成は以下のリンクよりご確認下さい。 http://www.dns.jp/index-j.html