DNS
ドメイン名に対応するIPアドレスやメールの配送先などの情報を管理し、問い合わせに応じて返す分散型データベースの仕組みである。多数のDNSサーバが階層的に管理を分担し、名前に対応する情報を調べる処理を名前解決という。
イマシルちゃんの解説
Webサイトへ接続するときは、example.comのようなドメイン名から通信先のIPアドレスを調べるよ。
DNSは、こうした名前と情報の対応を管理する分散型データベースの仕組みなんだ。
DNSで名前に対応する情報を調べる処理を名前解決というよ。
情報は一か所に集めず、ドメイン名の階層に沿って担当を分けているんだ。
問い合わせを代行するフルサービスリゾルバは、手元の情報で答えられなければ担当サーバの案内をたどって問い合わせるよ。
得られたIPアドレスを使うことで、利用者が数字を覚えていなくても接続できるんだ。
DNSにはIPアドレスだけでなく、メールを届けるサーバなどの情報も登録できるよ。
この解説はわかりやすかったですか?
より深い解説
定義
DNS(Domain Name System)は、ドメイン名とIPアドレスなどの情報(リソースレコード)を対応づけて管理する、分散型のデータベースの仕組みである。ドメイン名からIPアドレスを求めることを名前解決(正引き)、IPアドレスからドメイン名を求めることを逆引きという。ポート番号は53番で、主にUDPを使い、応答が大きい場合やゾーン転送ではTCPを使う。
階層構造
ドメイン名は、右から順に階層をたどる。
www.example.co.jp.
└ ルート(最後の「.」。通常は省略)
└ トップレベルドメイン(jp)
└ 第2レベルドメイン(co)
└ example.co.jp
└ www
それぞれの階層を担当するDNSサーバが、自分の下の階層の担当サーバを知っていて、管理を委任している。
2種類のDNSサーバ
| 種類 | 役割 |
|---|---|
| 権威DNSサーバ | 自分が管理するドメイン(ゾーン)の情報を持ち、それについて答える |
| フルサービスリゾルバ(キャッシュDNSサーバ) | 利用者からの問合せを受け、権威DNSサーバに順に問い合わせて答えを探し、結果を一時的に保存(キャッシュ)する |
利用者のPCなどにある、問合せを出すだけの仕組みはスタブリゾルバという。
名前解決の流れ
- PC(スタブリゾルバ)が、フルサービスリゾルバに www.example.co.jp のIPアドレスを問い合わせる(再帰的問合せ)
- フルサービスリゾルバは、キャッシュになければ、ルートサーバに問い合わせ、jpの担当サーバを教えてもらう
- jpの担当サーバに問い合わせ、co.jpの担当サーバを教えてもらう
- 同様にたどり、example.co.jpの権威DNSサーバから答えを得る(2〜4は反復問合せ)
- 結果をキャッシュし、PCに答える
キャッシュは、リソースレコードに付いているTTL(有効期間)の間だけ保存される。
セキュリティ
| 脅威 | 内容 | 主な対策 |
|---|---|---|
| キャッシュポイズニング | フルサービスリゾルバに偽の応答を覚えさせる | 送信元ポート番号のランダム化、DNSSEC |
| オープンリゾルバの悪用 | 誰からの問合せにも答えるDNSサーバを、DRDoS攻撃の反射に使う | 再帰的問合せを受け付ける範囲を制限する |
| 通信の盗聴 | 問合せの内容(見ようとしているサイト)を見られる | DNS over TLS(DoT)、DNS over HTTPS(DoH) |
問い合わせ先と情報の更新
名前解決では、利用者側の問い合わせ処理と、ゾーンを管理して回答する処理を区別する。キャッシュに答えがないとき、フルサービスリゾルバは既知の適切な権威サーバからたどり、必要ならルート側の情報を使う。各権威DNSサーバが、知らない名前を無条件に親へ転送する仕組みではない。
| 論点 | 正しい捉え方 |
|---|---|
| プライマリとセカンダリ | 同じゾーンの情報を複製して保持する。異なる内容を担当させるための区分ではない |
| リゾルバ | 名前解決を要求・実行する側の処理。端末のスタブと、探索を代行するフルサービスの役割を分ける |
| リソースレコード | 登録後も管理者の変更や動的更新などで更新できる |
平成21年度の問題では階層構造を使った探索についての選択肢が正解とされている。「上位へ問い合わせる」という表現だけを一般化せず、実際の反復問合せは委任情報をたどり、必要な情報を管理するサーバへ進む、と理解する。
実際の試験ではここに出る!全28問
ネットワークスペシャリスト
- 午前Ⅱ
- 午後Ⅰ
- 午後Ⅱ
テクニカルエンジニア(ネットワーク)
- 午前