Linux 版 (精华区)

发信人: tcpip (干打雷,不下雨), 信区: Linux
标  题: 跨网关浏览samba
发信站: 哈工大紫丁香 (Thu Jun 17 04:34:45 1999), 转信

(本文参照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


--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.911毫秒