概要
DNS(Domain Name System)とは、「インターネットの電話帳」です。
あなたがWebサイトにアクセスするとき、google.comのようなドメインを入力しますよね。 しかし、コンピュータはIPアドレス(例: 142.250.207.46)でしか通信できません。
そこでDNSが、ドメイン名をIPアドレスに自動変換してくれます。 この処理を「名前解決」または「DNS解決」と呼びます。
DNS解決の例:
google.com → DNS解決 → 142.250.207.46
itwords.jp → DNS解決 → 76.76.21.21
github.com → DNS解決 → 140.82.121.4DNSがないと、私たちは数字の羅列(IPアドレス)を覚えて入力しなければなりません。 DNSのおかげで、覚えやすいドメイン名を使ってインターネットを利用できるのです。
体験してみよう:DNS解決の流れ
あなたがブラウザに「itwords.jp」と入力してから、 実際にWebサーバーに接続するまでの流れを確認してみましょう。
DNS解決プロセス
ブラウザにドメイン入力
itwords.jpにアクセス
DNSキャッシュ確認
ブラウザのキャッシュをチェック
DNSリゾルバに問い合わせ
ISPのDNSサーバーに質問
ルートサーバーへ
.jpを管理するサーバーを教えてもらう
TLDサーバーへ
itwords.jpの権威サーバーを教えてもらう
権威サーバーから回答
IPアドレスを取得
Webサーバーに接続
IPアドレスでサーバーにアクセス
このプロセスは通常、数十ミリ秒〜数百ミリ秒で完了します
DNSの仕組み
DNS解決は、複数のDNSサーバーが協力して行います。
DNSサーバーの種類
1. DNSリゾルバ(フルサービスリゾルバ)
あなたのパソコンやスマホが最初に問い合わせるDNSサーバーです。 通常、ISP(インターネットサービスプロバイダー)が提供しています。
- 役割: クライアントの代わりに、他のDNSサーバーに問い合わせる
- 例: GoogleのパブリックDNS(8.8.8.8)、Cloudflare(1.1.1.1)
2. ルートサーバー
DNSの最上位にあるサーバーです。 世界中に13組のルートサーバーがあります。
- 役割: TLD(.com、.jpなど)を管理するサーバーの場所を教える
3. TLDサーバー(トップレベルドメインサーバー)
.com、.jp、.orgなどのTLDを管理するサーバーです。
- 役割: 各ドメインの権威サーバーの場所を教える
4. 権威サーバー(Authoritative Name Server)
実際にドメインとIPアドレスの対応情報を持っているサーバーです。
- 役割: ドメインに対応するIPアドレスを返す
- 例: Cloudflareの権威サーバー、AWSのRoute 53
DNSレコードの種類
DNSには、様々な種類のレコード(記録)があります。
| レコード | 説明 | 例 |
|---|---|---|
| A | ドメイン → IPv4アドレス | itwords.jp → 76.76.21.21 |
| AAAA | ドメイン → IPv6アドレス | itwords.jp → 2606:4700:: |
| CNAME | ドメインの別名(エイリアス) | www.itwords.jp → itwords.jp |
| MX | メールサーバーの指定 | itwords.jp → mail.example.com |
| TXT | テキスト情報(認証など) | SPF、DKIM、ドメイン所有確認 |
| NS | 権威DNSサーバーの指定 | itwords.jp → ns1.cloudflare.com |
DNSキャッシュ
毎回すべてのDNSサーバーに問い合わせると時間がかかるため、 DNSはキャッシュ(一時的な記録)を使います。
キャッシュの階層
- ブラウザキャッシュ: ブラウザが最近アクセスしたドメインを記憶
- OSキャッシュ: パソコン/スマホのOSが記憶
- リゾルバキャッシュ: ISPのDNSサーバーが記憶
キャッシュに情報があれば、すぐにIPアドレスを取得できます。 キャッシュがない場合のみ、ルートサーバーから順に問い合わせます。
TTL(Time To Live)
DNSレコードにはTTLという有効期限が設定されています。 TTLが切れると、キャッシュが削除され、再度DNSサーバーに問い合わせます。
- 短いTTL(例: 60秒): IPアドレスの変更をすぐ反映したいとき
- 長いTTL(例: 86400秒=1日): 変更が少なく、高速化を重視するとき
DNS設定の実際
Webサイトを公開する際、DNSの設定が必要です。
Vercelでドメインを設定する例
- Vercelのプロジェクト設定を開く
- 「Domains」タブで、取得したドメインを入力
- Vercelが指示するDNSレコードを、ドメインレジストラ(お名前.com等)に設定
- Aレコード:
76.76.21.21 - CNAMEレコード:
cname.vercel-dns.com
- Aレコード:
- DNS設定が反映されるのを待つ(数分〜48時間)
- Vercelが自動的にSSL証明書を発行(HTTPS化)
DNS伝搬(Propagation): DNS設定の変更は、 世界中のDNSサーバーに伝わるまで時間がかかります。 通常は数分〜数時間、最大で48時間程度です。
パブリックDNSサービス
ISPのDNSが遅い場合、パブリックDNSサービスに変更できます。
主なパブリックDNS
- Google Public DNS:
8.8.8.8/8.8.4.4 - Cloudflare DNS:
1.1.1.1/1.0.0.1- 高速でプライバシー重視 - Quad9:
9.9.9.9- セキュリティ重視(悪意あるサイトをブロック)
パソコンやルーターのDNS設定を変更することで、これらのサービスを利用できます。
DNSのセキュリティ
DNSハイジャック
攻撃者がDNSの応答を改ざんし、偽のサイトに誘導する攻撃です。
DNS over HTTPS(DoH)
DNS通信を暗号化し、盗聴や改ざんを防ぐ技術です。 最近のブラウザ(Chrome、Firefoxなど)はDoHをサポートしています。
DNSSEC
DNSの応答に電子署名を付けることで、改ざんを検知する技術です。
関連用語
| 用語 | 説明 |
|---|---|
| ドメイン | DNSが解決する人間が読みやすい名前 |
| IPアドレス | DNSが返す実際の通信先アドレス |
| サーバー | DNSが解決した後に接続するコンピュータ |
| ホスティングサービス | DNS設定を簡単にできるサービス |
| Vercel | DNS設定を自動化するホスティングサービス |
