This information is Copyright 2008 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: Introduce nbtd, NetBIOS service daemon 1.2. Name of Document Author/Supplier: Author: Keyur Desai 1.3 Date of This Document: 15 April, 2008 4. Technical Description: OVERVIEW This proposal is to decouple the NetBIOS name, datagram and browser client services from the SMB daemon and start them in a separate daemon process called nbtd. This is an existing smbd component and is simply being split out as a separate daemon in order to provide the same functionality, currently available within the CIFS service, to other Solaris services, such as idmapd (Winchester) and smbfs (CIFS client). PROPOSED SOLUTION A new NetBIOS name, datagram and browser client service daemon (aka nbtd) along with a shared library named libnbt.so would be added to Solaris. The nbtd daemon provides NetBIOS-over-TCP (NBT) name, datagram and CIFS/E browser services including NetBIOS host announcement, name caching and domain controller location. If a WINS server has been configured, the local system will be registered with the WINS server. Only processes with {PRIV_SYS_SMB} can run this daemon. The nbtd daemon, is managed as an SMF service with an FMRI of svc:/network/nbt:default. A shared library, libnbt.so, provides an API to the nbtd name service. The browser client does not request a list of backup browsers or a server list from the local master browser and does not request or participate in browser elections. The nbtd daemon will start with UID/GID of root/sys, in order to create the door file in /var/run. Once the daemon has created the door file, it will run with a UID/GID of daemon/daemon. The following authorizations and profiles will be used. - solaris.smf.manage.smb The existing solaris.smf.manage.smb authorization, will be used to cover activities that change the state of the service, such as starting, stopping or refreshing of the nbtd(1M) daemon. - solaris.smf.value.smb The existing solaris.smf.value.smb authorization, will be used to allow the users to change the nbtd daemon configuration property values. - The existing SMB Management right profile will be used. SMB Management:::Manage SMB service: auths=solaris.smf.manage.smb,solaris.smf.value.smb: help=RtSMBMngmnt.html 4.2. Bug/RFE Number(s): 6687726: NetBIOS service daemon 4.5. Interfaces: The following interfaces, mentioned in CIFS design document (PSARC/2006/715), are moved from SMB daemon (smbd) to NetBIOS services daemon (nbtd). - NetBIOS Browser: CIFS/E Browser Protocol [4] - NetBIOS message headers: RFC 1001 [1] and RFC 1002 [2] Exported Interfaces -------------------- - libnbt.so Consumed Interfaces ------------------- - libsmb.so - libavl.so - libnsl.so - libsocket.so 4.6. Doc Impact: 1). Changes to smb(4) manpage -------------------------------------------------------------------------- 95,111d94 < < netbios_scope < < Specifies the NetBIOS scope identifier, which identifies < logical NetBIOS networks that are on the same physical < network. When you specify a NetBIOS scope identifier, < the server is only able to communicate with other sys- < tems that have the same scope defined. The value is a < text string that represents a domain name and is limited < to 16 characters. By default, no value is set. < < Most environments do not require the use of the NetBIOS < scope feature. If you must use this feature, ensure that < you track the scope identifier assigned to each node. < < < 133,142d115 < pdc < < Specifies the preferred IP address for the domain con- < troller. This property is sometimes used when there are < multiple domain controllers to indicate which one is < preferred. If the specified domain controller responds, < it is chosen even if the other domain controllers are < also available. By default, no value is set. < < 160,178d132 < wins_exclude < < Specifies a comma-separated list of IP addresses that < are to be excluded from WINS registration when a WINS < server is configured. By default, no value is set. < < < wins_server_1 < < Specifies the IP address of the primary WINS server. By < default, no value is set. < < < wins_server_2 < < Specifies the IP address of the secondary WINS server. < By default, no value is set. < < 196c150 < butes(5), smf(5) --- > butes(5), nbtd(1M), nbt(4), smf(5) -------------------------------------------------------------------------- 2). Changes to smbd(1M) manpage -------------------------------------------------------------------------- 71c71 < attributes(5), smf(5) --- > attributes(5), nbtd(1M), nbt(4), smf(5) -------------------------------------------------------------------------- 3). New nbtd manpage -------------------------------------------------------------------------- NAME nbtd - NetBIOS services daemon. SYNOPSIS /usr/lib/smbsrv/nbtd DESCRIPTION The nbtd daemon provides NetBIOS-over-TCP (NBT) name, datagram & CIFS/E browser services including NetBIOS host announcement, name caching and domain controller location. If a WINS server has been configured, the local system will be registered with the WINS server. Only processes with {PRIV_SYS_SMB} can run this daemon. When nbtd daemon is started, the following services are enabled: o The NetBIOS name service is started on UDP port 137. o The NetBIOS datagram service is started on UDP port 138. Only one instance of nbtd may be running at a time. EXIT STATUS The following exit values are returned: 0 Daemon exited cleanly. 95 Daemon exited with a fatal error. 96 Daemon exited with a configuration error. ATTRIBUTES See the attributes(5) man page for descriptions of the fol- lowing attributes: ___________________________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | |_____________________________|_____________________________| | Availability | SUNWsmbsu | |_____________________________|_____________________________| | Interface Stability | Uncommitted | |_____________________________|_____________________________| SEE ALSO smbd(1M), smbadm(1M), svcs(1), sharectl(1M), sharemgr(1M), svcadm(1M), smb(4), nbt(4), smbautohome(4), system(4), smf(5), attributes(5) NOTES Use the svcadm command to perform administrative actions on the nbtd service, such as enabling, disabling, or restarting the service. Use the svcs command to query the service status. The nbtd service is managed by the service management facil- ity under the service identifier svc:/network/nbt:default. The nbtd service does not participate in Browser elections. -------------------------------------------------------------------------- 4). New nbt manpage The following SMF properties will be now part of nbtd manifest and will be set via sharectl command by authorized users. - scope - enable - exclude - pdc - primary_wins - secondary_wins -------------------------------------------------------------------------- NAME nbt - configuration properties for Solaris NetBIOS service DESCRIPTION Behavior of the Solaris NetBIOS service daemon(nbtd) is defined by property values that are stored in the Service Management facility, smf(5). An authorized user can use the sharectl(1M) command to set global values for these properties in SMF. The following list describes the properties: scope Specifies the NetBIOS scope, which is a character string, in the form of a DNS domain name, that defines the group of computers across which a registered NetBIOS name is known. NetBIOS scopes can be used to partition the computer names a NetBIOS Browser displays when browsing a network. By default, no value is set. pdc Specifies the preferred IP address for the domain con- troller. When there are multiple domain controllers, the pdc property can be used to indicate a domain controller preference. If the specified domain controller responds, it is chosen even if the other domain controllers are also available. By default, no value is set. exclude Specifies a comma-separated list of IP addresses that are to be excluded from WINS registration when a WINS server is configured. By default, no value is set. primary_wins Specifies the IP address of the primary WINS server. By default, no value is set. secondary_wins Specifies the IP address of the secondary WINS server. By default, no value is set. enable The enable property allows NetBIOS services to be enabled or disabled. When NetBIOS services are enabled: - nbtd(1M) will generate host announcements and listen for NetBIOS messages on ports 137 and 138. - smbd(1M) will accept SMB-over-NetBIOS (port 139) and SMB-over-TCP (port 445) connections. - The smbd(1M) redirector will attempt to make connections using SMB-over-TCP (port 445) and, if that fails, retry using SMB-over-NetBIOS (port 139). When NetBIOS services are disabled: - nbtd(1M) will not generate host announcements and will not listen on ports 137 or 138. - smbd(1M) will only accept SMB-over-TCP (port 445) connections. - The smbd(1M) redirector will only make connections using SMB-over-TCP (port 445). By default, the enable property is set to 'true' and NetBIOS services are enabled. ATTRIBUTES See the attributes(5) man page for descriptions of the fol- lowing attributes: ___________________________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | |_____________________________|_____________________________| | Availability | SUNWsmbsu | |_____________________________|____________________________ | | Interface Stability | Uncommitted | |_____________________________|_____________________________| SEE ALSO sharectl(1M), smbadm(1M), smbd(1M), nbtd(1M), smbstat(1M), attributes(5), smf(5), smb(4) -------------------------------------------------------------------------- 5). In addition to the above man page changes, Windows Interoperability documentation will be updated to cover these changes. 4.10. Packaging & Delivery: - SUNWsmbsr and SUNWsmbsu. 5. Reference Documents: [1] RFC 1001 : NetBIOS over TCP/UDP Concepts. Protocol Standard For a NetBIOS Service on a TCP/UDP Transport: Concepts and Methods. [2] RFC 1002 : NetBIOS over TCP/UDP Specification. Protocol Standard For a NetBIOS Service on a TCP/UDP Transport: Detailed Specifications. [3] PSARC/2006/715 [4] CIFS/E Browser Protocol: Paul Leach and Dilip Naik 6. Resources and Schedule: 6.4. Product Approval Committee requested information: 6.4.1. Consolidation or Component Name: ON 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open