使用DNS记录将根域转发到www子域


16

我已经www.mydomain.com指出了Azure网站。

www.mydomain.com --- CNAME --- mydomain.azurewebsites.net

当我访问时www.mydomain.com,一切正常。很好

问题是,mydomain.com不起作用。Azure仅允许www子域。

在某些域名服务器中,我使用FWD记录将根转发到www,这很好。我当前的名称服务器(zoneedit.com)没有此FWD记录。

是否存在可用于将根域转发到www子域的DNS记录?


2
ZoneEdit有一个“ WebForward”将执行此操作。
迈克尔·汉普顿

@MichaelHampton完美。我们使用了@ | StealthForward | http://www.example.com
Shaun Luttin

那很棒。它基本上完成了我所描述的操作(指向真正的IP,这是一个Web服务器,仅使用HTTP 300系列重定向到www.domain.com)。
DTK 2014年

Answers:


17

不幸的是,这是DNS协议的众所周知的缺点。在DNS标准中没有定义记录类型,该记录类型将允许您别名域的顶点。许多人认为CNAME可以使用记录来完成此操作,但是出于技术原因,他们不能这样做

许多DNS提供程序都实现了自定义(伪造)的DNS记录类型,以尝试解决此缺点。在后台,这些伪造记录使用综合A记录和Web服务器重定向的组合在该公司的软件中实现自定义行为,以实现您想要的目标。FWD是其中之一,很像WebForwardMichael在评论中指示您进行的操作。


8

简介:简而言之,您无法获得所需的记录,并且DNS主机正在按照正确的方式进行操作。

说明:在区域顶点(区域前面的空名称)具有CNAME(别名记录/转发记录),这违反了DNS标准。

原因是CNAME记录不能与DNSSec记录以外的任何记录发生名称部分冲突。在典型区域中,区域顶部的CNAME记录至少会与SOA和NS记录(可能还有其他几个)发生冲突。尽管某些DNS服务器允许这样做,但这是一件坏事,并且可能导致难以诊断的故障(更不用说如果将区域托管转移到符合标准的DNS服务器(例如基于BIND的任何服务器)上将无法正常工作。 。

在区域顶点都有A记录(它们可以是简单的Web服务器,仅向HTTP抛出HTTP 302)。如果您可以获取Azure服务器实例的静态IP号,则将每个A记录放置在区域的顶点,然后创建一个名为“ www”的CNAME记录,该记录指向该顶点记录。

举个例子 :

 

$ ORIGIN example.com。

@ IN SOA ns1.example.com。admin@example.com。(
                                 101;
                                 172800;
                                 900;
                                 1209600;
                                 3600; )
@ IN NS ns1.example.com。
@ IN NS ns2.example.com。
@ IN A 123.234.1.123
@ IN A 123.234.1.124
@ IN A 123.234.1.125
ns1在A 123.234.1.126
ns2在A 123.234.1.127
www in CNAME example.com。

5
IMO:无休止地重申为什么CNAME顶点不起作用是不值得的。如果用户问为什么他们不工作,我们可以使用RFC引用来规范回答。(完整的披露:我写的)如果他们不问,最好坚持回答短语中的问题。
2014年

谢谢。我应该寻找一个规范的答案。下次我会记住这一点。
DTK 2014年

2

某些协议具有用于A记录以外的DNS记录类型的标准,用于查找服务。SMTP及其关联的MX记录就是一个很好的例子。没有为HTTP定义的DNS记录类型。您先前的DNS /注册商提供程序可能具有HTTP重定向或反向代理服务。

为了实现您的目标,您需要设置一个网络服务器(虚拟主机)以执行从一个主机名到另一个主机名的HTTP 301或302重定向,设置反向HTTP代理,设置独立的虚拟主机或使用虚拟主机别名,同一台Web服务器实例将响应两个A名称。


0

如果想要特定于Azure的答案,则需要创建另一个指向awverify.mydomain.azurewebsites.net的CNAME记录,如下所示

www.mydomain.com --- CNAME --- awverify.mydomain.azurewebsites.net
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.