CNAME(別名定義)をお使いの場合、設定にご注意ください
CNAMEの設定がRFCに準拠しない設定の場合、弊社セカンダリDNSがご利用出来ないケースや、名前解決が出来ない事象が確認されております。以下で紹介するケースについて、設定方法や運用方法をご検討頂けますようお願い致します。
複数のメールの宛先を同じサーバー宛にする事例
以下の記述では、@example.com @mail.example.com 共に192.168.0.2が配送先になります。しかしながら、[NG例 1]の(2)(3)の組み合わせが RFC974,RFC2181へ準拠していない為、DNS環境によっては利用出来ないケースが御座います。弊社セカンダリDNSでもご利用頂けず、ゾーン転送は失敗致します。
[NG例 1]
example.com. | IN MX 0 | host1.example.com. | //(1) |
mail.example.com. | IN MX 0 | host1.example.com. | //(2) |
mail.example.com. | IN CNAME | host1.example.com. | //(3) |
host1.example.com. | IN A | 192.168.0.2 | //(4) |
[修正例 1-1]
(3)の行をAレコードにする事で不具合が解消されます。
example.com. | IN MX 0 | host1.example.com. | //(1) |
mail.example.com. | IN MX 0 | host1.example.com. | //(2) |
mail.example.com. | IN A | 192.168.0.2 | //(3) |
host1.example.com. | IN A | 192.168.0.2 | //(4) |
[修正例 1-2]
(3)の行が無くても、一般的にはMXだけで配送先を指定する事が可能です。
example.com. | IN MX 0 | host1.example.com. | //(1) |
mail.example.com. | IN MX 0 | host1.example.com. | //(2) |
host1.example.com. | IN A | 192.168.0.2 | //(4) |
multiple-cnamesのオプションを使った負荷分散の事例
multiple-cnamesを使った[NG例 2-1][NG例 2-2]の様な記述は RFC1034 に準拠しない事から、DNS環境によっては利用出来ないケースが御座います。弊社セカンダリDNSでもご利用頂けず、ゾーン転送は失敗致します。
[NG例 2-1]では、www.example.comの検索結果を192.168.1.2と192.168.1.3の2通りにする事で、負荷を概ね均等に分散する効果を期待した設定ですが、[修正例 2-1]の様に記述する事で不具合が未然に防げます。
[NG例 2-1]
www.example.com. | IN CNAME | host1.example.com. |
www.example.com. | IN CNAME | host2.example.com. |
host1.example.com. | IN A | 192.168.1.2 |
host2.example.com. | IN A | 192.168.1.3 |
[修正例 2-1]
www.example.com. | IN A | 192.168.1.2 |
www.example.com. | IN A | 192.168.1.3 |
[NG例 2-2]では、www.example.comの検索結果を192.168.1.2と192.168.1.3の2通りにし、且つ 負荷を概ね 1:2 に分散する効果を期待した設定ですが、これはDNSの記述を修正し対応する事は出来ません。別途、ロードバランサーなどのNW機器を導入し実現して頂く必要が御座います。
[NG例 2-2]
www.example.com. | IN CNAME | host1.example.com. |
www.example.com. | IN CNAME | host2.example.com. |
www.example.com. | IN CNAME | host3.example.com. |
host1.example.com. | IN A | 192.168.1.2 |
host2.example.com. | IN A | 192.168.1.3 |
host3.example.com. | IN A | 192.168.1.3 |
物理的に1つのサーバーで、DNS、Mail、Web を運用する場合
NSやMXレコードの右側に定義するホストとして、CNAME(別名)で定義したホスト名を記述した場合、外部のDNSから、該当するホストのIPアドレスを検索出来なくなる事象が御座います。
NSやMXの右側に定義するホスト名は、AレコードでIPアドレスを定義して頂く事で、トラブルが未然に防げます。
[NG例 3-1]
example.com. | IN NS | dns.example.com. |
example.com. | IN MX 10 | mail.example.com. |
mail.example.com. | IN A | 192.168.69.34 |
dns.example.com. | IN CNAME | mail.example.com. |
www.example.com. | IN CNAME | mail.example.com. |
[NG例 3-2]
example.com. | IN NS | dns.example.com. |
example.com. | IN MX 10 | mail.example.com. |
dns.example.com. | IN A | 192.168.69.34 |
mail.example.com. | IN CNAME | dns.example.com. |
www.example.com. | IN CNAME | dns.example.com. |
[修正例 3]
example.com. | IN NS | dns.example.com. |
example.com. | IN MX 10 | mail.example.com. |
dns.example.com. | IN A | 192.168.69.34 |
mail.example.com. | IN A | 192.168.69.34 |
www.example.com. | IN CNAME | mail.example.com. |