DNSとはなんぞ

DNS (Domain Name System) とは、ホスト名とIPアドレスを相互に変換する仕組みを提供するシステム。

DNS サーバの基本的な役割

これを名前解決という
ここ でも似たようなことを書いてますね

DNS の仕組みの例

  1. Webブラウザが指定されたホスト名(www.example.com)のIPアドレスを得るために、名前解決ライブラリである「リゾルバ」に名前解決を依頼する
  2. リゾルバは /etc/resolv.conf に設定されているDNSサーバAに問い合わせを行う
  3. DNSサーバAは、まずルート(DNSサーバB)に問い合わせを行う
  4. DNSサーバBは、www.example.com を知らないが、com ドメインを管轄しているDNSサーバは知っているので、そのIPアドレスを返す
  5. DNSサーバAは、教えられたDNSサーバCに対して問い合わせを行う
  6. DNSサーバCは、www.example.com を知らないが、example.com ドメインを管轄しているDNSサーバは知っているので、そのIPアドレスを返す
  7. DNSサーバAは教えられたDNSサーバDに対して問い合わせを行う
  8. DNSサーバDは、www.example.comIPアドレスを知っているので、そのIPアドレスを返す
  9. DNSサーバAは、得られた情報をキャッシュに保存し、リゾルバに返答
  10. リゾルバはWebブラウザにIPアドレスを伝える
  11. WebブラウザはIPアドレス情報を元に、www.example.com にアクセスする
Webブラウザ   → www.example.com
   ↑ ↓
  リゾルバ
   ↑ ↓
 ____________
|            |  →  DNS.D(www.example.com ドメインのDNSサーバ)
|            |  ←
|    DNS.A   |  →  DNS.C(com ドメインのDNSサーバ)
|            | ←
|            | →  DNS.B(ルートDNSサーバ)
|            | ←
  ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ↑↓
   キャッシュ
DNS サーバの役割

DNSサーバAとDNSサーバB, C, D とでは役割が違う。

DNSサーバA
クライアントに代わって他のDNSサーバに問い合わせを行う
このようなサーバのことを「スタブリゾルバ」と呼ぶ
DNSサーバB, C, D
自分の管轄する範囲(ゾーン)についての情報を、他のDNSサーバに返す。

※ セキュリティ設定の煩雑回避のため、DNSサーバを構築する際は、どちらの役割を持たせるのか明確にする必要がある