理解Windows網絡中的名字解析
TCP/IP協議通信是基于IP地址的,但是,誰會記住那一串單調的數字呢?因此,大家基本上都是通過訪問計算機名字,然后通過某種機制將計算機名字解析為IP地址來實現。此時,名字解析機制就變得特別重要。在Windows Server 2003中,提供了兩種名字解析方式:NetBIOS和DNS,它們具有各自不同的解析機制。
注:無論是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相關技術文章。
相關文章: