DNS のバックアップ(No.5)


DNS とは

名称

  • Domain Name System

概要

  • IPアドレスドメイン名(ホスト名)を紐づけることで、ドメイン名で目的のホストに接続できるようにする仕組み
  • ポート番号:
    • 53/UDP ※サイズが512B以下の場合、またはサイズが512Bを超過してEDNS0を使う場合
    • 53/TCP ※サイズが512Bを超過してTCPフォールバックを使う場合

DNSの利用

DNSの仕様

通信プロトコル(トランスポート層)

  • UDP
    • 一般的なDNSサーバへの接続はUDPが使われている。
    • 最大512B
    • 1往復
  • TCP
    • TCPフォールバック
      • UDPのサイズ(512B)に収まらない場合に限り、TCP fallbackされる仕様(RFC1123)
    • 3往復(3 say handshake)
  • EDNS0
    • Extension mechanism for DNS version 0
    • DNSの拡張機構
    • UDPのパケットサイズを最大65,535Bまで拡張することを可能とする
    • OPTリソースレコードでUDPパケットサイズを識別する

ポート番号

  • ポート番号:53

DNSリクエストの暗号化方式(クライアントとフルリゾルバ間)

  • UDPの代わりにHTTPSまたはTLSを使う。
    • DoH -DNS over HTTPS
    • DoT -DNS over TLS

DNSリクエストの暗号化方式(フルリゾルバと権威リゾルバ間)

ゾーン転送

  • 権威DNSサーバのプライマリとセカンダリが登録情報を同期させるために行う登録情報の転送機能のこと。
  • ゾーン転送要求
    • セカンダリからプライマリに対して行われる。
    • TCP(53ポート)で行われる。

再帰的問い合わせと非再帰的問い合わせ

再帰的問い合わせ

  • スタブリゾルバからフルサービスリゾルバに対して行われる問い合わせ
  • 再帰的問い合わせを受けたフルサービスリゾルバは、名前解決が完結するまで権威DNSサーバをたどって問い合わせをした結果を応答する

非再帰的問い合わせ

  • フルサービスリゾルバから権威DNSサーバに対して行われる問い合わせ
  • 非再帰的問い合わせを受けたフルサービスリゾルバは、自身が応答できる情報のみを応答する(他のDNSサーバへの問い合わせは行わない)

DNSの機能

リゾルバ

  • Resolver
  • 名前解決
    • ホスト名とIPアドレスを紐づけ、ホスト名をIPアドレスに変換する機能。
    • メールアドレスとメールサーバを紐づける機能。
  • リゾルバには、スタブリゾルバとフルサービスリゾルバの2種類ある。

スタブリゾルバ

  • Stub Resolver
  • パソコンやスマホなどの端末上に搭載されている機能
  • フルサービスリゾルバに対して名前解決を要求する(再帰的要求)

フルサービスリゾルバ

  • Full-Service Resolver
  • キャッシュサーバのこと
  • スタブリゾルバからの名前解決要求を受けて、権威DNSサーバに対して名前解決を要求し(非再帰的要求)、名前解決するまで他の権威DNSサーバをたどって問い合わせを行う
  • 名前解決した内容はキャッシュに保存し、次回の同じ名前解決要求があった場合は、キャッシュに保存されている内容を応答する

DNSサーバ

  • DNSサーバには、コンテンツ機能とキャッシュ機能がある。
  • 機能ごとにサーバを分けた場合、各機能ごとのサーバの呼称は下記の通り(いろいろある)
    • コンテンツ機能
      • コンテンツサーバ
      • DNSコンテンツサーバ
      • 権威サーバ
      • 権威DNSサーバ
      • ネームサーバ
      • ゾーンサーバ
  • キャッシュ機能
    • キャッシュサーバ
    • DNSキャッシュサーバ
    • キャッシュDNSサーバ
    • フルサービスリゾルバ
    • フルリゾルバ
    • 参照サーバ

DNSサーバ:コンテンツサーバ

  • 当該サーバが管理するドメイン(ゾーン)の情報を登録し、リゾルバからの非再帰的な名前解決の要求に応答する。
  • IPアドレスドメイン名の紐づけ情報を保持する。

