【AWS】Route53のレコードの種類と概要をまとめてみました
勉強前
SAAでRoute53勉強したけどレコードタイプの種類を忘れてしまったので復習のついでにまとめました。
DNSの仕組み
ドメインを送信したら、DNSサーバが名前解決を行い、IPアドレスを返すシステムのことです。
ここで意外だったのが、ドメインの解決で返されるものは、電話番号や認証キーなどありIPアドレスだけではないということです。
なので、DNSは後述するレコードタイプによって返される値が異なってくるということですね。
レコードタイプ
直訳すると、「行の型」ですね。
DNSは、リソースレコードというドメイン名に関連付けられた情報を複数持っています。
各情報は決まったルールで保存されています。
その決められたルール・形式のことを、レコードタイプといいます。
レコードタイプの種類
ここでは、各レコードタイプの概要を説明していきます。
Aレコード
ドメインとIPアドレスを紐付けます。
1対多の紐付けも可能です。
AAAAレコード
ドメインとIPv6アドレスを紐付けます。
こちらも1対多の紐付けが可能です。
CAAレコード (Certification Authority Authorization)
ドメイン名の証明書を発行する証明局を指定するレコード。
これにより、証明書の誤発行を防止や、不正な証明書発行要求の検知が期待できます。
NSレコード (Name Serverレコード)
あるゾーンの権威サーバを指定するときに使われるリソースレコード。
親ゾーンの権限を子ゾーンを委任します。
委任した子ゾーンは、別途AレコードやAAAAレコードの設定が必要です。
例)example.com IN NS ns1.example.com
ns2.example.com
親→example.com
子→ns1.example.com , ns2.example.com
NSリソースレコードは、以下のような二つの意味で使われます。
-
親となる委任元が、子となる委任先を指定する
-
委任先で、そのゾーンの権威サーバー(権威DNSサーバー)を記述する
DSレコード
DNSSECを実装する際に必要となります。
親ゾーンに設定される子ゾーンのDNS鍵のリソースレコードを参照するリソースレコードです。
親ゾーンのDSレコードと子ゾーンのKSK公開鍵の情報が一致することで、DNSSECを実装できるようになります。
JPRS用語時点 DSリソースレコードのより引用
JPRS用語辞典|DSリソースレコード(ディーエスリソースレコード)
要素 | 説明 |
---|---|
key tag | 鍵のIDで、子ゾーンのDNSKEYリソースレコードに対応します。 |
algorithm | DNSSECアルゴリズム番号を示し、RSASHA256であれば8を指定します。 |
digest type | 続くテキスト部分で使われているダイジェスト(※2)のアルゴリズムを示し、SHA-256であれば2を指定します。 |
digest | 子ゾーンのドメイン名と参照先のDNSKEYリソースレコードから生成されたダイジェストを指定します。 |
MXレコード(Mail eXchangeレコード)
メールサーバーを指定するレコードです。
構文にはプリファレンスという優先度を指定できるものがあります。
プリファレンスを適切に指定することで、可用性の向上が期待できます。
NAPTRレコード(The Naming Authority Pointerレコード)
ドメイン名にURIを登録する機能と、SRVリソースレコードと組み合わせ、多くのアプリケーションのロケーションをドメイン名を用いて指定できるようにする機能をもっています。
NAPTRレコードは、複雑な構文を採用することにより、たくさんの情報を持たせることができるます。
よく用いられるのは、インターネット電話のアプリケーション、つまりセッション開始プロトコル (SIP) でのサーバーとユーザー アドレスのマッピングに使用されます。
構文については、こちらをご参照ください。
ClouDNS: What is NAPTR Record?
PTRレコード(PoinTeRレコード)
別名、逆引きDNSとも言われます。IPアドレスからドメイン名を特定するレコードになります。IPv4、IPv6ともにPTRレコードで記述ができます。
用途としては、アクセス元を判別したり、通信相手の存在を確認する際に使われます。
AWSにおいては、Amazon SESで送信ドメイン認証で使われたりしています。
SOAレコード(Start Of Authorityレコード)
SOAは委任に関するオーソリティ情報を記すものであり、各ゾーンの委任されたドメイン名に関連付けられます。
SOAリソースレコードは、一つのゾーンに一つだけ記述されます。
変更確認のためのリフレッシュの間隔を指定したり、失敗時の再試行の時間などを指定できます。詳しくは公式ドキュメントをご参照ください。
Amazon Route 53 がパブリックホストゾーンに作成する NS レコードと SOA レコード - Amazon Route 53
SPFレコード(Sender Policy Flameworkレコード)
かつて、メールの送信者の身元を確認するために使われていました。Amazon Route 53においても利用可能ですが推奨されていません(RFC 7208 14.1 The SPF DNS Record Type)
代わりに、TXTレコードで同様の記述が可能です。
SRVレコード(SeRViceレコード)
ドメイン名に対するサービスのポートを指定することができます。特定のポートに通信を絞りたい、などといったケースに対応可能です。
TXTレコード
任意の値を保持するためのレコードで、汎用性の高い用途で利用可能です。先述のSPFレコードの代わりにメール送信者の身元確認や、スパムメールの防止のほか、テキスト形式でのメモとして使われたりもします。
ALIASレコード
こちらはRFCに定められたレコードではなく、Amazon Route 53の独自の拡張となります。
AWSリソースへのルーティングの際に、CNAMEレコードの代わりに使われれます。
ALIASレコードは前述のZone Apexに加えてCNAMEレコードと比較した明確なメリットが2点あります。
- Amazon Route 53においてはAWSリソースに対するDNSクエリに対して課金されません。
- CNAMEレコードで記述した場合、DNSクエリは2つのクエリとして処理されますが、ALIASレコードは1つのDNSクエリとして処理されます。
したがって、ALIASレコードが利用できるシーンではALIASレコードを使用するのがベストプラクティスとなります。
どのシーンでALIASレコードが使えるかのチェックには、Trusted Advisorで確認することもできます。
Amazon Route 53 エイリアスリソースレコードセット
まとめ
ネットワークについての学習はあまりしていませんでしたが、今回の執筆により普段の通信でDNSがどのように機能しているかの整理ができました。みなさんのご理解の一助になれば幸いです。
Discussion