【ネットワーク基礎】DNSの役割と仕組み
はじめに
私たちは普段、GoogleやYouTubeなどのWebサイトにアクセスするとき、「https://google.com」のようにドメイン名を使っています。しかし、インターネットの世界では実際には「IPアドレス(例:142.250.72.206)」が使われています。
このドメイン名とIPアドレスの変換をしてくれる仕組み がDNS(Domain Name System)です。
この記事では、DNSの仕組みについてわかりやすくまとめていきます。
DNSとは
※https://knowledge.cpi.ad.jp/basic-knowledge/dns/ より
DNS(Domain Name System)とは、ドメイン名をIPアドレスに変換するシステムのことです。
たとえば、https://youtube.com にアクセスしようとしても、コンピュータはそれがどのサーバーかわかりません。ここでDNSが登場します。
DNSはアクセスしようとしたURLのドメイン部分 youtube.com を IPアドレスは 142.250.72.206 と教えてくれるため、目的のサーバーに接続できるようになります。
このように、人間がわかりやすい名前であるドメイン名をコンピュータが理解できる数字の住所であるIPアドレスに変換することを名前解決といいます。
この名前解決によってIPアドレスを取得し、通信が可能になります。
DNSの役割
① ドメイン名からIPアドレスを検索する(名前解決)
② メール送信の際に送信先メールサーバーを探す(MXレコード)
③ WebサービスやCDNで負荷分散や地理的な最適化を行う(CNAME、NSなど)
DNSの仕組み(名前解決の流れ)
※https://www.cloudflare.com/ja-jp/learning/dns/what-is-dns/ より
ブラウザでウェブサイトを見ようとすると、その裏側では住所を探すような作業が行われます。
(1)ブラウザのリクエスト
私たちがブラウザに「example.com」と入力してエンターキーを押すと、「example.com というウェブサイトの住所(IPアドレス)を教えて!」とお願いが出されます。これをDNSクエリといいます。
※このプロセスはHTTPリクエストがされる直前に行われます。私たちの背後で、DNSクエリをDNSリゾルバに送信し、DNSリゾルバを経由してIPアドレスを取得することで、送信先が確定し、HTTPリクエストが送信できるようになります。
(2)ローカルキャッシュの確認
まず、自分のパソコンや使っているブラウザは、以前に「example.com」の住所を調べたときのメモ(DNSキャッシュ)を持っていないか確認します。
もしメモが見つかれば、その住所を使ってすぐにウェブサイトにアクセスできます。このメモには有効期限(TTL)があり、期限が切れると古い情報とみなされます。
(3)DNSリゾルバが再帰的検索
もし自分のメモに「example.com」の住所が書かれていなければ、自分が使用しているインターネット接続業者(NTTやKDDIなど)が用意してくれている「案内係」のようなもの(DNSリゾルバ)に尋ねます。この案内係は、インターネット上の住所録(IPアドレスの一覧)を探す専門家です。
IPアドレスを探索する流れ
① ルートDNSサーバーに聞く
案内係であるDNSリゾルバはまず、「.com」という国にあるウェブサイトの詳しい住所録を持っている場所をルートDNSサーバーから教えてもらいます。
② TLDサーバー(.comの住所録)に聞く
次に、教えてもらった場所に行き、「example.com」というウェブサイトの詳しい住所録を持っている管理者の連絡先を教えてもらいます。
③ 権威DNSサーバー(「example.com」の管理者)に聞く
そして、DNSリゾルバは、その連絡先に直接問い合わせ、「example.com の本当の住所はどこですか?」と尋ねます。
④ IPアドレスの取得
権威DNSサーバーはDNSリゾルバにIPアドレスを伝え、DNSリゾルバは私たちのブラウザにIPアドレスを送信します。これによって送信先住所がわかるようになります。
このようにサーバーは階層構造になっており、順番に検索していく構造になっています。
(4)IPアドレスを受け取りウェブサイトへアクセス
ブラウザはその住所を使って「example.com」のウェブサイトにアクセス(HTTPリクエストの送信)し、ページを表示(HTTPレスポンスを取得)してくれるのです。
このように、DNSは、私たちがウェブサイトの名前(example.com)しか知らなくても、インターネット上の正確な住所(IPアドレス)を見つけ出して、ウェブサイトにたどり着けるようにしてくれる、とても重要な仕組みなのです。
まとめ
私たちが日頃何気なく利用しているインターネットの根幹を支える仕組みであるDNSの役割と、ウェブサイトへのアクセスにおける名前解決のプロセスを解説しました。
DNSは、覚えやすいドメイン名を、コンピュータが理解できるIPアドレスという数字の住所に変換する役割を持っています。この仕組みのおかげで、私たちは複雑な数字を意識することなく、目的のウェブサイトにスムーズにアクセスできるのです。
名前解決のプロセスでは、私たちのパソコンから始まった問い合わせが、ローカルキャッシュ、そしてインターネット上に存在する複数のDNSサーバー(ルートDNSサーバー、TLDサーバー、権威DNSサーバー)を段階的に巡り、最終的に目的のウェブサイトのIPアドレスを取得します。それぞれのDNSサーバーが、インターネットの広大な住所録の中で、特定の情報への道案内という重要な役割を担っていることがお分かりいただけたかと思います。
最後までお読みいただき、ありがとうございました。
参考・画像引用元URL
Discussion