BROWSING
========

Samba has recently begun support for browsing. The browsing is
supported by nmbd and is also controlled by options in the smb.conf
file (see smb.conf(5)).

Samba does not act as a browse master for a workgroup, so it can only
participate in workgroups which already have a browse master. If you
have any WfWg or WinNT machines in your workgroup that exports a share
then you already have a browse master so this shouldn't be a problem.

To get browsing to work you need to run nmbd as usual, but need to
either give the -G option to elect which workgroup Samba will be part
of, or use a lmhosts file.

The -G option is most useful for simple setups where Samba is browsable
in only one workgroup. In more complex cases the lmhosts file is
better.

Be very careful setting up your lmhosts file. An incorrectly setup
lmhosts file can have disasterous results for your net!

A simple lmhosts file might be:

# This is a simple lmhosts file
#
# This is a host alias. Anyone querying this name
# will get the specified IP
192.0.2.17 SMBDATA
#
# first put ourselves in workgroup MYGROUP using
# our own net address
0.0.0.0 MYGROUP G

Samba has a useful option for a Samba server to offer itself for
browsing on another subnet.

This works by the lmhosts file specifying a broadcast address on the
other network to use to find a browse master for the workgroup.

For example if you wanted yourself to appear in the workgroup STAFF on
the network which has a broadcast of 192.0.3.255 then this entry would
do the trick:

# put ourselves in the STAFF workgroup on the other subnet
192.0.3.255 STAFF S

Notice the S at the end! It is very important you include this as this
entry without the S could cause a broadcast storm!

If browsing is causing you trouble you can disable it with the -b
option to nmbd.

If something doesn't work then hopefully the log.nmb.debug file will
help you track down the problem.

Note that if it doesn't work for you, then you should still be able to
type the server name as \\SERVER in filemanager then hit enter and
filemanager should display the list of available shares.

Remember: Samba can only participate in EXISTING workgroups. If you specify
a workgroup that dosn't exist then browsing won't work. In future versions
Samba will probably be able to create it's own workgroups.

Some people find browsing fails because they don't have the global
"guest account" set to a valid account. Remember that the IPC$
connection that lists the shares is done as guest, and thus you must
have a valid guest account.

Also, a lot of people are getting bitten by the problem of too many
parameters on the command line of nmbd in inetd.conf. This trick is to
not use spaces between the option and the parameter (eg: -d2 instead
of -d 2), and to not use the -B and -N options. New versions of nmbd
are now far more likely to correctly find your broadcast and network
addess, so in most cases these aren't needed.


FINDING A MASTER BROWSER
========================

Often people find that nmbd has trouble finding a master browser. The
likely causes of this problem are:

1) you are using the wrong broadcast address

2) You are using the wrong workgroup name

3) You don't have a master browser.

To find out which of the above problems applies to you use the -M
switch to nmbd to search for a master browser manually. eg:

nmbd -M FOOGROUP -B a.b.c.d

This will look for a master browser for the workgroup FOOGROUP using
broadcast a.b.c.d. When you successfully find a master browser you
know you have the broadcast and group name right.


NOTE ABOUT BROADCAST ADDRESSES
==============================

If your network uses a "0" based broadcast address (for example if it
ends in a 0) then you may strike problems. Windows for Workgroups does
not seem to support a 0's broadcast and you will probably find that
browsing and name lookups won't work.

You have a few options:

1) change to a 1's broadcast on your unix server. These often end in
.255 (check with your local network guru for details)

2) set the nmbd broadcast to a 1's based address on the command line using
the -B option.

3) explicitly support both broadcasts with two entries in your lmhosts file.

