







■ 「これでいいのか TTL - 短いDNS TTLのリスクを考える」を256倍楽しむには ■
ごめんなさい、256倍は楽しめないかもしれません……が、これだけの前知識があれば、より発表内容を理解し、議論に加わりやすくなるはず!というものをご紹介したいと思います。
a) UDPの特性
b) DNSサーバの種類
c) DNS Queryのパケットフォーマット
d) DNSのTTLって具体的になに?
e) BINDってなに?
以下、簡単にですが、各項目に触れていきます。
a) UDPの特性
これは、釈迦に説法でしょうか。あまり小難しく考えて頂く必要はなく、IPアドレスの送信元、宛先の偽造が、TCP以上に見分け辛いということさえ押さえていただければよいかと思います。
b) DNSサーバの種類
一口にDNSサーバといっても、DNSサーバには、大きくわけて、「DNS権威サーバ」と呼ばれるものと「DNSキャッシュサーバ」というものの2種類あります(兼ねているものもあります)。前者は、特定のドメインへの問い合わせに答えるサーバで、これがマスタデータを保持していることになります。後者は、自身が情報として持っていないドメインへの問い合わせを代理で行い、その返答をキャッシュとして保持。次回の問い合わせから、高速に返答することができます。みなさんがお使いのマシンには、基本的に、後者のDNSキャッシュサーバが指定されていると思います。
c) DNS Queryのパケットフォーマット
DNSのクエリには、16bitの識別子用領域が用意されていて、これをクライアント側で設定。サーバ側が返事をする際に、そのクライアントで設定された識別子を埋めて、クライアントに返します。クライアントは、この識別子が一致したことを確認して、問い合わせに対するその返答であることを認識できます。
なお、ここでいうクライアントとは、DNSクエリを投げるもの(PC等のユーザクライアントやDNSキャッシュサーバ)、サーバ側とは、それに応答するもの(DNSキャッシュサーバやDNS権威サーバ)となります。
d) DNSのTTLって具体的になに?
ルーティングにおけるTTL……とはほとんど関係なかったりします。DNSでいうところのTTLとは、DNS権威サーバから得た情報を、DNSキャッシュサーバが保持してよい、データとしての生存時間(秒)を意味します。ここでいうTTLとは、SOAにおけるTTLとは異なります。
参考
http://www.atmarkit.co.jp/flinux/rensai/bind902/bind902b.html
e) そもそもBINDってなに?
ISC(Internet Systems Consortium)が提供している、おそらく世界でもっとも利用されているDNSサーバの実装です。Apacheに 1.3系と 2.x系があるように、PHPの実装に PHP4, PHP5があるように、BINDの実装にも大きくわけて BIND8系と、BIND9系があります。


コメントの受付を停止しております。
質問、疑問に関してはメーリングリストにお願いいたします。