🥅

[SC] 学習ノート④:ドメインとDNS

に公開

初めに

情報処理安全確保支援士(SC)試験対策として、著者の学習アウトプットを兼ねて作成している
必要に応じて追記等を行う予定である

ドメイン名とは

ドメイン名・・・ インターネット上の名前
ただこれは「人間が覚えやすくした名前」であり、機械は理解できない

ドメイン名の例

ドメイン名の例を挙げて考える
www.example.co.jp
このドメイン名は以下の階層に分解される

  • www : ホスト名(サーバを識別する名前)であり、非必須
  • example : 固有のドメイン名
  • co.jp : 日本の法人向け属性型JPドメイン(1法人につき1つ)

このホスト名とドメイン名をすべて含んだ名前を FQDN (Fully Qualified Domain Name)という

ドメイン名が必要な理由

TCP/IP通信で実際に用いられるアドレスは IPアドレス だが、IPアドレスは数字の羅列のため人間には覚えられない
そこで、人間が直感的に判別できるよう ドメイン名 が必要となった

DNSとは

DNS(Domain Name System)とは、 ドメイン名に関する情報を問い合わせるための仕組み である
混合されやすいが、DNSはドメイン名を割り当てる仕組みではない点に注意

ドメイン名からIPアドレスを調べることを 名前解決 という
クライアントからDNSへの問合せに用いられるプログラムを リゾルバ という

DNSサーバの種類

  • キャッシュDNSサーバ(再帰DNS/リゾルバ) : クライアントの代わりに問い合わせを行い、一定期間結果を保持する
  • ルートDNSサーバ : DNS階層の最上位
  • TLD DNSサーバ : 次に問い合わせるべき 権威DNS を案内
  • 権威DNSサーバ : ドメイン配下の最終的な情報(IPアドレス)を管理

問合せの流れ

DNSの資源レコード

DNSは各ドメインに対し複数の情報を管理している
この管理している情報を 資源レコード(Resource Record) といい、以下のレコードを持つ

資源レコード 内容
A ドメイン名に対するIPv4アドレスの指定
AAAA ドメイン名に対するIPv6アドレスの指定
MX ドメイン宛のメールを受け取るメールサーバの指定
CNAME ドメイン名の別名設定
PTR 逆引き(IPアドレスからドメイン名を調べる)
NS ドメインの名前解決を担当する権威DNSサーバの指定
SOA DNSゾーン[1]の管理元や更新管理に関する情報を示す
CAA そのドメインの証明書を発行してよい認証局(CA)を指定する

資源レコードには TTL(Time To Live)と呼ばれる有効期間(秒数)が定められている

DNSはTCPかUDPか

結論から言うと、DNSは UDP を基本としている
UDPを用いている理由は以下の通り

  • 問合せが一問一答だから
  • 高速性が必要
  • データ量が小さいから

しかし、例外として応答が大きくなる場合等にはTCPが用いられる点に注意

DNSのセキュリティ

DNSでは基本的にUDPが用いられるため、なりすまし等の対策を行う必要がある

DoS攻撃などはキャッシュサーバと権威DNSサーバを分離して管理することで対策出来るが、他に用いられているセキュリティ手法を以下で紹介する

DNSSEC

DNSSEC(DNS Security Extension)とは、 DNSの応答データに電子署名を付与 し、改ざん検知を可能にする仕組みである

ゾーン転送

権威DNSサーバ等にあるオリジナル(プライマリDNSサーバ)の情報を予備のサーバ(セカンダリDNSサーバ)に移すことを ゾーン転送 という
ゾーン転送を行うことにより、可用性の確保や負荷分散に貢献できる
セキュリティの観点から、このゾーン転送の通信を暗号化することもある

DNSラウンドロビン

セキュリティとは異なるが、名前解決先のサーバに対する負荷分散として DNSラウンドロビン という手法が用いられる
DNSでは1つのドメイン名に複数のIPアドレスを対応付けることが可能であるが、名前解決にて返すIPアドレスを問い合わせの 順番毎に 変えることをDNSラウンドロビンという
クライアントに届くIPアドレスが変わることで負荷分散に繋がるが、サーバの負荷情報は見ていない点に注意

試験対策ポイント

  • 「ラウンドロビン」とは「複数の対象を順番に回して使う方式」を指しており、DNS以外でも「ラウンドロビン」という言葉が使われることがある
脚注
  1. DNSでは、ドメイン名に関する情報を管理する範囲を「ゾーン」という ↩︎

Discussion