DNSの歴史:私たちのインターネットを支える技術の変遷

エンジニアとして働いていく中で、よく聞くけど正しく認識できていない機能はよくあると思います。その中でも今回はDNSについてまとめていきたいと思います。

 

 

DNS(Domain Name System)とは?
 


DNSは、人が覚えやすいドメイン名(例:google.com)をコンピュータが扱えるIPアドレス(例:142.251.46.238)に変換する仕組みです。DNSは階層的なツリー構造になっており、ルートサーバー、TLDサーバー、権威サーバーの3つの基本レベルで構成されています。

DNSルックアップのプロセスは以下のようになります。まず、ブラウザがDNSゾルバーにドメイン名を送信し、リゾルバーがDNSサーバーに問い合わせます。DNSサーバーは、ルート名前サーバーに問い合わせ、TLD名前サーバーのIPアドレスを受け取ります。TLD名前サーバーに問い合わせることで、権威ある名前サーバーのIPアドレスを取得し、最終的にIPアドレスがブラウザに返されます。DNSルックアップは、一般的に20〜120ミリ秒で完了します。

これらのプロセスによって、私たちは覚えやすいドメイン名を使ってインターネットを利用できるようになっています。

 

なぜDNSを使用するのか?

DNSにはいくつかのメリットがあります。

 

IPアドレスを覚える必要がない

人間がIPアドレスを覚えるのは難しいため、DNSは人間が覚えやすいドメイン名を提供することで、ユーザーにとってより使いやすくなります。

 

変更を簡単に反映できる

IPアドレスは変更されることがあり、これらの変更をすべてのWebサイトやサービスに通知するのは困難です。しかし、DNSを使用することで、IPアドレスが変更された場合でも、DNSレコードを変更するだけで、変更を簡単に反映することができます。

 

スケーラビリティ

DNSは階層的な構造を持っているため、数千万のドメイン名を管理することができます。この構造により、DNSは非常にスケーラブルであり、Webサイトやサービスが急速に成長しても対応できます。

 

セキュリティ

DNSは、セキュリティ機能を提供することもできます。例えば、DNSキャッシュポイズニングやDNS攻撃から保護するための機能があります。

 

どのように機能するのか?

  1. ブラウザに「google.com」と入力され、ブラウザはドメイン名をDNSゾルバーに送信します。
  2. ゾルバーはDNSルート名前サーバーに問い合わせます。
  3. ルートサーバーはTLDサーバーのアドレスをリゾルバーに返します。この場合、.comです。
  4. ゾルバーはその後、.com TLDにリクエストを送信します。
  5. TLDサーバーは、ドメインの名前サーバー、すなわちgoogle.comの権威ある名前サーバーのIPアドレスを返します。
  6. DNSゾルバーは、ドメインの名前サーバーにクエリを送信します。
  7. 名前サーバーからgoogle.comのIPアドレスがリゾルバーに返されます。
  8. DNSゾルバーは最初に要求されたドメインIPアドレス(142.251.46.238)をブラウザに返します。


本記事は以下の動画を参考にさせていだだきました。

Everything You Need to Know About DNS: Crash Course System Design #4 - YouTube