BBS水木清华站∶精华区

发信人: lenx (冷·枫), 信区: Linux 
标  题: [技术] 跨网关浏览samba 
发信站: BBS 水木清华站 (Mon Jan  5 15:16:07 1998) 
 
发信人: lenx (冷·枫), 信区: linux 
标  题: [技术] 跨网关浏览samba 
发信站: BBS 曙光站 (Sun Dec 28 20:17:54 1997) 
 
(本文参照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(*) 
 
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] 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 162.105.118.55] 

BBS水木清华站∶精华区