いまさら聞けない【情シス知識】DNSって何するもの?
聞いたことはあるけれど実はよく知らない、でも知っておいた方がイイよねという、そんな小さな疑問を解決する情シス基礎知識シリーズ。今回は、インターネットをするとき誰もが陰でお世話になっている、DNSについて紹介します。
この記事の目次
DNS(Domain Name System)ってなあに?
DNSとは、「Domain Name System」の略で「ディーエヌエス」と読みます。DNSサーバーは名前解決の機能を持つサーバーのことを指しています。「ネームサーバー」と呼ばれることもあります。
DNSと名前解決について理解するには、まずインターネットアクセスの仕組みを理解しなければなりません。
ひとまずインターネットについておさらいしてみましょう。
インターネットとIPアドレス、そしてURL
インターネットは、世界中にあるパソコンやサーバーの集まっているネットワークのことです。お互いの端末を情報が行き来することで、いつでもどこからでもWebサイトを利用することができます。(参考記事:いまさら聞けない【情シス知識】INTERNETの仕組み)
インターネットを使うとき、目的の情報を持っているのはどのサーバーなのかを特定することが必要になります。
それを特定するための情報がIPアドレスです。
IPアドレスは、全世界で一意に振られており、IPアドレスを指定すればインターネットを通じて全世界のどこの端末へも正しくアクセスすることができます。
IPアドレスをドメインに置き換える、それがDNSの役目です
IPアドレスは、数字とドット(IPv4の場合)、または16進数の数字とコロン(IPv6の場合)で構成されています。
(IPv4の表記例) 192.0.2.0
(IPv6の表記例) 2001:0db8:1234:5678:90ab:cdef:0000:0000IPアドレス表記の例(JPNICサイトより)
上記のように、ただひたすら無意味な英数字が羅列された形式をしているため、覚えにくく間違えやすいのが難点です。端末数の少ない閉じたネットワークであれば、IPアドレスのメモをデスクトップかどこかに張り付けておけばよいかもしれません。しかしながらインターネットのように無限に広がり、さまざまなサイトにアクセスする場合はこれではちょっと不便です。そこで、IPアドレスをドメインという名前に置き換えて、人にとって見やすく覚えやすいURLの形で扱うようになりました。
ドメインとは、本サイトのURLでいえば「josys-navi.hiblead.co.jp」の部分のことです。このドメイン部分がIPアドレスと対応しており、全世界で一意に定められています。
そして、DNSサーバーはどのドメインが実際はどのIPアドレスを指しているのかがわかるよう、IPアドレスとドメインのマッピング情報を保持しているのです。
DNSサーバーは人が扱うドメインを、実際の通信時にIPアドレスに変換する機能を担っています。
こうしたIPアドレスとドメインの対応付けを明らかにすることを「名前解決」といいます
DNSサーバーの名前解決の仕組み
世界中のIPアドレスとドメインを管理するためには、当たり前ですがDNS一台やそこらではとても収まりません。DNSサーバーは世界中に多数点在し、それらが連携し合って分散型サーバーとして利用されます。
名前解決に至るまでの流れは以下の通りです。
1.ブラウザからリクエスト
まず、ブラウザ側ではドメインの情報のみを持っています。そして目的のドメインにアクセスするため、問い合わせ用のDNSサーバー(DNSキャッシュサーバー)にアクセスします。
DNSキャッシュサーバー
キャッシュサーバーとは、階層化されているDNSサーバーに名前解決の問い合わせをするためのサーバーです。ここから、まずはルートDNSサーバーと呼ばれる上位サーバーにアクセスします。
2.ルートDNSサーバー
名前解決のルート(根)となるDNSサーバーでは、例えば「josys-navi.hiblead.co.jp」のうち最上位の「jp」のドメインを管理している下位DNSサーバーを教えてくれます。
3.下位DNSサーバー
「jp」のドメインを管理する下位DNSサーバーを知ることができたら、次はそのDNSサーバーに目的のドメインを管理するDNSサーバーを教えてもらいます。そして必要に応じてさらにその下位のDNSサーバーへとリレーしていき、最終的に目的のドメインを管理しているDNSサーバーにたどりつきます。
4.キャッシュサーバーからIPアドレス情報を返す
キャッシュサーバーは得られたIPアドレス情報をブラウザに返します。ここまできてやっとIPアドレス情報を得ることができます。
5.ブラウザからWebサイトへアクセス
得られたIPアドレスによってブラウザは目的のWebサイトにアクセスすることができます。
なお、WebアクセスのみでなくEメールについてもこの流れと同様にしてメールの送り先のサーバーの名前解決が行われています。
各階層でのDNSサーバーの役割
DNSキャッシュサーバー
名前解決の最初のステップとなるのがキャッシュサーバーです。ルートサーバーには世界中から多くのアクセスが集中するため、その負荷を少しでも軽減する必要があります。そこで、同じ内容の問い合わせが重複することを防ぐため、このサーバーではこれまでの問い合わせ情報をキャッシュしておきルートサーバーへの問い合わせ回数を削減しています。
キャッシュの内容は一定時間でクリアされ、もし問い合わせ先のサーバー情報が変更されたとしても一定期間で反映することができます。
ルートDNSサーバー
ルートとなるサーバーは全世界で13システム存在します。A~Mまでのアルファベットを冠した「x.ROOT-SERVERS.NET」(xにA~Mが入る)というホスト名のDNSサーバーで、アメリカやスウェーデンなどの組織が別個に運用しています。
<画像出典:JPNIC>
このルートサーバーが機能していないと世界中のWebアクセスが滞ってしまいます。予期せぬ障害や攻撃によるシステムダウンの防止、またパフォーマンス向上のため、13システムはそれぞれ冗長化・分散化され、世界中に多数拠点を持ちその信頼性と性能を保っています。
下位のDNSサーバー
下位のDNSサーバーはさらに階層化されています。
例えば「com」や「jp」などの上位要素を管理するDNSサーバーは「Top Lebel Domain」と呼ばれ、その下を「Second Level Domain」「Third Level Domain」と呼びます。
それぞれのレベルにも多数のDNSサーバーが存在し、さまざまな組織が運用を行っています。
DNSのセキュリティ
このように、DNSサーバーは世界的に重要な役割を持っています。それが故に、悪意のある者から攻撃を仕掛けられることもしばしばです。
例えば、DNSを標的にした攻撃では「DNS水責め攻撃」という手口があります。戦国時代のような名称ですが、これは実在するドメインを基に作り上げたランダムなサブドメインに対するリクエストを大量に送り付けるという手法がとられます。キャッシュサーバーは自分が持っていない情報に対してはDNSサーバーに問い合わせに行くため、ランダムに作成された大量のドメインに対して大量のアクセスが発生してしまい、性能の低下や最悪の場合サービス停止となってしまいます。
また、DNSサーバーの持つ情報を偽物にすり替えてユーザーを攻撃者のサーバーに誘導するなど、DNSが他の対象への攻撃に利用する目的で利用されてしまうこともあります。
こうした攻撃からDNSを守るため、DNSファイヤーウォールや「DNSSEC」と呼ばれる鍵認証などのセキュリティ機能が取り入れられるようになっています。
【執筆:編集Gp 星野 美緒】