以前の記事「マルチホーミング機器講習」に関連して、今日はDNSのNSレコードの話をします。
http://www.atmarkit.co.jp/fnetwork/dnstips/030.html などにもありますように、NSレコードはサブドメインなどのレコードの名前解決を他のDNSサーバに委任する場合に使用します。
DNSの基本的なことであれば、同じ@ITさんのhttp://www.atmarkit.co.jp/fnetwork/rensai/dns01/dns01.html とかがわかりやすいかと思います。
マルチホーミング機器の場合、たとえばwww.example.co.jpというWebサーバを公開していて、そのサーバへのアクセス回線を2回線に分散したい、という場合を考えます。
1つの方法としては、「マルチホーミング機器をexample.co.jpを管理するDNSサーバとして使用する」となります。この場合には、ドメイン名を取得する場合に、example.co.jpを管理するDNSサーバとしてマルチホーミング機器のそれぞれのインターフェイスのIPアドレスをJPRSなどに登録すればよい、ということになります。
ただし、自社ですでにDNSサーバを持っていて、既存のレコードをすべてマルチホーミング機器にうつすのは難しいとか、マルチホーミング機器のDNSサーバがBINDの完全な機能を持っておらず一部しかサポートしていない、というような場合には、「example.co.jpの名前解決はこれまでどおり自社のDNSサーバで行なうが、www.example.co.jpのみマルチホーミングで名前解決させる(名前解決の際に、返すAレコードは負荷分散アルゴリズムによって決める)」という方法をとることが多いかと思います。この場合には、「www.example.co.jpの名前解決はマルチホーミング機器に委任する」ということで、NSレコードを使うことになります。
例:”www.example.co.jp IN NS マルチホーミングのIPアドレス”
ちなみに、一昨年くらいから大きな話題になった「DNSキャッシュポイズニングの新攻撃手法:カミンスキーアタック」もNSレコードのしくみがわかると理解できるかと思います。
たとえば、www.example.co.jpのAレコードに対して毒入れしたい場合には、攻撃者は毒入れしたいAレコードそのものの名前解決に対して偽装するのではなく、dummy.example.co.jpなどダミーのレコードについて毒入れ対象のDNSキャッシュサーバに問い合わせ、example.co.jpのDNSサーバから「そんなレコードはない」という応答が来る前に、「dummy.example.co.jpの名前解決についてはwww.example.co.jpに聞け(NSレコード)」という偽の応答をDNSキャッシュサーバに返して、そのwww.exaple.co.jpのIPアドレスも攻撃者が用意したサーバのものになるように偽装する、というような方法をとります。
(参考サイト:
http://www.nic.ad.jp/ja/newsletter/No40/0800.html
http://www.atmarkit.co.jp/fsecurity/special/130dnspoisoning1/dnspoisoning01.html
http://www.atmarkit.co.jp/fsecurity/special/131dnspoisoning2/dnspoisoning01.html )
こんな形で、派生して考えると多少はわかりやすいかな、と思います。
この記事が気に入りましたら、また、お役に立ちましたら、以下のアイコンをクリックしていただけると嬉しいです(^^)
![ブログランキング・にほんブログ村へ](http://www.blogmura.com/img/www88_31.gif)