DNS:需要MXlogging和CNAME的子域

让我们说我们拥有该区域mywebservice.com。

我希望每个客户都能获得自己的子域名,例如customer.mywebservice.com。

customer.mywebservice.com需要成为异地给定服务器的CNAME。 由于该站点pipe理自己的设备,并可以随时更改地址,所以CNAME是一项要求。

人们还需要能够发送电子邮件到[email protected],这将需要一个简单的MXlogging。

但是,这是我想要的一些指导:

根据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之外的任何内容。

所以,我可能会有一个失败的情况。 如果我想使用MXlogging,则需要使用A而不是CNAME。

任何人都可以想到任何解决方法? 谢谢!

    不幸的是,你遇到的是DNS规范的限制。 具有与定义为CNAMElogging相同主机名的MXlogging在大多数DNS服务器实现中将失败。 一些较旧的DNS服务器将允许这样做,但是他们已经被逐渐淘汰,转而采用更新,更安全的实施方式。

    您不需要使用CNAMElogging,而是直接使用“A”logging和客户站点的IP地址,而不是别名。

    经过大量的工作和研究,我find了一个可以接受的解决scheme。 首先,我们都遵循RFC。 我修补了我的DNS服务器违反RFC,我发现其他几个主要的DNS服务器不会尊重这个变化。

    适当的做法是将MX放在CNAME指向的主机上。 因此,如果customer.mywebservice.com是Aloggingloadbalancer.mywebservice.com的CNAME,那么也为loadbalancer.mywebservice.com构build一个MXlogging是合适的。 我已经证实,这与所有主要的解决scheme。

    如果为customer.mywebservice.com进行MX查询,parsing器库将跟随CNAME并为最终的Alogging获取适当的MX。 欢呼!

    customer.mywebservice.com需要成为异地给定服务器的CNAME。 由于该站点pipe理自己的设备,并可以随时更改地址,所以CNAME是一项要求。

    任何人都可以想到任何解决方法? 谢谢!

    您有要求客户必须能够更改地址,您是否考虑允许客户dynamic更新自己的logging? 使用dynamicDNS可以使用Alogging,客户可以根据需要更改logging。 这需要一些工作,但是你可以将每个子域作为一个独立的区域,这样你就可以确保一个客户只能触摸他们自己的区域。

    我还没有尝试过,但gnudip似乎是一个开放源码的工具,以促进dynamic更新,而无需处理身份validation,并在您的DNS服务器上设置大量的区域。

    如果您的MXlogging对于所有这些logging都是相同的,那么您可以尝试使用DNAME将XYZ.mywebservice.comredirect到hosting.mywebservice.com。 在hosting.mywebservice.com下添加您的relavent MX和Alogging。

    我必须说,我从来没有在生产中使用DNAMElogging,但你可以在RFC2672中阅读更多关于它们的内容 。

    customer.mywebservice.com CNAME的RHS是否有MX条目?

    如果是这样,那么邮件服务器将使用该MX来find要使用的邮件服务器。 希望你可以控制。

    Michael Gorsuch的回答基本上是正确的,CNAME – > A + MX链大部分都能正常工作。 但是,它确实在某些MTA中触发了一些不良行为。 我发现运行在一个体面的规模这个解决scheme:

    • 有些MTA会拒绝查找logging。
    • 其他人将错误地将Aloggingreplace为CNAME所在的位置:即,我将邮件发送到“[email protected]”,该邮件将CNAMES发送到web.example.com,该邮件具有MX的mail.example.com, MTA将信封头重写为“收件人:[email protected]”。

    目前还不清楚这些问题是多么普遍(谷歌/ hotmail /雅虎等似乎都正确处理),但他们当然有我们寻求更好的解决scheme。

    一个可能和有效的解决scheme是为所有客户创build一个基本主机名,并将其设置为离线网站服务器和mx的a和aaaalogging,然后将所有客户域的CNAMElogging到该单一主机名。 这样,只有在场外的IP地址发生变化时,您才需要更改一条logging。

    这是唯一可行的方法,因为CNAME是一整套logging的别名,而不仅仅是一个。

    MX和CNAME是完全独立的logging – 第一个确定给定域的邮件服务器,第二个给出域的地址。 这应该工作:

     @ IN SOA ns1.mywebservice.com。  root.mywebservice.com。  (
                             2009060201
                             12小时
                             1H
                             1瓦特
                             8小时
     )
    
                             NS ns1.mywebservice.com。
                             NS ns2.mywebservice.com。
    
    客户CNAME offsite.host。
    客户MX 10 mail.server。