DNS:MXレコードとCNAMEの両方を必要とするサブドメイン


17

ゾーンmywebservice.comを所有しているとしましょう。

各顧客にcustomer.mywebservice.comなどの独自のサブドメインを取得してほしい。

customer.mywebservice.comは、特定のサーバーオフサイトのCNAMEである必要があります。そのサイトは独自の機器を管理し、いつでもアドレスを変更できるため、CNAMEは必須です。

また、単純なMXレコードが必要なinbox@customer.mywebservice.comにメールを送信できる必要があります。

ただし、ここでいくつかのガイダンスが必要です。

RFC 1034によると:

If a CNAME RR is present at a node, no other data should be
present; this ensures that the data for a canonical name and its aliases
cannot be different.

また、DNSサーバーが、それらを使用するホストのCNAME以外のサービスの提供を拒否することも確認しました。

だから、私は負けているかもしれないようです。MXレコードを使用する場合は、CNAMEの代わりにAを使用する必要があります。

誰でも回避策を考えることができますか?ありがとう!

回答:


20

残念ながら、あなたが実行しているのはDNS仕様の制限です。ほとんどのDNSサーバーの実装では、CNAMEレコードとして定義されているホスト名と同じホスト名のMXレコードは失敗します。古いDNSサーバーの中にはこれを許可するものもありますが、新しい、より安全な実装を優先して、ほとんどの段階で廃止されています。

CNAMEレコードを使用する代わりに、名前をエイリアスする代わりに、顧客サイトのIPアドレスで「A」レコードを直接使用する必要があります。


ええ、私はちょうどこれに直面するつもりだと思います。ありがとう!
マイケルゴーサッチ

2
また、これを将来読んでいる人にとっては、この制限の理由は、CNAMEが検索されるホストの「正規名」を参照することになっていることに注意する必要があります。たとえば、x1.example.comを指すCNAMEレコードであるホストx2.example.comがある場合、x2を検索するリゾルバーはCNAMEを参照し、x2に対して行っていることをx1に置き換えて、最初からやり直します。 。CNAMEに加えてx2のMXレコードがある場合、x1にもMXがある場合、それらが異なる可能性があり、望ましくないため、単にそれを禁止します。
ジャスティンスコット

18

ここで多くの作業と研究を行った後、許容できる解決策を見つけました。まず、私たち全員がRFCに従うことが重要です。DNSサーバーにパッチを適用してRFCに違反し、他のいくつかの主要なDNSサーバーが変更を尊重しないことを発見しました。

適切な移動は、CNAMEが指すホストにMXを配置することです。したがって、customer.mywebservice.comがAレコードloadbalancer.mywebservice.comのCNAMEである場合、loadbalancer.mywebservice.comのMXレコードも作成するのが適切です。これがすべての主要なリゾルバで機能することを確認しました。

customer.mywebservice.comに対してMXクエリが作成された場合、リゾルバーライブラリはCNAMEに従い、最終的なAレコードの適切なMXを取得します。ハラー!


4

customer.mywebservice.comは、特定のサーバーオフサイトのCNAMEである必要があります。そのサイトは独自の機器を管理し、いつでもアドレスを変更できるため、CNAMEは必須です。

誰でも回避策を考えることができますか?ありがとう!

顧客が住所を変更できる必要があるという要件がありますが、顧客が自分のレコードを動的に更新できるようにすることを検討しましたか?ダイナミックDNSを使用すると、Aレコードを使用でき、顧客は必要に応じてレコードを変更できます。少し手間がかかりますが、個々のサブドメインを個別のゾーンとして使用して、顧客が自分のゾーンにしかタッチできないようにすることができます。

試したことはありませんが、gnudipは、認証を処理したりDNSサーバーに多くのゾーンを設定したりすることなく、動的更新を容易にするためのオープンソースツールのようです。


3

MXレコードがこれらのすべてのレコードで同じ場合、DNAMEを使用してXYZ.mywebservice.comをhosting.mywebservice.comにリダイレクトすることができます。hosting.mywebservice.comの下に、関連するMXレコードとAレコードを追加します。

私は本番環境で DNAMEレコードを利用したことはありませんが、RFC2672でそれらについて詳しく読むことができます。


