DNSとはなんぞ
DNS (Domain Name System) とは、ホスト名とIPアドレスを相互に変換する仕組みを提供するシステム。
DNS の仕組みの例
- Webブラウザが指定されたホスト名(www.example.com)のIPアドレスを得るために、名前解決ライブラリである「リゾルバ」に名前解決を依頼する
- リゾルバは /etc/resolv.conf に設定されているDNSサーバAに問い合わせを行う
- DNSサーバAは、まずルート(DNSサーバB)に問い合わせを行う
- DNSサーバBは、www.example.com を知らないが、com ドメインを管轄しているDNSサーバは知っているので、そのIPアドレスを返す
- DNSサーバAは、教えられたDNSサーバCに対して問い合わせを行う
- DNSサーバCは、www.example.com を知らないが、example.com ドメインを管轄しているDNSサーバは知っているので、そのIPアドレスを返す
- DNSサーバAは教えられたDNSサーバDに対して問い合わせを行う
- DNSサーバDは、www.example.com のIPアドレスを知っているので、そのIPアドレスを返す
- DNSサーバAは、得られた情報をキャッシュに保存し、リゾルバに返答
- リゾルバはWebブラウザにIPアドレスを伝える
- WebブラウザはIPアドレス情報を元に、www.example.com にアクセスする
Webブラウザ → www.example.com ↑ ↓ リゾルバ ↑ ↓ ____________ | | → DNS.D(www.example.com ドメインのDNSサーバ) | | ← | DNS.A | → DNS.C(com ドメインのDNSサーバ) | | ← | | → DNS.B(ルートDNSサーバ) | | ←  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↑↓ キャッシュ