DNSの概要を理解するために、ざっくりとまとめたメモです。
DNS (Domain Name System)とは
システム・サーバー間の通信を行う際に、
ドメイン名とIPアドレスの対応付け(名前解決)や、宛先ホストを指示するためのシステム。
DNSを使った問い合わせの流れ
DNSサーバはサーバを分散させたり、キャッシュを行うことで、
大量のアクセスにも耐えられるようになっている。
① WebサーバのIPアドレスの確認のため、DNSキャッシュサーバに問い合わせ。
② DNSキャッシュサーバは、過去にあった問い合わせ情報を確認。
情報なし、または、有効期限(TTL)切れの場合、ルートDNSサーバに問い合わせ。
(情報があった場合は、過去に問い合わせ済のIPアドレスを回答)
③ DNSルートサーバは、管理情報(IPアドレスなど)を持っているDNSサーバ .com
を回答。
④ DNSキャッシュサーバは、③で回答されたDNSサーバ .com
に問い合わせ。
⑤ DNSサーバ .com
は、管理情報を権限移譲していため、そのDNSサーバー aaa.com
を回答。
⑥ DNSキャッシュサーバは、⑤で回答されたDNSサーバ aaa.com
に問い合わせ。
⑦ DNSサーバ aaa.com
は、管理情報を持っているため、IPアドレスを回答。
⑧ DNSキャッシュサーバは、問い合わせできたIPアドレスで、クライアントに回答。
⑨ クライアントは、IPアドレスでWebサーバにアクセス。
参考サイト
- 【図解】DNSサーバーとは?設定・変更と確認方法 | カゴヤのサーバー研究室
- インターネット10分講座 DNS - JPNIC
- DNSの仕組みの基本を理解しよう:DNSの仕組みと運用(1) - @IT
DNSルートサーバ
DNSキャッシュサーバーが最初に問い合わせをするサーバーで、世界中に13機のみ。
DNSキャッシュサーバ(フルリゾルバ)
ドメイン名に対応するIPアドレス情報を一時的に保存しているサーバ。
過去に問い合わせ済であれば、そのIPアドレスを回答し、
問い合わせなし、または、有効期限(TTL)切れの場合、ルートDNSサーバに問い合わせを行う。
IPアドレスをキャッシュすることで、
「DNS問い合わせの処理時間短縮」「ルートDNSサーバの負荷軽減」を実現。
参考サイト
TTL(Time To Live)
DNSキャッシュサーバがキャッシュする情報の有効期限。
TTLが有効な間は、DNSキャッシュサーバー上にあるIPアドレスをクライアントに回答するが、
期限が切れた場合は、キャッシュから情報を削除し、
再度DNSルートサーバに問い合わせして最新情報を取得する。
DNSレコード
IPアドレスや権限移譲先のDNSサーバなどの情報など、DNSサーバに登録されているレコード。
DNSの問い合わせは、このレコードをDNSサーバが回答することで、名前解決を行っている。
レコード種別 | 内容 |
---|---|
A | ホストのIPアドレス(IPv4) |
AAAA | ホストのIPアドレス(IPv6) |
SOA | ゾーン(ドメイン)情報 |
NS | ドメインのDNSサーバ名 |
CNAME | ホスト名のエイリアス(別名) |
PTR | IPアドレスに対するホスト名(逆引き) |
MX | ドメインのメール・サーバ名 |
HINFO | ホストの追加情報。ホストのハードウェア・ソフトウェア(OS)情報。 |
WKS | ホストで実行されているサービス情報(Well Known Services) |
TXT | ホストへのテキスト情報 |
Aレコード
項目 | 設定値(例) | 説明 |
---|---|---|
Name | www.aaa.com. |
ドメイン名 |
TTL | 300 | キャッシュサーバ上でのレコードの有効期限 |
Type | A | レコード名 |
Value | 123.456.789.123 | IPアドレス(IPv4)。複数設定可能。 |
SOAレコード
DNSサーバの親・子のうち、子のみが保有し、ドメインのゾーンの起点(親)を示すレコード。
項目 | 設定値(例) | 説明 |
---|---|---|
Name | @ | 「@」の場合ゾーン名自身を示す。 |
TTL | 300 | キャッシュサーバ上でのレコードの有効期限 |
Type | SOA | レコード名 |
Value | aaa.com. email.aaa.com. 1 7200 900 1209600 86400 |
<MNAME+RNAME+SERIAL+REFRESH+RETRY+EXPIRE+MINIMUM> MNAME:基となるデータを持つネームサーバの名前 RNAME:このドメインの管理者のメールアドレス(@は.に置換) SERIAL:ゾーンファイルのバージョン REFRESH:ゾーンの情報をリフレッシュするまでの時間 RETRY:REFRESHでリフレッシュNGのときのリトライの時間 EXPIRE:リフレッシュNG時の、セカンダリネームサーバ上のデータ有効時間 MINIMUM:ネガティブキャッシュ(存在しないドメイン情報)の保有時間 |
NSレコード
ドメインのDNSサーバ名を示すレコードで、
DNSサーバの親・子双方で保有し、権限移譲の状態を表している。
【例】子DNSサーバ:aaa.com
(Aレコード(IPアドレス)保有しているサーバ)
項目 | 設定値(例) | 説明 |
---|---|---|
Name | @ | 「@」の場合ゾーン名自身を示す。 |
TTL | 300 | キャッシュサーバ上でのレコードの有効期限 |
Type | NS | レコード名 |
Value | www.aaa.com. |
権限移譲先のネームサーバ(子DNSサーバ自身) |
【例】親DNSサーバ:com
(Aレコードを持っておらず、子サーバに権限移譲している)
項目 | 設定値(例) | 説明 |
---|---|---|
Name | aaa | 子DNSサーバ名(最後の「.」なしで、後ろの「.com.」を省略) |
TTL | 300 | キャッシュサーバ上でのレコードの有効期限 |
Type | NS | レコード名 |
Value | www.aaa.com. |
権限移譲先のネームサーバ(子DNSサーバ) |
CNAMEレコード
ホスト名のエイリアス(別名)を示すレコード。(Canonical NAME)
特定のホスト名を、別のドメインに転送できる。
以下の例だと、
http://www.aaa.com
のアクセスを、http://www.bbb.com
に転送する。
【例】DNSサーバ:aaa.com
項目 | 設定値(例) | 説明 |
---|---|---|
Name | www | ホスト名(最後の「.」なしで、後ろの「.aaa.com.」を省略) |
TTL | 300 | キャッシュサーバ上でのレコードの有効期限 |
Type | CNAME | レコード名 |
Value | www.bbb.com |
転送先のドメイン |
参考サイト
- DNSの仕組みの基本を理解しよう:DNSの仕組みと運用(1) - @IT
- レコードの種類9つ紹介!DNSの概要や特徴についても解説 | テックマガジン from FEnetインフラ
- 親の心子知らず?委任にまつわる諸問題について考える~ランチのおともにDNS~(PDF)
- IIJ DNSプラットフォームサービス オンラインマニュアル - DNSレコードの登録ルール
- @IT:DNS Tips:ゾーンファイルの書き方について教えてください
- 【ドメイン】DNSレコード設定の各レコードの意味を教えてください。|ヘルプサポート | ドメイン取るならお名前.com
ドメインとは
インターネット上に存在するコンピューターやネットワークを識別するための名前。
サーバーにアクセスするにはIPアドレスが使われるが、数字だと分かりにくいため、
IPアドレスとセットになる名前(=ドメイン)を使うことで、ホスト名を管理しやすくしている。
(郵便番号と住所のような関係)
ドメイン名はIPアドレスの別名なだけであり、
IPアドレスを使ってもドメイン名(DNSの仕組みを利用)を使っても、同じサーバにアクセスできる。