こんにちはhuoです
今回はDNSについて解説していきます。
DNSは、身近にある技術の一つです。
私たちがwebサイトを利用するときに、裏で使われている技術なんですよ。
今回はそんなDNSについてわかりやすく説明していきます。
- DNSの仕組みを解説
- DNSについての練習問題もあり
DNSについてわかりやすく解説
DNSとは
DNS(Domain Name System)は、インターネット上で利用される「住所」のようなシステムです。
コンピュータやスマートフォンなどのデバイスがインターネット上で通信を行うためには、接続先のアドレスである「IPアドレス」 (例:192.168.1.1)が必要です。
ただし、このIPアドレスは数字の羅列なので、人間にとっては思い出すのは難しいです。
そこで、DNSが登場します。DNSは、私たちが知っているようなウェブサイトの名前(例:www.google.com
)と、そのウェブサイトのIPアドレスを付ける役割を果たしています。 IPアドレスに変換する「翻訳機」のようなものです。
DNSの仕組み
- URLを入力: あなたがブラウザに「www .example .com 」と入力します。
- DNSサーバーに問い合わせ: このURLに対応するIPアドレスを知るために、ブラウザはDNSサーバーに問い合わせを行います。
- IPアドレスの取得: DNSサーバーは、そのドメイン名に対応するIPアドレスを調べ、ブラウザに返します。
- 接続:ブラウザは受け取ったIPアドレスを使って、ウェブサイトのサーバーに接続し、ウェブページを表示しま
DNSの「名前解決」プロセスは、ドメイン名(例:「example.com」)を対応するIPアドレスに変換するための一連の手順のことです。この仕組みによって、人間が覚えやすいドメイン名でウェブサイトにアクセスできるようになります。
DNSは、次のような仕組みで機能しています
- 名前解決(ネームリゾリューション)
ブラウザで「example.com」にアクセスしたい場合、最初にデバイスはこの「example.com」がどのIPアドレスに対応するかを検討する必要があります。DNSは、ドメイン名前(example.com)を対応するIPアドレス(192.168.1.1など)に変換する作業(名前解決)を行います。 - DNSサーバー
インターネット上には、多くのDNSサーバーが存在します。最初に接続するのは「リゾルバDNSサーバー」と呼ばれるもので、リゾルバDNSサーバーが、目的のドメインの情報を保持している「協定DNS」 「サーバー」にお問い合わせを行い、IPアドレスを取得します。リゾルバは、一度調べた結果を一定期間キャッシュ(保存)し、次に同じドメインへのアクセスがあれば、迅速に名前解決できるようにしています。 - キャッシュがなければ次のサーバーに行き、IPアドレスを変換して変換したものを渡してDNSが完了します
このようにして、DNSのおかげで私は思い出しやすいドメイン名を使って簡単にウェブサイトにアクセスできるようになりました。
DNS名前解決プロセスの詳細な流れ
あなたのPC
│
▼
- キャッシュ確認 (キャッシュがあれば終了)
│ キャッシュにない場合
│
▼ - DNSリゾルバに問い合わせ (ISPなどのリゾルバ)
│
▼ - ルートDNSサーバー
│ ──> 「次はTLDサーバーに問い合わせてください (.com)」
▼ - TLD DNSサーバー (.comの情報を管理)
│ ──> 「example.comの権威DNSサーバーに問い合わせてください」
▼ - 権威DNSサーバー (最終的な情報を持つサーバー)
│ ──> 「example.comのIPアドレスは 93.184.216.34 です」
▼ - DNSリゾルバからあなたのPCに結果を返す
▼ - あなたのPCが取得したIPアドレスを使ってウェブサイトにアクセス
たとえば、ブラウザに「www .example .com 」と入力したとき、次のようなプロセスでIPアドレスが取得されます。
- ブラウザからの要求
- ブラウザに「www .example .com 」と入力すると、このドメイン名がどのIPアドレスに対応するかをざっくりと、「リゾルバ(Resolver )」と呼ばれるDNSクライアント(一般的には、ISPや組織のネットワーク)内部に設定されたDNSサーバー)に名前解決の要求が送られます。
- DNSキャッシュの確認
- まず、リゾルバは自分のキャッシュ(過去にアクセスしたドメインの名前解決結果を保存している場所)を確認します。もし「www .example .com 」の情報がキャッシュにあれば、それをすぐに返します。
- キャッシュに情報がなければ、リゾルバは名前解決のためにDNSサーバーにお問い合わせを行います。
- ルートDNSサーバーへのお問い合わせ
- リゾルバは、最初に「ルートDNSサーバ」に問い合わせを送ります。ルートDNSサーバは、全てのドメインの「最上位」の情報を持っていますが、直接的なIPを持っているわけではありません。
- ルートDNSサーバは、リゾルバに「TLD DNSサーバ」の情報を返信します。このTLD DNSサーバは、「.com」や「.org」などのトップレベルドメインに対応するサーバです。
- TLD DNSサーバーへのお問い合わせ
- ルートDNSサーバから返されたTLD DNSサーバ(この例では「.com」)にリゾルバが次のお問い合わせを行います。「example.com」についての情報を知りたいと伝えます。
- TLD DNSサーバーは、「example.com」に関する情報を持つ「DNSサーバー(権威DNSサーバー)」の場所をリゾルバに教えます。
- DNSサーバーへのお問い合わせ
- 最後に、リゾルバは交換DNSサーバーに「www .example .com 」のIPアドレスを伺います。交換DNSサーバーは、このドメインの正確な情報を保持しているため、リゾルバに正しいIPアドレスを返します(例:93.184.216.34など)。
- リゾルバからの結果のキャッシュ
- リゾルバは、取得したIPアドレスをブラウザに返します。この時点でブラウザは「www .example .com 」に接続できるようになり、ウェブページのデータを受信できます。
- また、リゾルバはこのIPアドレスをキャッシュに保存しておき、次回同じドメインへの名前解決要求があった場合、迅速に対応できるようにします。
名前解決における「再帰問い合わせ」と「迂回問い合わせ」
お名前お問い合わせ解決には、主に二つの方法があります。
- 再帰問い合わせ(再帰クエリ)
ブラウザがリゾルバに「再帰的に名前解決を行う」ように指示すると、リゾルバが一連の問い合わせをルートDNSサーバから登録DNSサーバまで順番に行います。最終的なIPアドレスを受け入れるだけです。 - 迂回問い合わせ(Iterative Query)迂回
問い合わせは、リゾルバがルートDNSサーバに問い合わせをすると、ルートDNSサーバは「.com」TLD DNSサーバーの場所を教えるだけで、自分では解決しません。リゾルバが順にTLD DNSサーバー、有償DNSサーバーと問い合わせて、最終的にIPアドレスを取得する形です。
Aレコードとは何か
Aレコード(Address Record)は、DNSで使われるレコードの一種で、特定のドメイン名を特定のIPv4アドレスに対応するものです。これにより、ユーザーがドメイン名を入力すると、その先にあるものです。 IPアドレスのサーバーに接続されます。
DNSキャッシュとTTL
名前解決を効率化するため、リゾルバとユーザー側のデバイスは取得した情報をキャッシュとして保存します。DNSキャッシュは、リゾルバが以前の問い合わせ結果を保存し、同じドメイン名がもう一度要求されたとき応答できるようにするためのものです。
キャッシュの保持時間「TTL(Time to Live)」と呼びます。TTLが設定されていると、TTLが切れるまでの間はキャッシュが利用され、新たな名前解決をしなくても大丈夫なので通信負荷が軽減されます。
名前解決のセキュリティ:DNSSEC
DNSでは、名前解決中に情報が途中で変更されたり、悪意ある者に「なりすまし」されるリスクがあります。リスクに対処するために「DNSSEC(DNS Security Extensions)」というセキュリティ技術が開発DNSSECでは、DNS情報に霧をかけて、受け取ったサーバーがその霧を検証することで、正当なDNS情報かどうかを確認します。
DNSを理解するための練習問題
DNSの基本的な理解から応用までをカバーする練習問題を8問用意しました。各問題に解説と回答もつけていますので、確認してみてください。
問題 1
DNSとは何か簡潔に説明してください。
回答例:
DNS(Domain Name System)は、ドメイン名をIPアドレスに変換するシステムです。これにより、ユーザーは覚えやすいドメイン名でウェブサイトにアクセスできます。
問題 2
次のうち、DNSに関する正しい説明を選んでください。
- DNSはデータベースの一種であり、コンピュータのファイル管理を行う。
- DNSはドメイン名をIPアドレスに変換する。
- DNSはインターネット上のファイルの保存場所を記録する。
回答:
2. DNSはドメイン名をIPアドレスに変換する。
解説:
DNSはウェブサイトのドメイン名とIPアドレスを結びつけるためのシステムで、インターネット通信をスムーズにします。
問題 3
「www.example.com」のIPアドレスを探す際、名前解決の流れを以下の順序で並び替えてください。
A. 権威DNSサーバ
B. ルートDNSサーバ
C. TLD DNSサーバ
D. ユーザーのリゾルバ
回答:
D → B → C → A
解説:
まず、ユーザーのリゾルバ(D)がルートDNSサーバ(B)に問い合わせ、次にTLD DNSサーバ(C)、最後に権威DNSサーバ(A)に問い合わせてIPアドレスを取得します。
問題 4
DNSキャッシュとは何ですか? また、そのメリットを1つ挙げてください。
回答例:
DNSキャッシュとは、名前解決の結果(ドメイン名とIPアドレスの対応)を一時的に保存する仕組みです。メリットとしては、同じドメイン名へのアクセスが速くなることです。
問題 5
以下のDNSレコードのうち、ドメイン名とIPアドレスを対応付けるために使用されるレコードはどれですか?
- MXレコード
- Aレコード
- CNAMEレコード
- NSレコード
回答:
2. Aレコード
解説:
Aレコードはドメイン名とIPv4アドレスを結びつけるためのレコードです。他の選択肢は、メールサーバ設定や別ドメインへのエイリアス、DNSサーバの指定に使用されます。
問題 6
DNSの再帰問い合わせと迂回問い合わせの違いについて説明してください。
回答例:
再帰問い合わせは、リゾルバが名前解決をすべて行ってから結果を返す方法です。迂回問い合わせは、リゾルバが段階ごとに他のDNSサーバに問い合わせを順次行い、最終的なIPアドレスを返します。
解説:
再帰問い合わせはリゾルバが一括して名前解決を行い、迂回問い合わせは逐次的にDNSサーバを辿って解決します。
問題 7
DNSSEC(DNS Security Extensions)の役割と、その必要性について説明してください。
回答例:
DNSSECはDNSにセキュリティ機能を追加し、ドメイン名とIPアドレスの情報が正しいかを検証します。これにより、第三者によるデータ改ざんやなりすまし攻撃を防止します。
解説:
DNSは元来セキュリティを考慮していなかったため、DNSSECでデジタル署名を用いることで信頼性が向上しています。
問題 8
次のドメインに関する説明のうち、正しいものを選んでください。
- AレコードはIPv4アドレスを参照し、AAAAレコードはIPv6アドレスを参照する。
- MXレコードはIPアドレスを参照するためのものである。
- CNAMEレコードはドメインを別のIPアドレスに直接リダイレクトする。
- TLD DNSサーバは特定の企業に関する情報を保持している。
回答:
- AレコードはIPv4アドレスを参照し、AAAAレコードはIPv6アドレスを参照する。
解説:
AレコードとAAAAレコードはそれぞれIPv4とIPv6のアドレスを対応付けます。その他の選択肢は間違いです(例:CNAMEはドメイン名へのエイリアスに使われる)。
コメント