21
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DNSの仕組みを理解する — 名前解決の流れをステップで追う

21
Posted at

はじめに

ブラウザでWebページが表示されるまでに、裏側で何が起きているか説明できますか?
「なんとなくサーバーにアクセスしている」——そのイメージは正しいですが、実際にはその前段階でもう一つの重要な処理が走っています。

URLを入力してからページが表示されるまでに、裏側ではDNS(Domain Name System) による「名前解決」が行われています。

「IPアドレスに変換する仕組み」というのは知っていても、実際にどのサーバーが何をしているのかまで説明できる人は少ないかもしれません。
この記事では、DNS名前解決の流れをステップごとに丁寧に追っていきます。


DNSとは?

DNSは、ドメイン名(例:www.example.com)をIPアドレスに変換する仕組みです。

人間が覚えやすいドメイン名と、コンピューターが通信に使うIPアドレスを対応づけています。電話帳に例えると、「名前(ドメイン)→電話番号(IPアドレス)」を引いているイメージです。


登場人物の整理

DNS名前解決には、以下の4つのサーバーが登場します。

┌─────────────────────────────────────────────────────┐
│                                                     │
│  ① スタブリゾルバー(PCやスマホの内部)                 │
│         ↕                                           │
│  ② フルサービスリゾルバー(キャッシュDNSサーバー)          │
│         ↕                                           │
│  ③ ルートDNSサーバー                                  │
│         ↕                                           │
│  ④ 権威DNSサーバー(TLDサーバー + コンテンツサーバー)     │
│                                                     │
└─────────────────────────────────────────────────────┘
名称 役割
スタブリゾルバー PCやスマホに内蔵。フルサービスリゾルバーに問い合わせる
フルサービスリゾルバー(キャッシュDNSサーバー) ISP(プロバイダー)や企業が運用。実際に問い合わせを行い、結果をキャッシュする
ルートDNSサーバー DNS階層の最上位。世界に13種類(a〜m.root-servers.net)存在
権威DNSサーバー 特定ドメインの正式な情報を持つサーバー。TLDサーバーとコンテンツサーバーに分かれる

DNS名前解決の流れ(www.example.com の場合)

PC(スタブリゾルバー)
   │
   │① www.example.comのIPアドレスを教えて
   ▼
フルサービスリゾルバー(キャッシュDNSサーバー)
   │
   │(キャッシュになければ外部に問い合わせ)
   │
   │② .com を管理してるのはどこ?
   ▼
ルートDNSサーバー
   │
   │③ .com のTLDサーバーのIPはXXXだよ
   ▼
フルサービスリゾルバー(キャッシュDNSサーバー)
   │
   │④ example.com を管理してるのはどこ?
   ▼
TLDサーバー(.com を管理)
   │
   │⑤ example.com の権威サーバーのIPはYYYだよ
   ▼
フルサービスリゾルバー(キャッシュDNSサーバー)
   │
   │⑥ www.example.com のIPアドレスは?
   ▼
権威DNSサーバー(example.com を管理)
   │
   │⑦ 93.184.216.34 だよ
   ▼
フルサービスリゾルバー(結果をキャッシュ)
   │
   │⑧ 93.184.216.34 だよ
   ▼
PC → 93.184.216.34 に接続

各ステップの詳細

ステップ①:PCからフルサービスリゾルバーへ

PCはOSの設定に登録されているキャッシュDNSサーバー(フルサービスリゾルバー)に問い合わせます。
このDNSサーバーのIPアドレスは、家庭ではルーターから自動取得(DHCP)されるのが一般的です。

# Windowsで確認
ipconfig /all

# macOS / Linuxで確認
cat /etc/resolv.conf

ステップ②〜⑦:反復問い合わせ(イテレーティブクエリ)

フルサービスリゾルバーは自分でルートサーバーから順番に問い合わせていきます。
この方式を反復問い合わせ(Iterative Query)といいます。

フルサービスリゾルバーが「自分で全部調べて返す」のがポイントです。クライアント(PC)は1回問い合わせるだけでIPアドレスが返ってきます。

ステップ⑧:キャッシュへの保存

フルサービスリゾルバーは取得した結果をTTL(Time To Live)の時間だけキャッシュします。
次回同じドメインへの問い合わせはキャッシュから即座に返せるため、名前解決が高速になります。


DNSのレコード種類

権威DNSサーバーには様々な種類のレコードが登録されています。

レコード 内容
A ドメイン → IPv4アドレス www.example.com → 93.184.216.34
AAAA ドメイン → IPv6アドレス www.example.com → 2606:2800:...
CNAME ドメイン → 別ドメイン(エイリアス) shop.example.com → example.myshopify.com
MX メール配送先サーバー example.com → mail.example.com
NS 権威DNSサーバーの指定 example.com → ns1.example.com
TXT テキスト情報(SPF・DKIM等) v=spf1 include:...
PTR IPアドレス → ドメイン(逆引き) 93.184.216.34 → www.example.com

TTLとキャッシュの仕組み

TTLはレコードをキャッシュしておける時間(秒)です。

; example.com のゾーンファイル(イメージ)
www  300  IN  A  93.184.216.34
          ↑
          TTL = 300秒(5分)

TTLが切れるまでは、フルサービスリゾルバーはキャッシュから応答します。そのため、DNSの設定変更が反映されるまでにTTLの時間がかかることがあります。


ルートDNSサーバーとは?

DNSの階層構造の最上位に位置するサーバーです。世界中に 13種類(a〜m.root-servers.net) 存在し、それぞれが数百台〜数千台のサーバーで構成されています。

.(ルート)
├── .com
│   ├── example.com
│   └── google.com
├── .jp
│   ├── yahoo.co.jp
│   └── ntt.co.jp
└── .net
    └── ...

ルートDNSサーバーが知っているのは「各TLD(.com, .jp など)のDNSサーバーのIPアドレス」だけです。


DNSにまつわるセキュリティ

DNSキャッシュポイズニング

フルサービスリゾルバー(キャッシュDNSサーバー)のキャッシュに偽のIPアドレスを登録させる攻撃です。ユーザーが正規のドメインにアクセスしようとしても、攻撃者のサーバーに誘導されます。

対策として DNSSEC(DNS Security Extensions) があり、デジタル署名で応答の正当性を検証できます。

DNSアンプ攻撃(DDoS)

送信元IPを偽装してDNSサーバーに大量の問い合わせを送り、大きな応答をターゲットに送り付けるDDoS攻撃です。


まとめ

DNS名前解決の流れをまとめます。

  1. PCがフルサービスリゾルバー(キャッシュDNSサーバー) に問い合わせる
  2. フルサービスリゾルバーがルート→TLD→権威DNSと順番に聞いてIPを取得する
  3. 結果をTTL分キャッシュしてPCに返す

PCは1回だけ問い合わせる、実際に走り回るのはフルサービスリゾルバー(キャッシュDNSサーバー)」というイメージを持っておくといいかもしれません。

21
5
0

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
21
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?