Runner in the High

技術のことをかくこころみ

雑なDNSの理解

  • Domain Name Systemの略
  • インターネットに接続されているすべてのコンピューターはIPアドレスを割り振られているが、数字でサイトを記憶しておくのは難しいので、DNSで覚えやすい文字列への解決を行う。
  • ARPANET時代はひとつのHOSTS.TXTにすべて書き込まれたものをFTPで共有していたが、ファイルがでかくなりすぎたのでDNS鯖が生まれた。
  • UNIX系OSにある /etc/hostsDNSと同じ役割を持っている。
    • これはARPANET時代のHOSTS.TXTの名残で、ローカルだけでDNSに問い合わせないドメイン名解決を行いたいときにはここに書いておく。
    • 開発で localhost:3000 とかを hoge.net とかにしておくと楽になったりする(?)
    • localhost127.0.0.1 に解決されているのはこのファイルによって。

名前解決

たとえばPCのブラウザで hogehoge.net へリクエストを送るまでの例

  1. [PC] ブラウザで hogehoge.net を開く。
  2. [PC] /etc/hosts に該当するIPアドレスとの組み合わせがあればそれで解決
  3. [家庭用ルーター] プロバイダからDNSルートサーバのIPアドレスを受け取る
  4. [家庭用ルーター] hogehoge.netDNSルートサーバに問い合わせる。
  5. [DNSルートサーバ] net DNSサーバが管理しているという旨を家庭用ルーターに伝える
  6. [家庭用ルーター] net DNSサーバへ hogehoge.net を問い合わせる
  7. [net DNSサーバ] hogehoge.netドメインを解決し、IPアドレスである 123.45.6.78 を家庭用ルーターへ伝える。
  8. [家庭用ルーター] PCへ 123.45.6.78 を伝える
  9. [PC] ブラウザは 123.45.6.78 へリクエストを送ってデータを取得したりする。

参考: インターネット10分講座 DNS - JPNIC