From 992f1e6b8f86b346fddd266b04d29cde69585633 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 7 Apr 2004 10:15:11 +0000 Subject: Add all the source files from the old CVS tree, add the 5 missing chapters from the HOWTO and add jht's Samba by Example book. (This used to be commit 9fb5bcb93e57c5162b3ee6f9c7d777dc0269d100) --- docs/howto/Integrating-with-Windows.xml | 713 ++++++++++++++++++++++++++++++++ 1 file changed, 713 insertions(+) create mode 100644 docs/howto/Integrating-with-Windows.xml (limited to 'docs/howto/Integrating-with-Windows.xml') diff --git a/docs/howto/Integrating-with-Windows.xml b/docs/howto/Integrating-with-Windows.xml new file mode 100644 index 0000000000..33c9434856 --- /dev/null +++ b/docs/howto/Integrating-with-Windows.xml @@ -0,0 +1,713 @@ + + + + &author.jht; + (Jan 01 2001) + + +Integrating MS Windows Networks with Samba + + +NetBIOS +This section deals with NetBIOS over TCP/IP name to IP address resolution. If +your MS Windows clients are not configured to use NetBIOS over TCP/IP, then this +section does not apply to your installation. If your installation +involves the use of +NetBIOS over TCP/IP then this section may help you to resolve networking problems. + + + + +NetBIOS over TCP/IP has nothing to do with NetBEUI. NetBEUI is NetBIOS +over Logical Link Control (LLC). On modern networks it is highly advised +to not run NetBEUI at all. Note also there is no such thing as +NetBEUI over TCP/IP &smbmdash; the existence of such a protocol is a complete +and utter misapprehension. + + + + +Features and Benefits + + +Many MS Windows network administrators have never been exposed to basic TCP/IP +networking as it is implemented in a UNIX/Linux operating system. Likewise, many UNIX and +Linux administrators have not been exposed to the intricacies of MS Windows TCP/IP-based +networking (and may have no desire to be either). + + + +This chapter gives a short introduction to the basics of how a name can be resolved to +its IP address for each operating system environment. + + + + + +Background Information + + +Since the introduction of MS Windows 2000, it is possible to run MS Windows networking +without the use of NetBIOS over TCP/IP. NetBIOS over TCP/IP uses UDP port 137 for NetBIOS +name resolution and uses TCP port 139 for NetBIOS session services. When NetBIOS over +TCP/IP is disabled on MS Windows 2000 and later clients, then only the TCP port 445 will be +used and the UDP port 137 and TCP port 139 will not. + + + + +When using Windows 2000 or later clients, if NetBIOS over TCP/IP is not disabled, then +the client will use UDP port 137 (NetBIOS Name Service, also known as the Windows Internet +Name Service or WINS), TCP port 139 and TCP port 445 (for actual file and print traffic). + + + + +When NetBIOS over TCP/IP is disabled, the use of DNS is essential. Most installations that +disable NetBIOS over TCP/IP today use MS Active Directory Service (ADS). ADS requires +DNSDynamic +Dynamic DNS with Service Resource Records (SRV RR) and with Incremental Zone Transfers (IXFR). +DHCP +Use of DHCP with ADS is recommended as a further means of maintaining central control +over the client workstation network configuration. + + + + + +Name Resolution in a Pure UNIX/Linux World + + +The key configuration files covered in this section are: + + + + /etc/hosts + /etc/resolv.conf + /etc/host.conf + /etc/nsswitch.conf + + + +<filename>/etc/hosts</filename> + + +This file contains a static list of IP addresses and names. + + +127.0.0.1 localhost localhost.localdomain +192.168.1.1 bigbox.quenya.org bigbox alias4box + + + +The purpose of /etc/hosts is to provide a +name resolution mechanism so users do not need to remember +IP addresses. + + + +Network packets that are sent over the physical network transport +layer communicate not via IP addresses but rather using the Media +Access Control address, or MAC address. IP addresses are currently +32 bits in length and are typically presented as four (4) decimal +numbers that are separated by a dot (or period). For example, 168.192.1.1. + + + +MAC Addresses +MAC Addresses use 48 bits (or 6 bytes) and are typically represented +as two-digit hexadecimal numbers separated by colons: 40:8e:0a:12:34:56. + + + +Every network interface must have a MAC address. Associated with +a MAC address may be one or more IP addresses. There is no +relationship between an IP address and a MAC address; all such assignments +are arbitrary or discretionary in nature. At the most basic level, all +network communications take place using MAC addressing. Since MAC +addresses must be globally unique and generally remain fixed for +any particular interface, the assignment of an IP address makes sense +from a network management perspective. More than one IP address can +be assigned per MAC address. One address must be the primary IP +address &smbmdash; +this is the address that will be returned in the ARP reply. + + + +When a user or a process wants to communicate with another machine, +the protocol implementation ensures that the machine name or host +name is resolved to an IP address in a manner that is controlled +by the TCP/IP configuration control files. The file +/etc/hosts is one such file. + + + +When the IP address of the destination interface has been +determined, a protocol called ARP/RARP is used to identify +the MAC address of the target interface. ARP stands for Address +Resolution Protocol and is a broadcast-oriented method that +uses User Datagram Protocol (UDP) to send a request to all +interfaces on the local network segment using the all 1s MAC +address. Network interfaces are programmed to respond to two +MAC addresses only; their own unique address and the address +ff:ff:ff:ff:ff:ff. The reply packet from an ARP request will +contain the MAC address and the primary IP address for each +interface. + + + +/etc/hosts +The /etc/hosts file is foundational to all +UNIX/Linux TCP/IP installations and as a minimum will contain +the localhost and local network interface IP addresses and the +primary names by which they are known within the local machine. +This file helps to prime the pump so a basic level of name +resolution can exist before any other method of name resolution +becomes available. + + + + + + +<filename>/etc/resolv.conf</filename> + + +This file tells the name resolution libraries: + + + + The name of the domain to which the machine + belongs. + + + The name(s) of any domains that should be + automatically searched when trying to resolve unqualified + host names to their IP address. + + + The name or IP address of available Domain + Name Servers that may be asked to perform name-to-address + translation lookups. + + + + + + + +<filename>/etc/host.conf</filename> + + + +/etc/host.conf +/etc/host.conf is the primary means by +which the setting in /etc/resolv.conf may be effected. It is a +critical configuration file. This file controls the order by +which name resolution may proceed. The typical structure is: + + + +order hosts,bind +multi on + + + +then both addresses should be returned. Please refer to the +man page for host.conf for further details. + + + + + + + + +<filename>/etc/nsswitch.conf</filename> + + + +/etc/nsswitch.conf +This file controls the actual name resolution targets. The +file typically has resolver object specifications as follows: + + + + +# /etc/nsswitch.conf +# +# Name Service Switch configuration file. +# + +passwd: compat +# Alternative entries for password authentication are: +# passwd: compat files nis ldap winbind +shadow: compat +group: compat + +hosts: files nis dns +# Alternative entries for host name resolution are: +# hosts: files dns nis nis+ hesiod db compat ldap wins +networks: nis files dns + +ethers: nis files +protocols: nis files +rpc: nis files +services: nis files + + + +Of course, each of these mechanisms requires that the appropriate +facilities and/or services are correctly configured. + + + +It should be noted that unless a network request/message must be +sent, TCP/IP networks are silent. All TCP/IP communications assume a +principal of speaking only when necessary. + + + + +libnss_wins.so +Starting with version 2.2.0, Samba has Linux support for extensions to +the name service switch infrastructure so Linux clients will +be able to obtain resolution of MS Windows NetBIOS names to IP +Addresses. To gain this functionality, Samba needs to be compiled +with appropriate arguments to the make command (i.e., make +nsswitch/libnss_wins.so). The resulting library should +then be installed in the /lib directory and +the wins parameter needs to be added to the hosts: line in +the /etc/nsswitch.conf file. At this point, it +will be possible to ping any MS Windows machine by its NetBIOS +machine name, as long as that machine is within the workgroup to +which both the Samba machine and the MS Windows machine belong. + + + + + + + +Name Resolution as Used within MS Windows Networking + + +MS Windows networking is predicated about the name each machine +is given. This name is known variously (and inconsistently) as +the computer name, machine name, networking name, netbios name, +or SMB name. All terms mean the same thing with the exception of +netbios name that can also apply to the name of the workgroup or the +domain name. The terms workgroup and domain are really just a +simple name with which the machine is associated. All NetBIOS names +are exactly 16 characters in length. The 16th character is reserved. +It is used to store a one-byte value that indicates service level +information for the NetBIOS name that is registered. A NetBIOS machine +name is, therefore, registered for each service type that is provided by +the client/server. + + + +Unique NetBIOS Names and Group Names tables +list typical NetBIOS name/service type registrations. + + + +Unique NetBIOS Names + + + + +MACHINENAME<00>Server Service is running on MACHINENAME +MACHINENAME<03>Generic Machine Name (NetBIOS name) +MACHINENAME<20>LanMan Server service is running on MACHINENAME +WORKGROUP<1b>Domain Master Browser + + +
+ + +Group Names + + + + +WORKGROUP<03>Generic Name registered by all members of WORKGROUP +WORKGROUP<1c>Domain Controllers / Netlogon Servers +WORKGROUP<1d>Local Master Browsers +WORKGROUP<1e>Browser Election Service + + +
+ + +NetBIOS +It should be noted that all NetBIOS machines register their own +names as per the above. This is in vast contrast to TCP/IP +installations where traditionally the system administrator will +determine in the /etc/hosts or in the DNS database what names +are associated with each IP address. + + + +NetBIOS +One further point of clarification should be noted. The /etc/hosts +file and the DNS records do not provide the NetBIOS name type information +that MS Windows clients depend on to locate the type of service that may +be needed. An example of this is what happens when an MS Windows client +wants to locate a domain logon server. It finds this service and the IP +address of a server that provides it by performing a lookup (via a +NetBIOS broadcast) for enumeration of all machines that have +registered the name type *<1c>. A logon request is then sent to each +IP address that is returned in the enumerated list of IP addresses. +Whichever machine first replies, it then ends up providing the logon services. + + + +The name workgroup or domain really can be confusing since these +have the added significance of indicating what is the security +architecture of the MS Windows network. The term workgroup indicates +that the primary nature of the network environment is that of a +peer-to-peer design. In a WORKGROUP, all machines are responsible for +their own security, and generally such security is limited to the use of +just a password (known as Share Level security). In most situations +with peer-to-peer networking, the users who control their own machines +will simply opt to have no security at all. It is possible to have +User Level Security in a WORKGROUP environment, thus requiring the use +of a user name and a matching password. + + + +MS Windows networking is thus predetermined to use machine names +for all local and remote machine message passing. The protocol used is +called Server Message Block (SMB) and this is implemented using +the NetBIOS protocol (Network Basic Input Output System). NetBIOS can +be encapsulated using LLC (Logical Link Control) protocol &smbmdash; in which case +the resulting protocol is called NetBEUI (Network Basic Extended User +Interface). NetBIOS can also be run over IPX (Inter-networking Packet +Exchange) protocol as used by Novell NetWare, and it can be run +over TCP/IP protocols &smbmdash; in which case the resulting protocol is called +NBT or NetBT, the NetBIOS over TCP/IP. + + + +MS Windows machines use a complex array of name resolution mechanisms. +Since we are primarily concerned with TCP/IP, this demonstration is +limited to this area. + + + +The NetBIOS Name Cache + + +All MS Windows machines employ an in-memory buffer in which is +stored the NetBIOS names and IP addresses for all external +machines that machine has communicated with over the +past 10-15 minutes. It is more efficient to obtain an IP address +for a machine from the local cache than it is to go through all the +configured name resolution mechanisms. + + + +If a machine whose name is in the local name cache has been shut +down before the name had been expired and flushed from the cache, then +an attempt to exchange a message with that machine will be subject +to time-out delays. Its name is in the cache, so a name resolution +lookup will succeed, but the machine cannot respond. This can be +frustrating for users but is a characteristic of the protocol. + + + +nbtstat +nmblookup +The MS Windows utility that allows examination of the NetBIOS +name cache is called nbtstat. The Samba equivalent of this +is called nmblookup. + + + + + +The LMHOSTS File + + +LMHOSTS +This file is usually located in MS Windows NT 4.0 or Windows 200x/XP in the directory +C:\WINNT\SYSTEM32\DRIVERS\ETC and contains the IP Address +and the machine name in matched pairs. The LMHOSTS file +performs NetBIOS name to IP address mapping. + + + +It typically looks like this: + + + +# Copyright (c) 1998 Microsoft Corp. +# +# This is a sample LMHOSTS file used by the Microsoft Wins Client (NetBIOS +# over TCP/IP) stack for Windows98 +# +# This file contains the mappings of IP addresses to NT computer names +# (NetBIOS) names. Each entry should be kept on an individual line. +# The IP address should be placed in the first column followed by the +# corresponding computer name. The address and the computer name +# should be separated by at least one space or tab. The "#" character +# is generally used to denote the start of a comment (see the exceptions +# below). +# +# This file is compatible with Microsoft LAN Manager 2.x TCP/IP lmhosts +# files and offers the following extensions: +# +# #PRE +# #DOM:<domain> +# #INCLUDE <filename> +# #BEGIN_ALTERNATE +# #END_ALTERNATE +# \0xnn (non-printing character support) +# +# Following any entry in the file with the characters "#PRE" will cause +# the entry to be pre-loaded into the name cache. By default, entries are +# not pre-loaded, but are parsed only after dynamic name resolution fails. +# +# Following an entry with the "#DOM:<domain>" tag will associate the +# entry with the domain specified by <domain>. This effects how the +# browser and logon services behave in TCP/IP environments. To preload +# the host name associated with #DOM entry, it is necessary to also add a +# #PRE to the line. The <domain> is always pre-loaded although it will not +# be shown when the name cache is viewed. +# +# Specifying "#INCLUDE <filename>" will force the RFC NetBIOS (NBT) +# software to seek the specified <filename> and parse it as if it were +# local. <filename> is generally a UNC-based name, allowing a +# centralized lmhosts file to be maintained on a server. +# It is ALWAYS necessary to provide a mapping for the IP address of the +# server prior to the #INCLUDE. This mapping must use the #PRE directive. +# In addition the share "public" in the example below must be in the +# LanMan Server list of "NullSessionShares" in order for client machines to +# be able to read the lmhosts file successfully. This key is under +# \machine\system\currentcontrolset\services\lanmanserver\ +# parameters\nullsessionshares +# in the registry. Simply add "public" to the list found there. +# +# The #BEGIN_ and #END_ALTERNATE keywords allow multiple #INCLUDE +# statements to be grouped together. Any single successful include +# will cause the group to succeed. +# +# Finally, non-printing characters can be embedded in mappings by +# first surrounding the NetBIOS name in quotations, then using the +# \0xnn notation to specify a hex value for a non-printing character. +# +# The following example illustrates all of these extensions: +# +# 102.54.94.97 rhino #PRE #DOM:networking #net group's DC +# 102.54.94.102 "appname \0x14" #special app server +# 102.54.94.123 popular #PRE #source server +# 102.54.94.117 localsrv #PRE #needed for the include +# +# #BEGIN_ALTERNATE +# #INCLUDE \\localsrv\public\lmhosts +# #INCLUDE \\rhino\public\lmhosts +# #END_ALTERNATE +# +# In the above example, the "appname" server contains a special +# character in its name, the "popular" and "localsrv" server names are +# pre-loaded, and the "rhino" server name is specified so it can be used +# to later #INCLUDE a centrally maintained lmhosts file if the "localsrv" +# system is unavailable. +# +# Note that the whole file is parsed including comments on each lookup, +# so keeping the number of comments to a minimum will improve performance. +# Therefore it is not advisable to simply add lmhosts file entries onto the +# end of this file. + + + + + +HOSTS File + + +This file is usually located in MS Windows NT 4.0 or Windows 200x/XP in +the directory C:\WINNT\SYSTEM32\DRIVERS\ETC and contains +the IP Address and the IP hostname in matched pairs. It can be +used by the name resolution infrastructure in MS Windows, depending +on how the TCP/IP environment is configured. This file is in +every way the equivalent of the UNIX/Linux /etc/hosts file. + + + + + +DNS Lookup + + + +DNS +This capability is configured in the TCP/IP setup area in the network +configuration facility. If enabled, an elaborate name resolution sequence +is followed, the precise nature of which is dependant on how the NetBIOS +Node Type parameter is configured. A Node Type of 0 means that +NetBIOS broadcast (over UDP broadcast) is used if the name +that is the subject of a name lookup is not found in the NetBIOS name +cache. If that fails then DNS, HOSTS and LMHOSTS are checked. If set to +Node Type 8, then a NetBIOS Unicast (over UDP Unicast) is sent to the +WINS Server to obtain a lookup before DNS, HOSTS, LMHOSTS, or broadcast +lookup is used. + + + + + +WINS Lookup + + + +WINS +A WINS (Windows Internet Name Server) service is the equivalent of the +rfc1001/1002 specified NBNS (NetBIOS Name Server). A WINS server stores +the names and IP addresses that are registered by a Windows client +if the TCP/IP setup has been given at least one WINS Server IP Address. + + + +To configure Samba to be a WINS server, the following parameter needs +to be added to the &smb.conf; file: + + + +wins supportYes + + + +To configure Samba to use a WINS server, the following parameters are +needed in the &smb.conf; file: + + + +wins supportNo +wins serverxxx.xxx.xxx.xxx + + + +where xxx.xxx.xxx.xxx is the IP address +of the WINS server. + + +For information about setting up Samba as a WINS server, read +Network Browsing. + + +
+ + +Common Errors + + +TCP/IP network configuration problems find every network administrator sooner or later. +The cause can be anything from keyboard mishaps, forgetfulness, simple mistakes, and +carelessness. Of course, no one is ever deliberately careless! + + + + Pinging Works Only in One Way + + + I can ping my Samba server from Windows, but I cannot ping my Windows + machine from the Samba server. + + + + Answer: The Windows machine was at IP Address 192.168.1.2 with netmask 255.255.255.0, the + Samba server (Linux) was at IP Address 192.168.1.130 with netmask 255.255.255.128. + The machines were on a local network with no external connections. + + + + Due to inconsistent netmasks, the Windows machine was on network 192.168.1.0/24, while + the Samba server was on network 192.168.1.128/25 &smbmdash; logically a different network. + + + + + + Very Slow Network Connections + + + A common cause of slow network response includes: + + + + Client is configured to use DNS and the DNS server is down. + Client is configured to use remote DNS server, but the + remote connection is down. + Client is configured to use a WINS server, but there is no WINS server. + Client is not configured to use a WINS server, but there is a WINS server. + Firewall is filtering our DNS or WINS traffic. + + + + + + Samba Server Name Change Problem + + + The name of the Samba server was changed, Samba was restarted, Samba server cannot be + ping-ed by new name from MS Windows NT4 Workstation, but it does still respond to ping using + the old name. Why? + + + + From this description, three things are obvious: + + + + WINS is not in use, only broadcast-based name resolution is used. + The Samba server was renamed and restarted within the last 10-15 minutes. + The old Samba server name is still in the NetBIOS name cache on the MS Windows NT4 Workstation. + + + + To find what names are present in the NetBIOS name cache on the MS Windows NT4 machine, + open a cmd shell and then: + + + + +&dosprompt;nbtstat -n + + NetBIOS Local Name Table + + Name Type Status +------------------------------------------------ +&example.workstation.windows; <03> UNIQUE Registered +ADMINISTRATOR <03> UNIQUE Registered +&example.workstation.windows; <00> UNIQUE Registered +SARDON <00> GROUP Registered +&example.workstation.windows; <20> UNIQUE Registered +&example.workstation.windows; <1F> UNIQUE Registered + + +&dosprompt;nbtstat -c + + NetBIOS Remote Cache Name Table + + Name Type Host Address Life [sec] +-------------------------------------------------------------- +&example.server.samba; <20> UNIQUE 192.168.1.1 240 + +&dosprompt; + + + + + In the above example, &example.server.samba; is the Samba server and &example.workstation.windows; is the MS Windows NT4 Workstation. + The first listing shows the contents of the Local Name Table (i.e., Identity information on + the MS Windows workstation) and the second shows the NetBIOS name in the NetBIOS name cache. + The name cache contains the remote machines known to this workstation. + + + + + + +
-- cgit