メインコンテンツへ移動
SEMentor
ネットワーク 約8分

DNS の仕組みと名前解決

インターネットの電話帳とも呼ばれるDNSの仕組みと、名前解決の流れを理解する

DNS とは

DNS(Domain Name System)は、ドメイン名(例:example.com)を IP アドレス(例:93.184.216.34)に変換するシステムです。「インターネットの電話帳」とも呼ばれます。

人間は google.com のような名前を覚えやすいですが、コンピュータ間の通信には IP アドレスが必要です。DNS がその橋渡しをします。

DNS の階層構造

DNS はツリー状の階層構造を持ちます。

.(ルートドメイン)
├── com
│   ├── google(google.com)
│   └── example(example.com)
├── jp
│   ├── co
│   │   └── yahoo(yahoo.co.jp)
│   └── ac
│       └── kyoto-u(kyoto-u.ac.jp)
└── net
    └── ...

名前解決の仕組み(再帰的クエリ)

www.example.com にアクセスする際の流れを追います。

① ブラウザがキャッシュを確認
   └ キャッシュなし
② OSのスタブリゾルバが フルサービスリゾルバ(キャッシュDNS)に問い合わせ
③ フルサービスリゾルバがルートDNSサーバに問い合わせ
   └ 「.com を管理するサーバを教えて」→ TLD DNSサーバのアドレスを返す
④ TLD DNS(.com)に問い合わせ
   └ 「example.com を管理するサーバを教えて」→ 権威DNSサーバのアドレスを返す
⑤ 権威DNSサーバ(example.com)に問い合わせ
   └ 「www.example.com は 93.184.216.34」→ A レコードを返す
⑥ ブラウザが 93.184.216.34 に接続

DNS レコードの種類

レコード意味
Aドメイン → IPv4 アドレスexample.com → 93.184.216.34
AAAAドメイン → IPv6 アドレスexample.com → 2606:2800:...
CNAMEドメイン → 別のドメイン(エイリアス)www.example.com → example.com
MXメールサーバのアドレスmail.example.com
TXTテキスト情報(SPF, DKIM など)"v=spf1 include:..."
NS権威 DNS サーバのアドレスns1.example.com

TTL(Time To Live)

DNS レコードにはキャッシュの有効期限 TTL(秒単位)が設定されています。

www.example.com  300  IN  A  93.184.216.34
                 ^^^
                 TTL: 300秒(5分間キャッシュ有効)

TTL が短いと変更が素早く反映される代わりに DNS サーバへの問い合わせが増えます。

コマンドで確認する

# Aレコードを確認
dig example.com A

# 逆引き(IPアドレス → ドメイン名)
dig -x 93.184.216.34

# 特定のDNSサーバに問い合わせ(8.8.8.8 = Google DNS)
dig @8.8.8.8 example.com

# Windowsの場合
nslookup example.com

DNS とセキュリティ

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

偽の DNS 応答をキャッシュに書き込み、ユーザを偽サイトに誘導する攻撃。DNSSEC による署名検証で対策します。

DNS over HTTPS(DoH)

DNS クエリを HTTPS で暗号化し、通信経路での盗聴・改ざんを防ぐ技術。モダンなブラウザで標準採用が進んでいます。

まとめ

  • DNS は名前(ドメイン)→ IP アドレスの変換システム
  • ルート → TLD → 権威 DNS のツリー構造で管理
  • A/CNAME/MX/TXT などのレコードタイプを把握しておく
  • TTL を意識してインフラ変更計画を立てる(低 TTL → 変更 → 元に戻す)

このレッスンは未完了です。

次のレッスンへ