跨網段NetBios主機名無法解析該如何處理
本文主要給大家詳細的介紹了對于用戶主機如果與他要訪問的主機不在同一個網段的話,就可能無法把主機名轉換為IP地址就無法通過主機名來訪問另一個網段的主機。遇到這種情況的話,該如何處理呢?下面文章將給出詳細解答。
在企業內部局域網中,用戶訪問網絡上的主機往往有兩種方式。一是直到對方的主機名(NetBios名),通過主機名來查找對方的計算機;二是通過IP地址來定位所需要訪問的網絡主機。其實***種方法,其歸根究底仍然是通過IP地址來定位網絡主機。計算機或者網絡上的其他設備會把這個主機名字轉換為IP地址,然后再通過這個IP地址去尋找需要訪問的網絡主機。由于這個解析的過程對于用戶來說是透明的,所以就給用戶造成了一個錯覺,以為可以通過主機名字來訪問。
如下圖所示,是NetBios名稱的相關信息。XP是本級的名字,后面Status狀態為Registered。就表示這個主機名已經在網絡上進行了注冊,后續其他的主機不能夠使用這個主機名字了。而Type處顯示的是Unique(唯一),就表示這個主機名字在網絡上是唯一的。如此的話網絡設備就可以把這個唯一的主機名與一個唯一的IP地址對應。

