电脑技术学习

理解Windows网络中的名字解析

dn001

TCP/IP协议通信是基于IP地址的,但是,谁会记住那一串单调的数字呢?因此,大家基本上都是通过访问计算机名字,然后通过某种机制将计算机名字解析为IP地址来实现。此时,名字解析机制就变得特别重要。在Windows Server 2003中,提供了两种名字解析方式:NetBIOSDNS,它们具有各自不同的解析机制。

:无论是NetBIOS名字还是DNS名字,都是计算机名字,只是使用不同的格式而已。

首先,给大家介绍一下Windows系统中的名字组成。当你安装Windows系统的时候,你必须为计算机输入一个长度不超过15个字符的名字,这个计算机名字将作为NetBIOS名字,同时也作为DNS名称的主机名。NetBIOS名字是平面性的,最大长度为15个字符(完整的NetBIOS服务名称是16个字符,其中最后一个字符用户不可配置,用于定义NetBIOS服务类型),在任何一个NetBIOS广播域中,某个确定的NetBIOS名字必须是唯一的,即只能有某一个确定的计算机拥有此NetBIOS名字。和NetBIOS名称不同,DNS名称是具有层次性的,主机名只是完整的DNS名称-称为完全限定域名(fully qualified domain name,FQDN)的一部分而已。FQDN除包括主机名外,还包含主机所在的域名,例如DNS名称 www.winsvr.org,则www是主机名,winsvr.org则是这台主机所存在的域的域名。

在名字组成中,涉及了以下术语:

  • NetBIOS名字:一个NetBIOS名字用于唯一识别绑定到某个网络适配器主要IP上的NetBIOS服务,可以通过广播、WINS服务器或Lmhosts文件来进行解析。NetBIOS名字为15个字符,和计算机名字相同;如果计算机名字长度超过15个字符则为前15个字符,如果不足15个字符则使用0进行填充。完整的NetBIOS服务名称为16个字符,其中第16个字符用于定义服务类型,用户不可配置。

  • 主机名:通常代表FQDN的第一部分,例如,FQDN www.winsvr.org的主机名是 www。一般情况下,计算机名称也作为主机名。当你在安装时指定计算机名称或者在系统属性的计算机名标签中修改时,则同时指定了NetBIOS名字和主机名。

  • 主域名后缀:主域名后缀指定计算机在名字注册和名字解析时所使用的域名后缀,你可以在系统属性的计算机名标签中修改。通常主域名后缀也称为主域名或者域名,例如,www.winsvr.org的主域名后缀是winsvr.org。

  • 连接指定后缀:连接指定后缀指分配给某个网络适配器的DNS后缀,例如,一个连接指定后缀通常是subnet2.winsvr.org。当计算机具有连接到不同子网的多个网络适配器时,通过连接指定后缀,可以实现让不同子网中的客户通过不同的FQDN来访问这台主机上连接对应子网的网络适配器。

  • 完全限定域名(FQDN):完全限定域名是完全标识网络上一台计算机的DNS名字。一个FQDN由“.”连接主机名和主域名后缀而产生,例如,www.winsvr.org。通常完全限定域名又称为DNS名字。

    对于NetBIOS名字和DNS名字,主要区别如下:

     

    NetBIOS名字

    DNS名字

    类型

    平面

    层次

    组成字符限制

    Unicode字符,数字

    A~Z,a~z,0~9,和连字符“-”

    最大长度

    15个字符

    DNS域名的每一节最大长度为63字节,FQDN长度最大为255字节

    名字解析方式

    广播

    WINS服务器

    Lmhosts文件

    DNS服务器

    Hosts文件

    通讯协议端口

    UDP 137

    UDP 53

  • 主机名:通常代表FQDN的第一部分,例如,FQDN www.winsvr.org的主机名是 www。一般情况下,计算机名称也作为主机名。当你在安装时指定计算机名称或者在系统属性的计算机名标签中修改时,则同时指定了NetBIOS名字和主机名。

  • 主域名后缀:主域名后缀指定计算机在名字注册和名字解析时所使用的域名后缀,你可以在系统属性的计算机名标签中修改。通常主域名后缀也称为主域名或者域名,例如,www.winsvr.org的主域名后缀是winsvr.org。

  • 连接指定后缀:连接指定后缀指分配给某个网络适配器的DNS后缀,例如,一个连接指定后缀通常是subnet2.winsvr.org。当计算机具有连接到不同子网的多个网络适配器时,通过连接指定后缀,可以实现让不同子网中的客户通过不同的FQDN来访问这台主机上连接对应子网的网络适配器。

  • 完全限定域名(FQDN):完全限定域名是完全标识网络上一台计算机的DNS名字。一个FQDN由“.”连接主机名和主域名后缀而产生,例如,www.winsvr.org。通常完全限定域名又称为DNS名字。那么,NetBIOS名字和DNS名字各自的作用和使用范围是什么呢?
    NetBIOS实际上不是一个命名系统,而是一个使用在Windows网络中的应用程序编程接口,它允许计算机相互进行连接和通讯。NetBIOS名字是微软在Windows 2000之前的Windows系统中采用的标准名称解析方式;在Windows 2000之后,采用DNS协议作为首选名称解析方式,但是仍然保留了对Netbios协议的支持,称之为Netbios over TCP/IP。当你在使用计算机名字进行访问,例如,使用server1share1来访问网络共享时,则是通过NetBIOS来进行名字解析。同时,网上邻居和计算机浏览器服务依赖于NetBIOS协议。

注:计算机如何区别用户输入的名字是NetBIOS名字还是DNS名字呢?这是通过判断用户输入的名字中是否包含“.”来决定。如果包含则认为是DNS名字,如果不包含则认为是NetBIOS名字。

注意我在前面关于名字组成的时候,对于NetBIOS名字,提到一个NetBIOS广播域的概念,这是因为NetBIOS协议的广播特性。默认情况下NetBIOS协议基于本地局域网中的UDP广播,这样的好处是速度快、无需额外配置,缺点是广播不能跨越网段和增加了网络流量,因此微软推出了WINS(Windows Internet Name Service)服务器,当计算机配置为使用WINS服务器时,它直接和WINS服务器进行单播通讯,这样可以避开NetBIOS协议使用广播时的这两大缺陷。

对于NetBIOS名字的解析,默认过程如下:

对于NetBIOS名字的解析,默认过程如下:

  • 检查本地的NetBIOS名字缓存;

  • 查询WINS服务器;

  • NetBIOS广播查询本地网络;

  • 查询Lmhosts文件,如果配置为这样做,此文件位于%systemroot%System32DriversEtc目录下

 

DNS是Windows 2000及其后Windows系统的首选名字解析方式,它也是TCP/IP协议族中的标准名字解析机制。计算机通过和配置的DNS服务器进行通讯来解析域名。和NetBIOS相比,DNS提供了更好的扩展性、安全性以及和Internet的兼容性,同时DNS服务也是活动目录的基础服务。

对于DNS名字的解析,过程如下:

  • 检查本地的DNS缓存(Hosts文件中的配置已经加载到DNS缓存中);

  • 检查DNS服务器;  

  • 检查DNS服务器;  

在Windows 2000及以后的Windows系统中,首选使用DNS方式进行名字解析,但是这两种名字解析机制是可以共用的。并且从用户惯性的角度,建议保留NetBIOS名字解析。不过,从网络性能的角度,当部署使用NetBIOS名字解析时并且计算机超过15台时,建议部署WINS服务器。

关于DNS服务器和WINS服务器的部署,请参见WinSVR.ORG相关技术文章。