DNS周りの理解を深める

ネームサーバとDNSサーバーの違いは?

同じ。ドメインIPアドレスを変換して紐づけるためのもの。

権威DNSサーバとDNSコンテンツサーバの違いは?

同じ。フルサービスリゾルバやキャッシュサーバのように名前解決先を探す役割ではなく、自分の知っているゾーン内でのみ回答するという機能・役割のDNSサーバ。

プライマリサーバとセカンダリサーバの違いは?

プライマリに自分でレコードの設定を行い、その設定をコピーして同じ動きをするようにするのがセカンダリサーバ。

どうやって同期する?

方法は主に3つあるが、使用しているDNSサーバソフトウェアによって変わる。

  • ゾーン更新通知(NOTIFY)とゾーン転送要求(AXFR,IXFR)を利用する
  • ファイルを転送する
  • RDBを利用する

DNSサーバソフトウェア色々(参考

  • BIND(古くからあり脆弱性も多くなってきているが実績は多い。Dynamic DNS、view、DNSSEC、IPv6の対応などのほぼすべての機能が揃っている)
  • NSD(権威DNSサーバに特化)
  • unbound(DNSキャッシュサーバに特化)
  • dnsdist(DNSのロードバランシングや暗号化ができる。古くなったBINDから別ソフトウェアに移行する際、キャッシュDNSサーバと権威DNSサーバをまとめた一つの構成となっているBINDと同じ構成を作るためにdnsdistを他のソフトウェアと組み合わせて使用したりする)

Dynamic DNS

view

名前解決クエリの結果を、接続先によって見せ方を変えるようなことができる。(参照

DNSSEC

DNSキャッシュサーバが応答されたレコードに付与された鍵と署名のセットを見て、正しいDNSサーバからの応答なのかをチェックする技術。これによって、DNSキャッシュポイズニングによる偽装サイトへの誘導などを防ぐことができる。(参照

SOAレコードとは?

ゾーン転送に関する情報を持っており、プライマリサーバからセカンダリサーバへのゾーン転送をするために必要。

Zone ApexとCNAMEレコードの制約

そもそもZone Apexとはexample.comというゾーンの頂点であるexmample.comというネイキッドドメインのことを指す。

このZoneApexにはCNAMEレコードを登録できない。つまり、ネイキッドドメインへのアクセスをALBのdns名にCNAMEで紐づける。といったことができない。

理由としては、ZoneApexのドメイン名はそのゾーン内の他のMXレコードやNSレコードへ名前解決する必要があるのでCNAMEを設定するとこれら他のレコードへの名前解決ができなくなる可能性がある。

困るのは、ZoneApexドメインIPアドレスが一意ではないロードバランサーなどへのCNAMEレコードを設定したい場合である。一意なIPアドレスであれば、AレコードでZoneApexを指定すればいいのだがそうでない場合、エイリアスレコードが使用可能なサービスへの移行を考える必要がある。

エイリアスレコードを使えるサービス

参照