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攻撃から保護するための機能があります。
どのように機能するのか?
- ブラウザに「google.com」と入力され、ブラウザはドメイン名をDNSリゾルバーに送信します。
- リゾルバーはDNSルート名前サーバーに問い合わせます。
- ルートサーバーはTLDサーバーのアドレスをリゾルバーに返します。この場合、.comです。
- リゾルバーはその後、.com TLDにリクエストを送信します。
- TLDサーバーは、ドメインの名前サーバー、すなわちgoogle.comの権威ある名前サーバーのIPアドレスを返します。
- DNSリゾルバーは、ドメインの名前サーバーにクエリを送信します。
- 名前サーバーからgoogle.comのIPアドレスがリゾルバーに返されます。
- DNSリゾルバーは最初に要求されたドメインのIPアドレス(142.251.46.238)をブラウザに返します。
本記事は以下の動画を参考にさせていだだきました。
Everything You Need to Know About DNS: Crash Course System Design #4 - YouTube