在我们之前发布的的DNS基础教程一中我们知道了一个域名可以分为主体和后缀2部分,这里的主机我们可以理解为一台主机或者一个网络终端的名称,后缀则直接决定这个域名的性质、类别等一些重要特征。我们这里会从单机入手,理解一下单击里的DNS后缀到底是怎么一回事,把这个弄清楚了,再去理解与AD相结合的DNS才会更容易。那单机的DNS后缀在那里找呢?我们一起来看一下:
为了方便实验,我做了一个拓扑图,如下:
上图已经将两者的关系表述清楚了,XP2现在还是一台普通的客户端,为加入域。
我们打开XP2的属性,在里面找一下它的DNS后缀,如下图:
从上图我们可以看到,默认情况下 计算机的DNS后缀的空白的。但请大家注意,图中的是主DNS后缀,为什么是主呢?难道DNS后缀还有主次之分??其实这样的,这个里面的主DNS后缀是针对这台主机而言的,相比之下,每一个网卡也可以设置自己的DNS后缀,而那些设置准确来讲是绑定某一网卡上的连接DNS后缀,这部分内容在后面还会详解。
我们已经知道主DNS后缀的位置了,那这里的设置到底有什么作用呢?其实是这样的,我们可以利用一个命令来解答这个疑惑。PING命令的作用我想大家都很清楚,也是作为网络连通性诊断的一个必备工具,当我们用ping命令去ping一台主机或一个地址会发生什么呢?
我们运行ping xp2命令,看一下效果:
从上图得知,XP2自动获取的IP是192.168.1.2,请大家注意第三个红框,
XP2 [192.168.1.2] ,前者是主机名,后者是对应的IP地址。这个解析过程是由系统本身完成的,我们也可以ping一下它的NETBIOS名称,如下图:
可以看到,最终结果都是一样的,但不同的显示对象有区别。这里存在着一个解析的过程,单单ping本机比较难分析这个解析过程,我们任意ping一个名称,然后用wireshark来监视这个过程,应该会有更多的发现。
运行ping XP3命令 ,看一下结果:
显然,结果是不通的,通过wireshark的分析我们可以看到在这个过程中,系统会利用NBNS服务来查找是否有名为XP3的主机,如果没有则返回一个信息,通知查询者未能找到主机XP3。此时,主DNS后缀依然为空,我们是否可以这样试想,如果主DNS后缀不为空,在查询时候某台主机时,是否会自动将这个后缀添加到主机名之后呢,比如 后缀为 ms.local,在查询XP3时,返回的结果就是ping xp3.ms.local 呢?我们来试一下,首先将主DNS后缀改成 ms.local并重启。结果如下图:
我们可以看到,计算机名也变成了xp2.ms.local了,这个有点类似域内的计算机名称的样式。我们现在再来ping一下XP3,结果如下图:
可以看到,在图形界面下仅仅提示找不到XP3这个主机,而从抓包的情况来分析更明显些,我们可以很清楚的看到当提交此请求后,系统会向已配置的DNS服务器(DHCP自动配置)发起解析请求,来查询是否存在XP3.ms.local 这条记录,经过多次查询后返回的结果如图,结果是未能找到XP3主机。从这个实例我们可以看出,在名称解析时,系统会自动加上之前已设置的主DNS后缀,然后参与解析。当在指定的DNS服务器上找不到记录时就会返回相应的信息。反之,如果没有配置DNS服务器地址时,系统只能通过NBNS服务器利用广播方式进行查找了,具体如何查找可以参考之前的WINS系列。
我们再结合现有的AD域来看,在DC上,肯定是无法解析到XP3这台主机,XP2也一样,因为在DC的DNS上没有XP2和XP3的记录信息。如果我们将XP2的主DNS后缀改成和AD域一样,那么当在XP2上ping win2k3时,一定会成功,因为之前讨论过,系统会自动将其转换为 win2k3.os.ad ,因为在192.168.1.1这台服务器上有这条记录,所以可以ping同,反之在DC上ping XP2则不行。因为在DNS上并不存在xp2.os.ad的记录,之所以这个过程无法交互,是因为我们并非按照常规方法将XP2注册到DNS服务器上,而仅仅是在本机上修改了主DNS后缀,从某种程度上来说这仅仅是个假象而已。如果按照一般加域的步骤,相互通讯是没有问题的,这个我们后面会讨论到。