Linux – How to make ubuntu use samba to resolve windows host names

debianlinuxsambaUbuntuwins

I have an Ubuntu 11.04 computer with two vms : debian and windows xp. Each vm also has Host-only connection so I can see them from Host without setting up port forwarding.

All machines can ping each other using ip addresses, but the linux machines(ubuntu host and debian guest) cant ping windows xp by name, only by using tools like 'nmblookup' or by typing 'smb://hostname' in nautilus. Windows XP can ping all machines by name.

Surely I must be missing some configuration in smb.conf. Here is the current one I'm using :

[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
name resolve order = bcast host lmhosts wins     
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
use client driver = yes
map to guest = Bad User
usershare allow guests = Yes
usershare max shares = 100
usershare owner only = False

Any help will be appreciated.

Best Answer

It's not just Samba!

You need to have Winbind installed, which also installs the Name Service Switch library needed to do what you're looking for. If /lib/libnss_winbind exists on your system, all you should need to do is modify the hosts line in /etc/nsswitch.cfg:

hosts     files dns winbind

The key thing being the winbind line. That tells Linux to use the Windows system for name-resolution.