以下是Server 2008 DNS的一个Bug,在Server 2008 R2 DNS中已经修正。 我们可能会设置这样的配置场景 当一个域名需要解析 1. 先用本地区域的DNS做解析 2. 假如本地DNS解析失败,就转到转发器解析 3. 假如转发器解析失败,就转到根提示服务器做解析 那实现这样的功能,我们会在DNS管理控制台勾选“如果没有转发器可用,请使用根提示”
但实际上,假如你用的还是Server 2008 系统而不是Server 2008 R2,这里的选择框的作用刚好是适得其反。
假如你想转发器解析失败就转到根提示服务器做解析,那应该把这个勾去掉,其实这是Server 2008 DNS的一个bug. 为什么会这样呢,据我观察,这里的勾选和去勾,相当于系统帮你在注册表中改以下一个键值 Value Name: IsSlave Value Path: HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters Value Type: REG_DWORD如果 IsSlave 键为0,DNS 转发查询在查询失败时会继续去找根提示服务器做查询,
如果 IsSlave 键为1,DNS 转发查询在查询失败时就直接发 SERVER_FAILURE 的响应,不再继续转到根提示服务器做查询了。 实际上,勾选“如果没有转发器可用,请使用根提示”,IsSlave键值为0才对,可是在Server 2008中,勾选了后,你可以发现注册表的IsSlave 键值为1,刚好相反了。 在使用Server 2008 DNS时,这是一个小Bug, 做选择时注意一下勾选的方向,这个问题在Server 2008 R2中得到了解决。 Microsoft KB 有详细的说明。