有一些網絡知識的人都知道
微軟的TCP/IP實際上是通過NetBIOS實現的
這就使得Windows操作系統在網絡應用上存在一定的局限
例如
NetBIOS使用廣播(Broadcast)進行通信
而普通的廣播是無法通過路由器的
也就是說
兩個子網沒法通過NetBIOS聯絡
為了解決這個問題
微軟使用了一種稱為Windows Internet Name Service的服務
來對網絡中的計算機進行NetBIOS名字和IP地址的解釋
當一個配置了WINS服務器的計算機(這被稱之為WINS有效的)啟動時
它會根據WINS服務器地址發送一個叫做名字注冊請求的WINS信息
這個請求包含了它自身的NetBIOS名字和IP地址
當WINS服務器收到這個信息
就會在WINS數據庫中檢查是否已有該名字
如果該名字已存在
WINS服務器就向注冊該名字的計算機發送一個查詢
如果收到響應
WINS服務器就會發送一個信息給要求注冊這個名字的計算機
告訴他已有人注冊
如果數據庫中沒有這個名字的記錄或已注冊的主機沒有響應
WINS服務器就發送一個肯定的響應及TTL給該客戶機
那麼
這個名字就注冊成功了
說了這麼多
WINS到底有什麼作用呢?我們可以利用它來實現一個包含多個子網的NT域
我想
這大概是WINS最有用的功能了
前面已經說過了
NetBIOS的名字是無法跨越子網的
這樣
我們在網上鄰居中就看不到在同一域
同一工作組中的其他子網的機器
而且
如果NT的主域控制器在子網A
那麼子網B中的計算機將無法登錄到NT域
下面就以一個例子來說明
兩個子網A
/
和B
/
域和工作組都設為TEST
路由器IP為
和
主域控制器和WINS服務器都在子網A中
兩個子網通過一台Linux路由器連接
路由器上的規則為所有的包都可以通過(實際上只需要與NetBIOS有關的幾個端口的包能正常通過就行了)
在沒有設置WINS的情況下
子網B中的計算機無法浏覽到子網A中的機器
也不能登錄到域中
這時
把兩個子網中所有機器的WINS服務器地址都設為同一個
假設是
然後(很重要的一點)
要給每台機器添加到另一個子網的路由
例如
這台機器(Windows)要執行
route add
mask
以此類推
重新啟動後(注意要先啟動WINS服務器)子網B中的機器就能夠正常登錄到TEST域了
而且在網上鄰居中也能正常浏覽所有的機器
在實踐中有這樣一個問題
如果可能的話
最好是把路由器用作WINS服務器
因為它能直接連接到各個子網
如果不行的話
要注意為WINS服務器添加相應的路由
這時解析的速度可能會稍慢
不過登錄域沒有任何問題
From:http://tw.wingwit.com/Article/os/fwq/201311/29810.html