リソースレコード

2023-02-12 (日) 11:41:48

リソースレコード

  • 権威サーバで保持するゾーンの情報
  • ドメイン名、タイプ、クラスの組み合わせで構成される

リソースレコードのフォーマット

ドメイン名 TTL クラス タイプ データ
  • ドメイン名は絶対ドメイン名(末尾に"."(ルート)を付ける)
  • TTL、クラスは省略可能
  • 同じドメイン名のリソースレコードが複数ある場合、2行目以降はドメイン名を省略可能

リソースレコードの構成

TTL

  • Time To Live
  • フルリゾルバがキャッシュに保持する時間(単位:秒)
  • ゾーンの管理者が指定する

クラス

  • ネットワークの種類
  • 通常は"IN" しか使われないが、特殊な用途で"IN" 以外が使われることもある

IN

  • インターネットを表す

タイプ

  • 情報の種類

SOA

  • プライマリDNSサーバのドメイン名。
  • 権威ドメイン。ゾーン権限を持っているDNSサーバを指定するレコード。
  • Zone Apexに必ず設定する。
  • フォーマット
    ドメイン名 TTL IN SOA MNAME RNAME SERIAL REFRESH RETRY EXPIRE MINIMUM
    • MNAME
      • プライマリサーバのホスト名
    • RNAME
      • ゾーンの管理者のメールアドレス
      • メールアドレスの"@"は"."に置き換えて表記する
    • SERIAL
      • ゾーンデータのシリアル番号
      • ゾーン転送でセカンダリサーバがプライマリサーバに新しいゾーンデータがあるかどうかを判断する際に使われる
    • REFRESH
      • セカンダリサーバが自発的にゾーンデータの更新を試みるまでの時間(単位:秒)
      • プライマリサーバからのDNS NOTIFY の通知を待たずに行われる
    • RETRY
      • ゾーンデータの更新が失敗した場合に、再度ゾーンデータの更新を試みるまでの時間(単位:秒)
    • EXPIRE
      • ゾーンデータの更新が失敗した場合に、保持しているゾーンデータを期限切れにするまでの時間(単位:秒)
      • 期限切れになると、セカンダリサーバは問い合わせに対して保持するゾーンデータを応答しなくなる
    • MINIMUM
      • フルリゾルバがネガティブキャッシュを保持する時間(単位:秒)
      • SOAリソースレコードのTTLの時間の方が短い場合は、SOAリソースレコードのTTLの方が有効になる

NS

  • ドメインのゾーンを管理する権威サーバのホスト名を設定するレコード
  • ドメイン自身(子)のゾーンと親のゾーンの両方に設定する
  • 権威サーバが複数ある場合は、権威サーバ分のレコードを設定する
    • 設定するレコードの順番はDNSの動作に影響しない
  • Zone Apexに必ず設定する。
  • フォーマット
    ドメイン名 TTL IN NS 権威サーバのホスト名

