近頃DNSの設定に触れる機会があり、中でもよく見かけるDNSリソースレコードとその記述方法を簡単にまとめました。
リソースレコードの基本的な書き方
リソースレコードを設定する際は、以下のようにドメイン名やリソースレコードの種類などを設定します。
TTL(Time To Live)はキャッシュされる時間、IN(Internet)はインターネットを指します。
"ドメイン名" TTL IN "レコードの種類" "レコードの種類に応じた記述"
例)
ドメイン名"example.com"でAレコードを設定したい時
example.com 360 IN A 192.168.XXX.XXX
リソースレコードの種類と設定内容
リソースレコードは、種類に応じて記述ルールがあります。これらのルールは主にRFCという文書を基に適用されています。
A
ドメイン名に対応したIPv4アドレスを紐づけます。
example.com TTL IN A 192.168.XXX.XXX
AAAA
ドメイン名に対応したIPv6アドレスを紐づけます。AレコードのIPv6バージョンです。
example.com TTL IN AAAA 0000:0000:0000:0000:0000:ffff:c0a8:XXXXX
MX
メール転送したいホストを指定します。ホストの直前の数値は優先順位を表しています。
example.com TTL IN MX 10 ml.example.com
CNAME
Canonical Name(=正式名)の通り、ドメイン名の正式な名前を指定します。
www.example.com TTL IN CNAME example.com
TXT
任意の文字列を指定します。
メールのなりすまし対策に使われるSPFやDKIM、DMARCに使われることがあります。
SPF(Sender Policy Framework)
メール送信者のサーバに対して認証します。
冒頭に「v=」でSPFのバージョンを指定し、以下のように設定内容によってタグを付けます。
example.com TTL IN TXT "v=spf1 ip4:IPアドレスまたはIPアドレスとサブネット範囲 a:ホスト名(FQDN) include:外部メールアドレスの指定 ~all"
IPv4...192.168.0.XXX
ホスト名...sub.example.com
外部メールアドレス...fsmails.com
の条件で設定したい時
example.com TTL IN TXT "v=spf1 ip4:192.168.0.XXX a:sub.example.com include:fsmails.com ~all"
DKIM(DomainKeys Identified Mail)
メールに電子署名を付与します。
バージョンを指定し、記述情報に応じてタグをつけることが可能です。また、SPFとは異なり各情報末尾に「;」を付けます。
example.com TTL IN TXT "v=DKIM1; k=暗号方式(rsaのみ); p=公開鍵;"
暗号方式はrsaのみですので、公開鍵「koukaikagidayo」を設定する場合は以下のように記述します。
example.com TTL IN TXT "v=DKIM1; k=rsa; p=koukaikagidayo;"
DMARC(Domain-based Massage Authentication, Reporting, and Conformance)
SPFとDKIMの両方を拡張したものです。メール処理に応じてレポートを受け取ることが可能です。
DMARCでも同様に、バージョンの指定と設定内容応じたタグを付けます。
example.com TTL IN TXT "v=DMARC1; p=送信元ドメインが認証に失敗した際のメール受信動作を選択(none, quarantine, reject); rua=集計レポートの送り先メールアドレス; ruf=認証レポートの送り先メールアドレス;"
p...reject
rua...mail0@example.com
ruf...mail1@example.com
の条件で設定したい時
example.com TTL IN TXT "v=DMARC1; p=reject; rua=mail0@example.com; ruf=mail1@example.com;"
Google Search Console利用時
Google Search Consoleを利用する際、自身が管理しているサイトであるという認証を得るためにレコードを登録します。記述の際は、Googleから指定されるレコードをそのまま登録します。
なお、指定されたレコードは冒頭が主に「google-site-verification=...」となっていますので、以下のように登録されます。
example.com TTL IN TXT "google-site-verification=指定されたレコード"
SSLサーバによる証明書利用時
SSLサーバ証明書を利用する際は、ご利用の証明書発行元が指定するレコードを登録します。
example.com TTL IN TXT "指定されたレコード"
まとめ
ここまでリソースレコードの設定について見てきました。
DKIMなどは他にも設定できるタグが存在します。今回取り上げた内容以外にもがあるので、ルールやレコードの仕組みについて今後も見てみたいと思います。