DNS基礎のおさらい
はじめに
先日業務上SPFレコードを設定することがあったのですが、DNSの知識について振り返る良い機会だったのでその時調べたことを記事にします。
そもそもDNSって何?
ネットワークにおいて、Webサイトの所在を表す識別番号(IPアドレス)は、人が識別しやすいように任意の文字(ドメイン名)に置き換えられています。このIPアドレスとドメイン名を紐づけし、ネットワーク上で管理するシステムをDNS(=Domain Name System)といいます。私たちが指定したドメインを入力することでWebサイトにたどり着くことができるのは、DNSという仕組みがあるからですね。
※ドメイン名からIPアドレスを特定することを「正引き」といい、反対にIPアドレスからドメイン名を特定する「逆引き」といいます。
なお、DNSを実行するためにはDNSサーバー(ドメイン名とIPアドレスを紐付け、変換するサーバー)と呼ばれるものが必要です。
DNSサーバー?
DNSサーバー(ネームサーバー)とは、ドメイン名とIPアドレスを紐付けるための仕組みを提供するサーバーのことです。ややこしいですが、DNSとDNSサーバーの関係はそれぞれ以下のようになります。
- DNS:インターネット上のドメイン名と対応するIPアドレスを紐づけ、ネットワーク上で管理するためのシステム
- DNSサーバー:DNSの情報を格納し、リクエストに応じてドメイン名から対応するIPアドレスを提供するサーバー
ちなみに・・・DNSサーバーは1台のみで全世界のIPアドレスとドメイン名を把握しているのではなく、ドメインのレベルごとにサーバーを階層化・分散して、ドメイン名とIPアドレスの対応を管理しています。
階層はドメイン名の構造から見てとれます。ドメイン名はドット(.)で区切られた複数の部分から成っていて、一番右側が最も広い領域を指し、順に範囲を狭めていく階層構造になっています。
例)sample.co.jp
jp=トップレベルドメイン(TLD)
co=セカンドレベルドメイン(2LD)
sample=サードレベルドメイン(3LD)
DNSサーバーには「キャッシュDNSサーバー」と「権威DNSサーバー」というものがあります。
キャッシュDNSサーバーって何?
キャッシュDNSサーバーとは、インターネットに接続しているスマホ・PC等のデバイスの直接の問い合わせ先であるDNSサーバーです。
また、ドメイン名と対応するIPアドレスの情報を一時的に保存(キャッシュ)する役割を持っています。そのため、複数のクライアントから同じドメイン名について問い合わせされた場合、権威DNSサーバーに直接問い合わせずに応答できるため、処理速度が速くなり、ネットワークの負荷も軽減されます。
キャッシュDNSサーバー内に答えがない場合は、更に権威DNSサーバーに問い合わせることで答えを導き出します。
権威DNSサーバーって何?
権威DNSサーバーは特定のドメインのIPアドレス情報などを保持するDNSサーバーで、キャッシュDNSサーバーの問い合わせ先となるサーバーです。キャッシュDNSサーバー内で変換できなかった内容についての回答を行います。ひとつの権威DNSサーバーで解決ができなければ、ドメイン名の情報を持っていそうな他の権威DNSサーバーに問い合わせ、解決に導きます。
ドメイン名のレベル(TLD・2LD等)ごとに権威DNSサーバーが用意されいて、それぞれのドメインのIPアドレス情報および下位ドメインの情報が登録されています。
階層の起点であるルートサーバーにはTLDの情報が登録されています。そしてTLDの権威DNSサーバーには、そのTLD+2LDの情報が登録されていて、2LDの権威DNSサーバーには2LD+3LDの情報が登録されている。ルートDNSサーバーから順に階層をたどって問い合わせしていけば、目的のドメイン名のIPアドレスを取得できるわけですね。
上図のように正引き、逆引きでIPアドレスorドメインを取得することを「名前解決」といいます。
参考サイト
Discussion