将DNS从Windows Server 2003迁移到Windows Server 2012 R2

当前环境:两台Windows Server 2003服务器,未join我们的域(这里是为了处理我们的外部DNS请求)。

计划:站在Windows Server 2012 R2服务器上,不要join我们的域名。 提供IP并在服务器上安装DNSangular色。 将服务器标记为Windows Server 2003的主DNS服务器的从服务器。一旦复制完成,将2012 R2 DNS服务器标记为主服务器。 在2012 R2平台上build立辅助DNS服务器,作为2012 R2主服务器的从服务器。 然后解散2003 DNS服务器。

我的问题是,这个计划有没有什么“问题”或问题? 2003服务器和2012 R2服务器之间是否存在兼容性问题? 我们的计划是否可行? 我一直在四处搜寻,并没有发现任何关于从微软或其合作伙伴那里做这件事。

编辑:

请注意,下面只传输Alogging,没有其他logging,所以您仍然需要手动input剩余logging。

我从来没有做过上述,但另一种select是:

  1. 从2003年导出您的Alogging和区域。保存它 – c:\ dnsrecords.txt
  2. 重新导入Server 2012。
  3. 在2012年复制其他2003年设置,涵盖外部查找。
  4. 分配一台PC与新的DNS服务器并监视效果。

导出DNS条目可以在2003服务器上完成。 你应该有一个类似于下面的文本文件。

User-PC Host (A) 10.24.2.48 Fileserver Host (A) 10.25.2.49 
  • 把文件放到XLS里,把Host&(A)变成列,这样你只剩下了。

    用户电脑10.24.2.48

    文件服务器10.25.2.49

然后for & dnscmd您可以使用for & dnscmd将条目导入服务器2012.下面是dnscmd语法,下面是一个示例,它将使用您创build的.txt作为input多次运行该命令。 它将用主机名%j replace %i与 IP地址

 dnscmd ServerName /RecordAdd DNSZoneName HostName RecordType IPAddress 

DNScmd语法:

 for /f "tokens=1-2" %i in (c:dnsrecords.txt) do dnscmd Server2012 /RecordAdd test.local %i A %j 

我之前已经复制过了。 这只是一个区域转移,真的。

为了提高function水平和更换旧硬件,我必须将其作为2008年新的DC的一部分。 我在2003年遇到的问题是广告集成的DNS播放不好。 可能只是因为这个域名已经从NT 4.0升级到win2k-> win2k3,然后到win2k8。 只有2k12的成员服务器…这是说:

https://support.microsoft.com/en-us/kb/323383

https://technet.microsoft.com/en-us/library/cc739904(v=ws.10).aspx

我遇到的最大问题是内部服务器有DHCP地址,但手动configurationDNS服务器(我知道这是没有意义的)。 我的build议是保持旧的服务器活着,并改变你的外部NSlogging指向新的服务器,然后退役旧的(外部DNS应该仍然接受SOA的辅助)。 这将使你在外面的DNS区域传播过程中保持活跃。 它也可以让你减less痛苦。

我们已经将我们的DNS服务器升级为2003域服务器环境中的从服务器。 我知道你提到关于不在域环境,但我不认为这将是一个问题,只要你有访问权限/pipe理员权限的DNS服务器。 一旦新的2012年服务器configuration了DNSangular色,您将在一个阶段得到一个选项从主DNS服务器复制。 正如斯图特提到的,这将主要是区域转移,不应该导致同时运行的任何问题,但你最好想降级/停止使用2003服务器。

@ Ankh2054 – 很好的答案! 确保你澄清,你只是用你的脚本传输Alogging。 (对于不直接评论我很抱歉,我还不能评论)

而在使用AD的内部环境中的窗口中,您通常拥有由AD创build的SRVlogging,而MXlogging则是司空见惯的。 NSlogging也很大,甚至在内部使用DHCP提供的NS IP。 为了方便起见,不要忘记反向区域(PTRlogging),如果没有外部PTR进行健全性检查,一些邮件服务器将会投诉。

原始海报并未指定他们是否使用SPF,Google Apps或其他联合服务,这些服务通常需要使用指纹,validation密钥或类似内容添加TXTlogging。 外部CNAMElogging是常见的,也是一种很好的方式,可以手动将故障转移到备份服务器,并将服务从运行IP的服务中分离出来。

不过,你的脚本是一个非常优雅的解决scheme。 我已经使用了一些closures(但不是干净)来批量添加缺less的PTRlogging。