A

  • ドメイン名に対応するIPアドレス(IPv4
  • ドメイン名とIPアドレス(IPv4)を紐づけるレコード。
  • 1つのドメイン名に対して複数のIPアドレスがある場合は、IPアドレス分のレコードを設定する
  • フォーマット
    ドメイン名 TTL IN A IPアドレス(IPv4)

AAAA

  • クワッドエー
  • ドメイン名に対応するIPアドレス(IPv6
  • ドメイン名とIPアドレス(IPv6)を紐づけるレコード。
  • 1つのドメイン名に対して複数のIPアドレスがある場合は、IPアドレス分のレコードを設定する
  • フォーマット
    ドメイン名 TTL IN AAAA IPアドレス(IPv6)

MX

  • Mail Exchange
  • メールサーバのホスト名
  • メールサーバ(メールアドレスで利用するドメイン名)を指定するレコード
  • MXレコードが設定されていない場合、メールはAレコードで指定したIPアドレスに送られる。
  • メールを明示的に受信しない(Null MX)ことを設定することができる。(プリファレンス値:0、メールサーバ名:.)
  • 1つのドメイン名に対して複数のメールサーバがある場合は、メールサーバ分のレコードを設定する
  • フォーマット
    ドメイン名 TTL IN MX 優先度 ホスト名
    • 優先度
      • 複数のメールサーバがある場合の優先度を数値で設定する
      • 値が小さい方を優先する

CNAME

  • ドメイン名の正式名を指定するレコード
  • ホスト名に別名を付ける場合に使われる
    • CDNなどの外部のサービスを自分のドメイン名で利用する際に使われることがある
    • 同じゾーンの別のドメイン名を指定することもできる
    • エイリアス
  • フルリゾルバが問い合わせをしたドメイン名にCNAMEレコードが設定されていると、CNAMEレコードに設定されている正式名に対して再度名前解決を行い、その結果を応答する
  • CNAMEレコードを設定したドメイン名に対して、他のリソースレコードを設定することができない(設定した場合は動作保障されない)
  • 1つのドメイン名に対して複数のCNAMEレコードを設定することができない
  • Zone Apexは、CNAMEを設定することができない。
  • フォーマット
    ドメイン名 TTL IN CNAME 正式名

TXT

  • ドメイン名に対して任意のテキスト情報を設定するレコード
  • 送信ドメイン認証で使われる
    • SPF
      • メール送信元サーバを指定する
    • DMARC
  • フォーマット
    ドメイン名 TTL IN TXT 任意の文字列
    ドメイン名 TTL IN TXT "任意の文字列"

PTR

  • Pointer record
  • ドメイン名の別名逆引き
  • IPアドレスからドメイン名を逆引きするためのレコード。
  • フォーマット
    逆引き用のドメイン名 TTL IN PTR ドメイン名
    • 逆引き用のドメイン名
      • IPv4:(1バイト毎に区切ったIPアドレスを逆に表記したもの).in-addr.arpa.
      • IPv6:(4ビット毎に区切り"."(ドット)で連結したIPアドレスを逆に表記したもの).ip6.arpa.

OPT

  • EDNS0に関する情報など

CAA

  • サーバ証明書の発行を承認した認証局のコモンネームを指定するレコード
  • 第三者による不正な証明書の発行や誤発行を防止する

HTTPS

  • Webサーバの情報を設定する

DNSKEY

  • DNSSECデジタル署名で使った公開鍵を設定するレコード
  • フォーマット
    ドメイン名 TTL IN DNSKEY フラグ プロトコル アルゴリズム 公開鍵

RRSIG

  • DNSSECデジタル署名で生成した署名を設定するレコード
  • フォーマット
    ドメイン名 TTL IN RRSIG タイプ アルゴリズム ラベル オリジナルTTL 有効期間終了時刻 有効期間開始時刻 鍵タグ 署名者 署名

DS

  • DNSSECの公開鍵(DNSKEYリソースレコード)を元に生成したハッシュ値を設定するレコード
  • DSリソースレコードは親ゾーンの秘密鍵で署名され、親ゾーンに登録する
    • 署名はRRSIGリソースレコード(タイプ:DS)で登録する
  • フォーマット
    ドメイン名 TTL IN DS 鍵タグ アルゴリズム ダイジェストタイプ ダイジェスト([[ハッシュ]]値)

SVCB

関連用語(リソースレコード)

  • リソースレコードセット
    • RRset
    • 1つのドメイン名に対してクラスとタイプが同じリソースレコードの設定のこと
    • データのみ異なるリソースレコードが複数、またはリソースレコードが1つの場合もリソースレコードセットとして扱われる
  • グルーレコード
    • 任意元の権威サーバに設定する任意先の権威サーバのNSレコードに対応するA/AAAAレコードのこと
    • フルリゾルバが任意先の権威サーバに名前解決を依頼する為には、任意先の権威サーバを知る必要があるのでそのためのもの

関連用語