LoginSignup
10
10

More than 1 year has passed since last update.

【勉強メモ】DNSの仕組み

Last updated at Posted at 2021-09-19

DNSの概要を理解するために、ざっくりとまとめたメモです。

DNS (Domain Name System)とは

システム・サーバー間の通信を行う際に、
ドメイン名とIPアドレスの対応付け(名前解決)や、宛先ホストを指示するためのシステム。
image.png

DNSを使った問い合わせの流れ

DNSサーバはサーバを分散させたり、キャッシュを行うことで、
大量のアクセスにも耐えられるようになっている。
image.png

① 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ルートサーバ

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レコード

ホストのIPアドレス(IPv4)を示すレコード。
image.png

項目 設定値(例) 説明
Name www.aaa.com. ドメイン名
TTL 300 キャッシュサーバ上でのレコードの有効期限
Type A レコード名
Value 123.456.789.123 IPアドレス(IPv4)。複数設定可能。

SOAレコード

DNSサーバの親・子のうち、子のみが保有し、ドメインのゾーンの起点(親)を示すレコード。
image.png

項目 設定値(例) 説明
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サーバの親・子双方で保有し、権限移譲の状態を表している。
image.png

【例】子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に転送する。
image.png

【例】DNSサーバ:aaa.com

項目 設定値(例) 説明
Name www ホスト名(最後の「.」なしで、後ろの「.aaa.com.」を省略)
TTL 300 キャッシュサーバ上でのレコードの有効期限
Type CNAME レコード名
Value www.bbb.com 転送先のドメイン

参考サイト

ドメインとは

インターネット上に存在するコンピューターやネットワークを識別するための名前。

サーバーにアクセスするにはIPアドレスが使われるが、数字だと分かりにくいため、
IPアドレスとセットになる名前(=ドメイン)を使うことで、ホスト名を管理しやすくしている。
(郵便番号と住所のような関係)
image.png

ドメイン名はIPアドレスの別名なだけであり、
IPアドレスを使ってもドメイン名(DNSの仕組みを利用)を使っても、同じサーバにアクセスできる。

image.png

参考サイト

10
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10