[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 网管技术 > 网络技术 > 正文
 

跨网关浏览samba

作者:Linux 来源:Linux时代 (2007-02-08 15:17:59)

  跨网关浏览samba

  问题的提出:

  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


(http://www.fanqiang.com)



 
 相关文章
samba学习笔记 2007-02-08 15:11:43
Samba3.0轻松搞定PDC域服务器 2007-02-08 15:06:31
常用Linux与Windows共享 建最简Samba 2006-07-12 16:54:32
OpenBSD+Samba+eFax架设传真服务器 2006-05-19 16:10:26
HP-UX SAMBA的安装及配置 2006-05-18 16:06:52
FreeBSD 中 Samba Server安装设定 2005-12-14 18:13:22
 

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com