一部のSSLドメインでDNAMEを使用してみたかったのですが、古いDNSサーバーなどにはまだ問題があると聞きました。これは関係ありますか?または、DNAMEは実稼働サーバーで安全に使用できますか?
drybjed 2009年

推測しなければならない場合、多くのアプリケーションはDNAMEレコードを期待しておらず、おそらくそれらを使用すると壊れます。すべてのメールサーバーはDNAMEに従ってMXレコードを検索しますか?知りませんが、そうすべきです。SSLの問題については、DNAMEを理解していないDNSサーバーは代わりにCNAME参照を受け取る必要があります。これを実装する前に徹底的にテストします。
ダグルクセム2009年

アプリケーションは確かにDNAMEレコードを処理する必要はありません!ネームサーバーでのみ行われます。
ボルツマイヤー2009年

3

customer.mywebservice.com CNAMEのRHSにはMXエントリがありますか?

その場合、メールサーバーはそのMXを使用して、使用するメールサーバーを見つけます。うまくいけば、それを制御できます。


1

マイケルGorsuchの答えが大きく正しいか、CNAME - > A + MXチェーンが...作業を行い、主に。ただし、特定のMTAでいくつかの悪い動作を引き起こします。このソリューションを適切な規模で実行していることがわかりました:

  • 一部のMTAは、レコードの検索を拒否します。
  • 他の人は、CNAMEがあるはずのAレコードを誤って置換します。つまり、「joe@foo.example.com」にメールを送信し、そのCNAMEをweb.example.comに送信します。 MTAは、エンベロープヘッダーを「To:joe@web.example.com」に書き換えます。

これらの問題がどの程度広まっているのかはまだ明確ではありませんが(google / hotmail / yahoo / etcはすべてこれを正しく処理しているようです)、より良い解決策を探しています。


2
正解です; RFC5321準拠のSMTPサーバーの文書化された動作は、最初にドメインのMXレコードの存在を確認し、それが失敗した場合、Aレコードの存在を確認することです。この振る舞いは、MXがCNAMEであってはならない本当の技術的な理由です。最初の使用可能な回答の後に解決を停止します。
アダプター

0

考えられる有効なソリューションは、すべての顧客の基本的なホスト名を作成し、それをオフサイトWebサーバーとmxのaおよびaaaaレコードに設定し、すべての顧客ドメインをその単一のホスト名にCNAMEすることです。そうすれば、オフサイトのIPアドレスが変更されたときに1つのレコードを変更するだけで済みます。

CNAMEはaだけでなく、レコードの完全なセットのエイリアスであるため、唯一の価値があり、可能な方法です。


-4

MXとCNAMEは完全に独立したレコードです-最初は特定のドメインのメールサーバーを決定し、2番目はドメインのアドレスを指定します。これは動作するはずです:

@ IN SOA ns1.mywebservice.com。root.mywebservice.com。(
                        2009060201
                        12時間
                        1時間
                        1w
                        8時間
)

                        NS ns1.mywebservice.com。
                        NS ns2.mywebservice.com。

顧客CNAME offsite.host。
顧客MX 10 mail.server。

4
これは機能する可能性がありますが、CNAMEと同じ名前を持つリソースレコードは他にないことを示すRFC1034およびRFC1219に違反します。
ダグルクセンブルク09年

私のDNSデーモンはRFCに厳密であり、完全にMXに対する応答の送信を拒否します。これを導入する場合、クライアント側で潜在的なキャッシュの問題があると思います。
マイケルゴーサッチ

どのDNSデーモンですか?私は問題なくその構成で動作するはずのBIND9を使用しています。たぶんアップグレードする時ですか?大きなインフラストラクチャ、私は推測?
drybjed 2009年

MyDNSを使用しています。これは非常に大規模な構成であり、この小さなデーモンはこの時点まで祝福されてきました。パッチを適用することを検討していますが、出産する副作用に対処することにはあまり興味がありません。RFCに反する場合、それは悪い考えのように聞こえます。
マイケルゴーサッチ

@Maciej-確かに、権限のあるサーバーこれらのレコードをホストできる可能性あります。しかし、それらを照会するほとんどの再帰サーバーの地獄を混乱させます。
アルニタック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.