将根域记录设置为CNAME


15

我需要为CNAME域创建一个NS记录,以使两个域指向一个IP,而不必在两个不同的地方维护当前IP地址。

该域的DNS提供程序是DynDNS,但它们阻止了此操作:

无法使用与区域名称相同的标签创建CNAME

我可以使用1and1服务其DNS的另一个域来做到这一点:

root@srv-ubuntu:~# dig myseconddomain.co.uk

; <<>> DiG 9.4.2-P1 <<>> myseconddomain.co.uk
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61795
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;myseconddomain.co.uk.             IN      A

;; ANSWER SECTION:
myseconddomain.co.uk.      71605   IN      CNAME   myfirstdomain.co.uk.
myfirstdomain.co.uk.     59      IN      A       www.xxx.yyy.zzz

;; Query time: 298 msec
;; SERVER: 10.0.0.10#53(10.0.0.10)
;; WHEN: Tue Aug 18 14:17:26 2009
;; MSG SIZE  rcvd: 78

这是否违反RFC或DynDNS是否有阻止此操作的正当理由?

后续工作 由于已经发布了两个答案,我现在知道1and1 IS违反RFC来执行此操作。但是它确实起作用,并且他们似乎支持它。对于拥有如此众多域名的公司来说,他们如此大规模地无异议地逃脱现实似乎很奇怪。

更多跟进

根据要求输出“ dig myseconddomain.co.uk ns”。

root@srv-ubuntu:~# dig myseconddomain.co.uk ns

; <<>> DiG 9.4.2-P1 <<>> myseconddomain.co.uk ns
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18085
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
; myseconddomain.co.uk.             IN      NS

;; ANSWER SECTION:
myseconddomain.co.uk.      4798    IN      NS      ns67.1and1.co.uk.
myseconddomain.co.uk.      4798    IN      NS      ns68.1and1.co.uk.

;; ADDITIONAL SECTION:
ns67.1and1.co.uk.       78798   IN      A       195.20.224.201
ns68.1and1.co.uk.       86400   IN      A       212.227.123.89

;; Query time: 59 msec
;; SERVER: 10.0.0.10#53(10.0.0.10)
;; WHEN: Wed Aug 19 12:54:58 2009
;; MSG SIZE  rcvd: 111

Answers:


23

正确,这违反了RFC 1034第3.6.2节第3段:

...如果节点上存在CNAME RR,则不应存在其他数据;这样可以确保规范名称及其别名的数据不能不同。...

这在这里适用,因为您区域的根还必须具有SOA和NS记录。


这回答了原始问题,因此感谢您。如果您对问题中发布的跟进有任何见解,我们将不胜感激。
tomfanning

如果提供商可以容纳将CNAME输入到父区域(而不是其自己的区域)中,则您的域就可能具有CNAME记录,尽管在这种情况下它没有自己的SOA或NS记录。
mark4o

那是您在问题中进行的“挖掘”查询中看到的内容吗?(我不是DNS专家,仅够解决...)
tomfanning

该挖掘查询不请求SOA或NS记录。试试:挖掘myseconddomain.co.uk ns
mark4o

我已经根据您查询的结果更新了答案。
tomfanning

1

使用DynDNS WebHop服务。这对于他们的DNS客户是免费的。

它允许您将第二个域的流量重定向到第一个域,而不会破坏任何RFC。

重定向是302(临时)重定向,因此可能会损害某些搜索引擎排名。(我怀疑这也可能是CNAME记录的问题。)有关更多信息,请参见上面的链接。


很好的建议,但在这里不好,因为我希望myfirstdomain.com/folder/file.htmmyseconddomain.com/folder/file.htm都能正常工作。
tomfanning

它将重定向完整的URL。换句话说,是的,它将做到这一点。
Nate


0

该cname无效,并且可能会导致问题。解决方法是使用apache别名或重写模块来重定向流量。查看这篇文章,说明如何在apache中执行此操作。 将一个域迁移到另一个域


0

是的,在根目录/根目录创建CNAME记录时,它通常会违反DNS标准,但是某些DNS提供程序已实现了变通方法:

  • Cloudflare提供了出色的免费DNS托管,其功能称为“ CNAME Flattening ”,您可以在区域的根部添加CNAME,但是Cloudflare服务器实际上会将已解析的A / AAAA记录返回给查询,因此不会违反标准
  • DNSMadeEasy也提供类似的东西,称为“ ANAME”记录
  • DNSimple还通过“ ALIAS”记录提供此功能
  • easyDNS还提供ANAME记录
  • PointDNS还提供ALIAS记录

我是Cloudflare的客户,很高兴,并且发现他们的解决方案非常有效。

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.