歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> 如何跨網關浏覽samba?

如何跨網關浏覽samba?

日期:2017/2/27 12:18:43   编辑:Linux文化

(本文參照samba-1.9.17p5/docs/BROWSING.txt寫成)

問題的提出:

samba給我們提供了很好的unix/m$network共享資源的能力,
但由於samba用的是netbios on tcp/ip, 所以在跨網關浏覽上有一定的問題.

N1_A N1_B N1_C N1_D N1_E
| | | | |
-------------------------------------------------------
| subnet 1 |
+---+ +---+
|R1 | BRouter 1 BRouter 2 |R2 |
+---+ +---+
| |
| subnet 2 subnet 3 |
-------------------------- ------------------------------------
| | | | | | | |
N2_A N2_B N2_C N2_D N3_A N3_B N3_C N3_D
(wins, (95) (NT) (samba)
111.222.111.222)

比如上圖中N3_C是samba server, 那麼在subnet 1 和 subnet 2中的95/nt在
網絡鄰居裡就看不見N3_C (而N3_A(95),N3_B(NT)可以通過netbeui和netbios on ipx
透過brouter R2和R1出現在其他子網機器的網絡鄰居裡), samba怎麼解決這個問題?

問題的速解:
將所有機器的wins指定到同一台機器, 比如說N2_D (NT或者samba).

95/NT的wins設定我想誰都會就不多說了.
samba的wins client設定是在smb.conf裡[global]段中加上:
wins support = no
wins server = 111.222.111.222 ; 你的wins的ip
如果是samba自己要當wins server的話, 則是在[global]段中加上:
wins support = yes
(注意, samba不能同時當wins server和wins client)

這樣設定好以後, 所有網段的機器就能看見其他網段的samba server了

95和NT一般要設兩個wins, 在這裡只要讓samba使用的wins和95/NT使用的
主wins一致就可以了. 當有網絡裡有NT server時, 最好用NT Server來當
wins, 而不要用samba.

問題的解釋:
這個問題其實是根據m$network on tcp/ip跨網段浏覽的機制得到解決的.這個解決
方法對95/NT也適用, 而且由於不需要在子網間廣播netbeui和ipx, 對比較大的網使用
效率的提高也有很大的幫助.
仍然使用這副圖來解釋m$network on tcp/ip跨網段浏覽機制:

(DMB)
N1_A N1_B N1_C N1_D N1_E
| | | | |
-------------------------------------------------------
| subnet 1 |
+---+ +---+
|R1 | Router 1 Router 2 |R2 |
+---+ +---+
| |
| subnet 2 subnet 3 |
-------------------------- ------------------------------------
| | | | | | | |
N2_A N2_B N2_C N2_D N3_A N3_B N3_C N3_D
(LMB) (WINS) (LMB)
當一台提供共享服務的機器(95/NT/Samba)啟動時, 它會向整個子網廣播自己提供
哪些服務. 而LMB(Local Master Browser局域主浏覽器)則收集並記錄這些廣播, 這個
記錄的清單就是 m$network浏覽機制的基礎, 在這裡假設所有的機器都提供共享服務
那麼, 浏覽清單(browse list)上就應該有所有的機器.

Subnet Browse Master List
------ ------------- ----
Subnet1 N1_C N1_A, N1_B, N1_C, N1_D, N1_E

Subnet2 N2_B N2_A, N2_B, N2_C, N2_D

Subnet3 N3_D N3_A, N3_B, N3_C, N3_D

LMB是機器間(95,NT,Samba)通過一種競選機制自動產生的.這裡不多加敘述.
此時由於網段之間是分隔開的, 所以每個網段的browse list上就只有自己網段的
機器.
現在考察下一步, 當subnet 2裡的N2_B成為LMB後,它就要尋找DMB(Domain Master
Browser域主浏覽器)來同步信浏覽信息, 於是它就詢問wins得到DMB的ip地址. DMB
的產生其實也類似於LMB, 是LMB間自發競爭產生的.
在這個例子裡, N2_B知道了N1_C是DMB, 於是和N1_C同步浏覽表browse list, 這樣
同步過後, 各子網的browse list就成為:
Subnet Browse Master List
------ ------------- ----
Subnet1 N1_C N1_A, N1_B, N1_C, N1_D, N1_E,
N2_A(*), N2_B(*), N2_C(*), N2_D(*)

Subnet2 N2_B N2_A, N2_B, N2_C, N2_D
N1_A(*), N1_B(*), N1_C(*), N1_D(*), N1_E(*)

Subnet3 N3_D N3_A, N3_B, N3_C, N3_D

這樣的事同樣發生在N3_D和N1_C之間, 而後N2_B和N1_C再次同步, 最後, 每台機器
就都出現在各個子網的浏覽表裡了:
Subnet Browse Master List
------ ------------- ----
Subnet1 N1_C N1_A, N1_B, N1_C, N1_D, N1_E,
N2_A(*), N2_B(*), N2_C(*), N2_D(*),
N3_A(*), N3_B(*), N3_C(*), N3_D(*)

Subnet1 N1_C N1_A, N1_B, N1_C, N1_D, N1_E,
N2_A(*), N2_B(*), N2_C(*), N2_D(*),
N3_A(*), N3_B(*), N3_C(*), N3_D(*)

Subnet2 N2_B N2_A, N2_B, N2_C, N2_D
N1_A(*), N1_B(*), N1_C(*), N1_D(*), N1_E(*)
N3_A(*), N3_B(*), N3_C(*), N3_D(*)

Subnet3 N3_D N3_A, N3_B, N3_C, N3_D
N1_A(*), N1_B(*), N1_C(*), N1_D(*), N1_E(*),
N2_A(*), N2_B(*), N2_C(*), N2_D(*)

資源的獲得:
ftp://ftp.sepc.ac.cn/pub/linux/collect/network/daemons/samba

--
Late Expanded aNd eXtended

※ 來源:.BBS 曙光站 bbs.ncic.ac.cn.[IP: 159.226.43.21]


Copyright © Linux教程網 All Rights Reserved