none
windows 2003 DNS中是否允许建立不带前缀的CNAME记录? RRS feed

  • 问题

  • 我在windows 2003的DNS中的某个主zone中建立了一条不带前缀的CNAME记录,比如:test.com→www.alias.com。

    这时候发现windows 2003的辅助DNS服务器上可以同步这个zone,但是linux的辅助DNS服务器上就不会同步这个zone了。

    抓包发现当linux请求该zone的SOA记录时,windows给它回复的是这条不带前缀的CNAME记录,linux估计一头雾水当然没法同步了,删除这条记录后同步一切正常。

    而且我发现有几个从windows 2000上迁移过来的zone是不允许建立这种不带前缀的CNAME记录的,而在windows2003上建立的zone就允许。

    由此我想问一下,windows 2003 DNS中是否允许,或者说应不应该建立这种不带前缀的CNAME记录?

    2013年4月11日 4:56

答案

  • 感谢楼上的热心解答!

    windows 2003之间可以zone transfer,不是AD复制,因为两台DNS不在域里面。

    linux手工编辑数据文件,bind也能运行起来,就是影响zone transfer。

    我好奇地试了一把03间Transfer,没成功呀。。。你的03间能成功?

    我的Master上的Zone:

    我的Slave Transfer时发生的事:

    Slave后续就没发包了,显然是没理睬这种SOA应答。。。

    2013年4月12日 4:17

全部回复

  • http://social.technet.microsoft.com/Forums/en-US/winserverNIS/thread/2b6c85be-59d1-42db-942d-11a453a3a822/

    Jeff Westhead - MSFT 说:

    It looks like you have a CNAME at the root on the zone on the primary server?

    If so, this is an invalid configuration as per RFC. You will not able to transfer the zone until this CNAME is removed.

    -----------------------------------------------------------------------------------------------------------------------------

    于是找到 RFC 1912(Common DNS Operational and Configuration Errors)

    说:

    2.4 CNAME records

       A CNAME record is not allowed to coexist with any other data.  In
       other words, if suzy.podunk.xx is an alias for sue.podunk.xx, you
       can't also have an MX record for suzy.podunk.edu, or an A record, or
       even a TXT record.  Especially do not try to combine CNAMEs and NS
       records like this!:


               podunk.xx.      IN      NS      ns1
                                      IN      NS      ns2
                                      IN      CNAME   mary
               mary               IN      A       1.2.3.4

    --------------------------------------------------------------------
    所以,这样的配置原则上讲是不合理的。

    但是!RFC没说MUST NOT,而是说do not try to,相当于仅仅是说SHOULD NOT(只是不应该。。。)!

    实际上,动脑经想想,这样做其实也有某种潜在的意义,我不想讲太多了。。。

    所以Windows的DNS管理工具允许这样建立CNAME


    我相信Linux的BIND也能这样编辑Zone并运行起来吧?只是也会影响到 Zone Transfer。

    另外,楼主说Windows DNS间可以Transfer,你能确认真的是Zone Transfer而不是AD Replication吗?看一下你的DNS Type是否是AD Intergrated?

    我实测一台Windows 2008 R2上的DNS没法通过Zone Transfer得到另一台Windows 2003 R2的DNS里的这种Zone。。。

    • 已编辑 Finy 2013年4月11日 9:38
    2013年4月11日 9:25
  • 感谢楼上的热心解答!

    windows 2003之间可以zone transfer,不是AD复制,因为两台DNS不在域里面。

    linux手工编辑数据文件,bind也能运行起来,就是影响zone transfer。

    2013年4月12日 2:36
  • 感谢楼上的热心解答!

    windows 2003之间可以zone transfer,不是AD复制,因为两台DNS不在域里面。

    linux手工编辑数据文件,bind也能运行起来,就是影响zone transfer。

    我好奇地试了一把03间Transfer,没成功呀。。。你的03间能成功?

    我的Master上的Zone:

    我的Slave Transfer时发生的事:

    Slave后续就没发包了,显然是没理睬这种SOA应答。。。

    2013年4月12日 4:17