這個把主機名跟IP地址對應的過程就叫做名稱解析。在同一個網段內,用戶通過主機名來訪問網絡上的主機是沒有問題的。但是跨網段的話,利用這種方式就會有一定的困難。如客戶段是微軟操作系統的話,則在進行這個主機名解析的時候,采用的是b-node的方式根據主機名來查找其他計算機的IP地址,這是一種廣播信息的方式。但是默認情況下大部分的路由器都會隔離廣播信息,即不會將廣播信息發送到其他網段內,以提高網絡性能。所有用戶主機如果與他要訪問的主機不在同一個網段的話,就可能無法把主機名轉換為IP地址,用戶就無法通過主機名來訪問另一個網段的主機。遇到這種情況的話,該如何處理呢?
一、LMHOSTS文件的用途
如果客戶段無法從網絡設備中得到某個主機名對應的IP地址的話,則此時客戶端往往還不會這么輕易放棄。他們會去查詢本機內的LMHOSTS文件,看看這文件中是否有主機名對應的IP地址。LMHOSTS文件是一個純文本文件,可以利用記事本等工具來編輯這個文件。網絡管理員需要注意的是,與此類似的還有一個驕傲作HOSTS的文件。其作用跟LMHOSTS文件類似,但是仍然有比較大的差別。光從訪問順序來分析就有很大的不同。通常情況下在域名解析的時候,客戶端往往是先查看HOSTS文件,看看有沒有對應的紀錄。如果沒有的話則再通過網絡上的DNS等域名解析設備進行解析??梢奓MHOSTS文件是客戶端進行主機名解析的***一招。如果這一招也不行的話,那么客戶端就會顯示找不到這臺網絡主機。
二、LMHOSTS文件的編寫規則
LMHOSTS文件其實就是一個IP地址與NETBIOS主機名字之間的一個對應關系,所以其內容比較簡單。但是由于這是一個網絡參數的配置文件,為此在格式上會有比較嚴格的要求。下面幾條規則的話,網絡管理員需要牢記。
一是IP地址與主機名的話有順序關系,不能夠前后顛倒。通常情況下,計算機的IP地址應該放置在***列。第二列才是主機名稱。如果弄亂這個順序的話,如***列寫為主機名,第二列寫為IP地址,則客戶端將無法識別這個文件。
二是需要注意如果在計算機中包含特殊符號的處理。在計算機名字定義的時候,往往沒有嚴格的要求。如可以使用大寫字母、小寫字母,甚至利用空格符號來定義計算機名字。如XP xp這個名字也是很法的。但是對于這些含有空格的主機名字,在LMHOSTS文件中需要進行特殊的處理。通常情況下,如果主機名字中含有空格,則需要利用雙引號把這個主機名字包含起來,既“XP xp”。注意這里面有多少個空格一個都不能少。很顯然這么處理會比較麻煩。為此在給電腦起名字的時候,***不要使用特殊字符,也不要采用空格等等。
三、LMHOSTS文件在網絡中的應用
筆者認為,LMHOSTS文件是HOSTS文件與DNS服務器的一個很好的補充。通常情況下,如果在局域網中沒有部署WINS服務器,或者存在多網段的話,則采用LMHOSTS文件無疑是一個不錯的選擇。
為什么這么說呢?其實筆者只要舉一個例子就可以說明這個問題。如現在有個客戶端需要訪問筆者這臺主機名字為XP的電腦。那么客戶端會如何處理呢?
1、由于用戶不知道主機名字為XP電腦的IP地址,只知道主機名字。為此用戶會輸入主機名。然后客戶端操作系統會負責對這個名字進行解析。當客戶端需要把某個主機名字解析為IP地址的話,則其首先會檢查NetBios名稱緩存內是否已經存在這個IP地址與主機名字的對應關系。如果存在的話,則直接采用這個紀錄信息;如果不存在的話,則會改用廣播方式。
2、若通過廣播方式仍然找不到主機名字與IP地址的對應關系的話,則就會查詢LMHOSTS文件。如果找到了,就會采用這條紀錄,并把這條紀錄信息保存到NetBios的緩存中,以方便下次使用。如果仍然找不到對應的紀錄的話,那么***客戶端就會提示錯誤信息。
從上面的分析中可以看出,如果企業網絡環境中存在著多網段的情況時,通過廣播的方式進行主機名稱解析行不通。此時LMHOSTS文件無疑是解決這個主機名解析問題的比較好的手段。網絡管理員只需要把主機的名稱與IP地址的對應關系在這個文件中定義即可。
四、LMHOSTS文件的使用要點
1、讓一些常用的對應關系在系統啟動時就寫入NETBIOS緩存。從上面的分析中,網絡管理員可以發現在客戶端啟動的時候,會在內存中劃分一個小區域用來保存NETBIOS信息。這個區域就叫做NETBIOS緩存。通常情況下,客戶端在進行主機名解析的時候,往往會先從NETBIOS緩存中去查找信息。如果有相關紀錄的話就會直接采用。而不用進行后續的嘗試。為此對于一些常用的對應關系,那么把他們的紀錄在系統啟動的時候就加入到這個緩存中,無疑可以提高主機名解析的速度,提高網絡訪問的效率。如網絡管理員在網絡中部署了一臺文件服務器,名字叫做Share。為了其安全起見,把這個服務器放置在另外一個網段中。為了提高文件服務器的訪問速度,應該讓這個主機名與IP地址的對應關系在客戶端啟動的時候,就自動加入到NETBIOS緩存中。如此的話,可以明顯提高客戶段訪問服務器的效率。雖然通過***次訪問后,客戶段也會把這個信息紀錄到NETBIOS緩存中,但是客戶段下次重新啟動后,這個信息就會從緩存中清除。故下次訪問時,又需要經歷一個主機名解析的過程。為此筆者在日常管理中,往往把這些文件服務器、打印服務器等常用的主機名字與IP地址的對應關系,加入到LMHOSTS文件中,并讓其在客戶端啟動的時候,就自動加入到緩存中。要實現這個目的,其實很簡單。只需要在對應的紀錄后面,加入#PRE即可??蛻舳嗽趩拥臅r候,發現LMHOSTS文件中有帶#PRE的紀錄,就會直接把其加入到NETBIOS的緩存中。
2、實現LMHOSTS容錯功能。如果客戶端的這個文件被意外刪除或者不明原因的損壞時,客戶段就無法正常訪問這個文件。此時該如何處理呢?為此網絡管理員就會想到能否為這個文件提供一些容錯的功能。當客戶端上的這個文件損壞時,客戶端操作系統能夠很快的從另外一個文件中獲取所需要的信息。在微軟操作系統下的LMHOSTS文件,其實已經提供了類似的容錯功能。如在這個文件中,可以加入#INCLUDE關鍵字,后面跟上路徑已經文件名字,即可以為其提供容錯功能。如果本機中的LMHOSTS文件無法訪問或者找不到對應紀錄的話,則客戶端會去訪問這個文件。其實這個關鍵字的作用是系統會自動去讀取這個路徑指定文件中的信息,并把這些信息加入到本機的LMHOSTS文件中。在使用這個容錯措施的時候需要注意,#符號必須加上。一般來說#符號后面的內容表示注釋,沒有實際的意義。但是如果#符號后面加上了一些特殊的關鍵字,則對于操作系統來說就會有特殊的含義。如上面提到的#PRE,就是指示操作系統在啟動的時候,需要將這一行紀錄信息加入到NETBIOS緩存中。另外這個備用的LMHOSTS文件可以在本機上的其他位置,也可以在網絡上的其它主機中。同時網絡管理員還可以部署多個備用的LMHOSTS文件。不過話又說回來,LMHOSTS文件在于精而不在于多。出于容錯的需要,一般指定一個備用的LMHOSTS文件即可。






















