DNS
複雑な数字の住所の代わりに、わかりやすい名前から行き先を教えてくれる「インターネット世界の電話帳」です。
定義 DNS(ドメイン・ネーム・システム)とは、人間にとってわかりやすい文字列のWebサイト住所を、コンピュータ同士の通信で使われる数字の住所へ変換する仕組みです。アドレスバーに見たいサイトの名前を入力すると、実際のデータが保管されているコンピュータの場所を瞬時に見つけ出してつなげてくれます。
コンピュータはなぜ、名前ではなく「数字」を使うの?
友達に電話をかけるとき、11桁の電話番号を暗記していなくても、連絡帳の名前をタップするだけで通話できますよね。インターネットの世界もまったく同じ仕組みで動いています。人間は文字の名前を覚えるのが得意ですが、コンピュータは数字でできた機械専用の住所しか正しく理解できません。
この数字による実際の住所をIPアドレス(ネットに接続された機器固有の識別番号)と呼びます。数字は長くて複雑なため、人間が無数のWebサイトのIPアドレスをすべて覚えるのはほぼ不可能です。そこで、人間が扱いやすいドメイン名とコンピュータが使うIPアドレスをペアにして管理する電話帳が必要になりました。
ブラウザに行きたいサイトの住所を入力した瞬間、コンピュータはまずDNSという巨大な電話帳を素早くめくります。その名前に紐づく番号を1秒にも満たない時間で確認し、その番号を持つサーバーへアクセスして画面を表示してくれるのです。
ドメインの住所はどうやって見つかるの?
もし電話帳が世界にたった1冊しかなかったら、何十億人ものアクセスに耐えきれず、すぐにパンクしてしまいます。そのためDNSは、会社の部署のように複数のコンピュータが役割を分担して分散管理する賢い仕組みをとっています。
住所を調べるときは、URLの「右端」から順に逆向きに問い合わせていきます。例えば末尾の国名や組織の種類を管理する最上位のサーバーにまず尋ね、その下の階層の詳細サーバーへと順次案内されていきます。こうして質問をつなぎながら、最終的な目的地のIPアドレスを突き止めます。
毎回すべてのサーバーを巡ると時間がかかるため、一度調べた住所はコンピュータやプロバイダ(通信会社)に一時的に保存されます。これをキャッシュと呼び、次に同じサイトを開くときは遠くのサーバーまで行かずに一瞬でページを開くことができます。
もう少し詳しく知ると
インターネットのアドレスは一続きに見えますが、実際にはドットで区切られた階層構造になっています。その頂点には世界に13グループしか存在しないルートネームサーバー(最上位の案内所)があり、その下に拡張子ごとの詳細サーバーが木の枝のように広がっています。
アドレスを入力した際、コンピュータに代わって世界中のDNSサーバーを駆け回り、番号を突き止めてくれる使い走り役のプログラムがあります。これを再帰的リゾルバ(問い合わせを行うサーバー)と呼び、普段私たちが利用しているプロバイダなどが運用しています。
もしDNSに不具合や攻撃があり、間違った番号を教えられてしまうと、見た目は本物そっくりでも偽サイトへ誘導される危険が生じます。そのため現在では、電子署名によってデータが改ざんされていないことを検証するDNSSEC(DNSセキュリティ拡張)という安全技術も導入されています。
🤔 よくある誤解
DNSはWebサイトの文章や画像データを丸ごと保存している巨大な倉庫である。
DNSはサイトの中身ではなく「どこに行けばいいか(IPアドレス)」だけが書かれた道案内所です。実際のWebページデータは、案内された先のWebサーバーの中にあります。
🧺 日常で出会う場面
人間が読むドメイン名を、コンピュータが使う数字のIPアドレスへと翻訳する、インターネットの道案内システムです。