ルートサーバ

  • 別称
    • ルートネームサーバ
    • DNSルートサーバ
  • ドメイン名空間の頂点(TLS)に位置するサーバ。
  • ドメイン名の名前解決において、TLDの名前解決を行う。

プライマリとセカンダリ

  • DNSサーバ(コンテンツサーバ)はプライマリとセカンダリの2台構成で運用する必要がある。
    • プライマリDNSサーバ
    • セカンダリDNSサーバ
  • 自社のプライマリDNSサーバに対して、上位プロバイダのDNSサーバをセカンダリDNSサーバにするのが一般的。

DNSサーバ:キャッシュサーバ(フルサービスリゾルバ)

  • Webブラウザはフルサービスリゾルバに対して問い合わせをする。
  • 個人と企業
    • 個人の場合は、契約しているISPが管理しているフルサービスリゾルバを利用する。
    • 企業の場合は、情報システム部門が管理しているフルサービスリゾルバを利用する。
  • フルリゾルバの設定(Linux)
    • /etc/resolv.conf の「nameserver」で指定する。

名前解決の手順

  1. クライアントは自ドメインのDNSサーバに問い合わせをする。
  2. 自ドメインのDNSサーバは、ルートサーバから下位のDNSサーバに向かって問い合わせを繰り返す。
  3. 自ドメインのDNSサーバは、目的のホスト名のDNSサーバからIPアドレスを取得し、クライアントに応答する。

リソースレコード

  • DNSサーバに登録する情報のこと
  • ゾーン
  • 委任

リソースレコードの種類

  • NS
    • DNSサーバのホスト名。ドメインのゾーンを管理するネームサーバを指定するレコード。
    • Zone Apexに必ず設定する。
  • SOA
    • プライマリDNSサーバのホスト名。
    • 権威ドメイン。ゾーン権限を持っているDNSサーバを指定するレコード。
    • Zone Apexに必ず設定する。
  • A
    • ホスト名に対応するIPアドレス(IPv4
    • ドメイン名とIPアドレス(IPv4)を紐づけるレコード。
    • 1つのドメイン名に対して複数のIPアドレスを指定することができる。
  • AAAA
    • ホスト名に対応するIPアドレス(IPv6
    • ドメイン名とIPアドレス(IPv6)を紐づけるレコード。
    • 1つのドメイン名に対して複数のIPアドレスを指定することができる。
  • MX
    • Mail Exchange
    • メールサーバのホスト名
    • メールサーバ(メールアドレスで利用するドメイン名)を指定するレコード
    • MXレコードが設定されていない場合、メールはAレコードで指定したIPアドレスに送られる。
    • メールを明示的に受信しない(Null MX)ことを設定することができる。(プリファレンス値:0、メールサーバ名:.)
  • TXT(SPF)
    • ホスト名に対するテキスト情報。
    • SPFレコードの記述にも使われる。
      • メール送信元サーバを指定するレコード
  • CNAME
    • ホスト名の別名。別名に対する正式名を指定するレコード
    • エイリアス
    • 他のリソースレコードと一緒に設定することができない。(設定した場合は動作保障されない)
    • Zone Apexは、CNAMEを設定することができない。
  • PTR
    • Pointer record
    • ホスト名の別名逆引き
    • IPアドレスからドメイン名を逆引きするためのレコード。
    • PTRレコードは、IPアドレスの所有者側のサーバに設定する。
  • OPT
    • EDNS0に関する情報など
  • CAA
    • サーバ証明書の発行を承認した認証局のコモンネームを指定するレコード
    • 第三者による不正な証明書の発行や誤発行を防止する

グルーレコード

  • DNSサーバのドメイン名に対応するIPアドレスを、問い合わせ対象のドメインの上位のDNSサーバに登録することで、上位のDNSサーバから問い合わせ対象のDNSサーバに繋がるようにすることで、名前解決できるようにすること。

DNSのサービス

DNSサーバソフトウェア

  • OpenDNS
  • OpenNIC

DNSサーバを使ったセキュリティ上の攻撃手法

  • DNSリフレクション攻撃

DNSリクエストの暗号化

暗号化アプリ

DNS関連のコマンド

bind-util

  • yum -y install bind-utils

kdig

mDNS

  • マルチキャストDNS

関連サイト

関連用語