NetBIOS Datagram Distributor extensions for Samba Overview In order for OS/2 to operate with full functionality in a NetBIOS over TCP/IP environment, it requires the presence of both a NetBIOS Name Server (NBNS) and NetBIOS Datagram Distribution (NBDD) Server. However, the Microsoft WINS implementation makes a couple of changes to the RFC's: eliminates the NBDD completely only registers individual computers in the "Internet" group 0x1c The NBNS implementation in Samba (nmbd) followed the Microsoft guidelines, so is not completely suitable for use in an OS/2 environment. Without these features OS/2 is unable to perform domain location functions across IP subnets, which among other things prevents OS/2 client logons to domains (both OS/2 and NT). The patches provided here add functionality to Samba to allow full OS/2 support in a NetBIOS over TCP/IP environment: implement NBDD functions register individual members of group 0x00, as well as 0x1c The above two changes are enough to fix the missing OS/2 functionality. Two other changes are made as well: fix Samba's parsing of datagram packets add a parameter to extend NBNS ttl's beyond what is negotiated with the client The former is a Samba bug, it treated all datagram packets the same, while the datagram types used by the NBDD have a different structure. The latest change is a workaround for what appears to be an OS/2 problem. When a system registers its name with an NBNS it negotiates a TTL with the NBNS. Before the expiration of that TTL the client should refresh its name with the NBNS. Over time OS/2 systems appear to lose sync with the server, and don't refresh their names until after Samba has deleted the name from the list. The parameter added tells Samba to wait past the expiration time before deleting the name from its list. I've been running these changes in a mixed OS/2, NT, and Samba environment for over a year now without a problem. One day I would like these changes to become a part of the standard Samba distribution, but until then I will maintain the changes as separate patches. Download The patch is currently provided against Samba 2.0.6 and 2.0.7. It should work on any system that Samba currently supports. This means a non-OS/2 system is needed to act as the NBNS/NBDD. You will need to shift-click to download. For Samba 2.0.6- 206-patch.tgz For Samba 2.0.7- 207-patch.tgz Installation These instructions assume prior knowledge of installing and configuring Samba. Download the Samba source from www.samba.org and follow these steps (shown for Samba 2.0.7): 1.download samba-2.0.7.tar.gz and 207-patch.tgz 2.tar zxf samba-2.0.7.tar.gz 3.tar zxf 207-patch.tgz 4.mv 207.patch ./samba-2.0.7 5.cd samba-2.0.7 6.patch -p0 < 207.patch 7.compile, install, and configure Samba as normal 8.enable WINS support in smb.conf: wins support = yes 9.enable NBDD support in smb.conf: nbdd support = yes 10.if desired, add the "wins grace ttl", I use 2 days: max wins grace ttl = 172800 11.use MPTS on your OS/2 systems to use the Samba server as both NBNS and NBDD Caveats If the Samba NBNS server with this patch is set to the same workgroup/domain as an existing NT or OS/2 domain, then you will be unable to logon to that domain. I think I know why this happens, I just need to find time to fix it. In the meantime make sure the domain in smb.conf is different. Questions and Comments Please email me at landy@alumni.caltech.edu. I hope you find this useful! Brian Landy Mon Jul 3 23:03:15 2000