Initial import
[samba] / docs / htmldocs / using_samba / ch12.html
1 <html>
2 <body bgcolor="#ffffff">
3
4 <img src="samba2_xs.gif" border="0" alt=" " height="100" width="76"
5 hspace="10" align="left" />
6
7 <h1 class="head0">Chapter 12. Troubleshooting Samba</h1>
8
9
10 <p><a name="INDEX-1"/><a name="INDEX-2"/>Samba is extremely robust. Once you have
11 everything set up the way you want, you'll probably
12 forget that it is running. When trouble occurs, it's
13 typically during installation or when you're trying
14 to reconfigure the server. Fortunately, a wide variety of resources
15 are available to diagnose these troubles. While we
16 can't describe in detail the solution to every
17 problem you might encounter, you should be able to get a good start
18 at resolving the problem by following the advice given in this
19 chapter.</p>
20
21 <p>The first section of this chapter lists the tool bag, a collection of
22 tools available for troubleshooting Samba; the second section is a
23 detailed how-to; the last section lists extra resources to track down
24 particularly stubborn problems.</p>
25
26
27
28 <div class="sect1"><a name="samba2-CHP-12-SECT-1"/>
29
30 <h2 class="head1">The Tool Box</h2>
31
32 <p><a name="INDEX-3"/><a name="INDEX-4"/>Sometimes Unix
33 seems to be made up of a grab bag of applications and tools. There
34 are tools to troubleshoot tools. And of course, there are several
35 ways to accomplish the same task. When trying to solve a problem
36 related to Samba, a good plan of attack is to use the following:</p>
37
38 <ul><li>
39 <p>Samba logs</p>
40 </li><li>
41 <p>Samba test utilities</p>
42 </li><li>
43 <p>Unix utilities</p>
44 </li><li>
45 <p>Fault tree</p>
46 </li><li>
47 <p>Documentation and FAQs</p>
48 </li><li>
49 <p>Samba newsgroups</p>
50 </li><li>
51 <p>Searchable mailing list archives</p>
52 </li></ul>
53 <p>Let's go over each of these one-by-one in the
54 following sections.</p>
55
56
57 <div class="sect2"><a name="samba2-CHP-12-SECT-1.1"/>
58
59 <h3 class="head2">Samba Logs</h3>
60
61 <p><a name="INDEX-5"/><a name="INDEX-6"/>Your first line of attack should always
62 be to check the log files. The Samba log files can help diagnose the
63 vast majority of the problems faced by beginning- to
64 intermediate-level Samba administrators. Samba is quite flexible when
65 it comes to logging. You can set up the server to log as little or as
66 much information as you want. Using substitution variables in the
67 Samba configuration file allows you to isolate individual logs for
68 each system, share, or combination thereof.</p>
69
70 <p>Logs are placed in <em class="filename">/usr/local/samba/var/smbd.log</em>
71 and <em class="filename">/usr/local/samba/var/nmbd.log</em> by default.
72 You can specify a log directory to use with the
73 <em class="emphasis">-l</em> flag on the command line when starting the
74 Samba daemons. For example:</p>
75
76 <blockquote><pre class="code"># <tt class="userinput"><b>smbd -l /var/log/samba</b></tt>
77 # <tt class="userinput"><b>nmbd -l /var/log/samba</b></tt></pre></blockquote>
78
79 <p>Alternatively, you can override the location and name using the
80 <tt class="literal">log</tt><a name="INDEX-7"/> <tt class="literal">file</tt> configuration
81 option in <em class="filename">smb.conf</em>. This option accepts all the
82 substitution variables, so you could easily have the server keep a
83 separate log for each connecting client system by specifying the
84 following:</p>
85
86 <blockquote><pre class="code">[global]
87     log file = %m.log</pre></blockquote>
88
89 <p>Another useful trick is to have the server keep a log for each
90 service (share) that is offered, especially if you suspect a
91 particular share is causing trouble. To do this, use the
92 <tt class="literal">%S</tt> variable, like this:</p>
93
94 <blockquote><pre class="code">[global]
95     log file = %S.log</pre></blockquote>
96
97
98 <div class="sect3"><a name="samba2-CHP-12-SECT-1.1.1"/>
99
100 <h3 class="head3">Log levels</h3>
101
102 <p><a name="INDEX-8"/>The level of logging that Samba uses
103 can be set in the <em class="filename">smb.conf</em> file using the global
104 <tt class="literal">log</tt> <tt class="literal">level</tt> or
105 <tt class="literal">debug</tt> <tt class="literal">level</tt> option; they are
106 equivalent. The logging level is an integer that can range from 0 to
107 10. At level 0, no logging is done. Higher values result in more
108 voluminous logging. For example, let's assume that
109 we will use a Windows client to browse a directory on a Samba server.
110 For a small amount of log information, you can use
111 <tt class="literal">log</tt> <tt class="literal">level</tt> <tt class="literal">=</tt>
112 <tt class="literal">1</tt>, which instructs Samba to show only cursory
113 information, in this case only the connection itself:</p>
114
115 <blockquote><pre class="code">05/25/02 22:02:11 server (192.168.236.86) connect to service public as user pcguest 
116 (uid=503,gid=100) (pid 3377)</pre></blockquote>
117
118 <p>Higher debug levels produce more detailed information. Usually, you
119 won't need more than level 3, which is fully
120 adequate for most Samba administrators. Levels above 3 are used by
121 the developers and dump enormous amounts of cryptic information.</p>
122
123 <p>Here is an example of output at levels 2 and 3 for the same
124 operation. Don't worry if you don't
125 understand the intricacies of an SMB connection; the point is simply
126 to show you what types of information are shown at the different
127 <a name="INDEX-9"/>logging levels:</p>
128
129 <blockquote><pre class="code"> /* Level 2 */
130 Got SIGHUP
131 Processing section &quot;[homes]&quot;
132 Processing section &quot;[public]&quot;
133 Processing section &quot;[temp]&quot;
134 Allowed connection from 192.168.236.86 (192.168.236.86) to IPC$
135 Allowed connection from 192.168.236.86 (192.168.236.86) to IPC/
136
137
138 /* Level 3 */
139 05/25/02 22:15:09 Transaction 63 of length 67
140 switch message SMBtconX (pid 3377)
141 Allowed connection from 192.168.236.86 (192.168.236.86) to IPC$
142 ACCEPTED: guest account and guest ok
143 found free connection number 105
144 Connect path is /tmp
145 chdir to /tmp
146 chdir to /
147 05/25/02 22:15:09 server (192.168.236.86) connect to service IPC$ as user pcguest 
148 (uid=503,gid=100) (pid 3377)
149 05/25/02 22:15:09 tconX service=ipc$ user=pcguest cnum=105
150 05/25/02 22:15:09 Transaction 64 of length 99
151 switch message SMBtrans (pid 3377)
152 chdir to /tmp
153 trans &lt;\PIPE\LANMAN&gt; data=0 params=19 setup=0
154 Got API command 0 of form &lt;WrLeh&gt; &lt;B13BWz&gt; (tdscnt=0,tpscnt=19,mdrcnt=4096,mprcnt=8)
155 Doing RNetShareEnum
156 RNetShareEnum gave 4 entries of 4 (1 4096 126 4096)
157 05/25/02 22:15:11 Transaction 65 of length 99
158 switch message SMBtrans (pid 3377)
159 chdir to /
160 chdir to /tmp
161 trans &lt;\PIPE\LANMAN&gt; data=0 params=19 setup=0
162 Got API command 0 of form &lt;WrLeh&gt; &lt;B13BWz&gt; (tdscnt=0,tpscnt=19,mdrcnt=4096,mprcnt=8)
163 Doing RNetShareEnum
164 RNetShareEnum gave 4 entries of 4 (1 4096 126 4096)
165 05/25/02 22:15:11 Transaction 66 of length 95
166 switch message SMBtrans2 (pid 3377)
167 chdir to /
168 chdir to /pcdisk/public
169 call_trans2findfirst: dirtype = 0, maxentries = 6, close_after_first=0, close_if_end 
170 = 0 requires_resume_key = 0 level = 260, max_data_bytes = 2432
171 unix_clean_name [./DESKTOP.INI]
172 unix_clean_name [desktop.ini]
173 unix_clean_name [./]
174 creating new dirptr 1 for path ./, expect_close = 1
175 05/25/02 22:15:11 Transaction 67 of length 53
176 switch message SMBgetatr (pid 3377)
177 chdir to /
178
179 <i class="lineannotation">[... deleted ...]</i></pre></blockquote>
180
181 <p>We cut off this listing after the first packet because it runs on for
182 many pages. However, be aware that log levels above 3 will quickly
183 consume disk space with megabytes of excruciating detail concerning
184 Samba's internal operations. Log level 3 is
185 extremely useful for following exactly what the server is doing, and
186 most of the time it will be obvious where an error occurs by glancing
187 through the log file.</p>
188
189 <p>Using a high log level (3 or above) will
190 <em class="emphasis">seriously</em> slow down the Samba server. Remember
191 that every log message generated causes a write to disk (an
192 inherently slow operation) and log levels greater than 2 produce
193 massive amounts of data. Essentially, you should turn on logging
194 level 3 only when you're actively tracking a problem
195 in the Samba server. <a name="INDEX-10"/></p>
196
197
198 </div>
199
200
201
202 <div class="sect3"><a name="samba2-CHP-12-SECT-1.1.2"/>
203
204 <h3 class="head3">Activating and deactivating logging</h3>
205
206 <p><a name="INDEX-11"/><a name="INDEX-12"/>To turn logging on and off,
207 set the appropriate level in the <tt class="literal">[global]</tt> section
208 of <em class="filename">smb.conf</em>. Then, you can either restart Samba
209 or force the current daemon to reprocess the configuration file by
210 sending it a hangup (HUP) signal. You also can send the
211 <em class="emphasis">smbd</em> process a SIGUSR1 signal to increase its
212 log level by one while it's running, like this:</p>
213
214 <blockquote><pre class="code"># <tt class="userinput"><b>kill -SIGUSR1 1234</b></tt></pre></blockquote>
215
216 <p>or a SIGUSR2 signal to decrease it by one:</p>
217
218 <blockquote><pre class="code"># <tt class="userinput"><b>kill -SIGUSR2 1234</b></tt></pre></blockquote>
219
220
221 </div>
222
223
224
225 <div class="sect3"><a name="samba2-CHP-12-SECT-1.1.3"/>
226
227 <h3 class="head3">Logging by individual client systems or users</h3>
228
229 <p>An effective way to diagnose problems without hampering other users
230 is to assign different log levels for different systems in the
231 <tt class="literal">[global]</tt> section of the
232 <em class="filename">smb.conf</em> file. We can do this by building on the
233 strategy we presented earlier:</p>
234
235 <blockquote><pre class="code">[global]
236     log level = 0
237     log file = /usr/local/samba/var/log.%m
238     include = /usr/local/samba/lib/smb.conf.%m</pre></blockquote>
239
240 <p>These options instruct Samba to use unique configuration and log
241 files for each client that connects. Now all you have to do is create
242 an <em class="filename">smb.conf</em> file for a specific client system
243 with a <tt class="literal">log</tt> <tt class="literal">level</tt>
244 <tt class="literal">=</tt> <tt class="literal">3</tt> entry in it (the others
245 will pick up the default log level of 0) and use that log file to
246 track down the problem.</p>
247
248 <p>Similarly, if only particular users are experiencing a
249 problem&mdash;and it travels from system to system with
250 them&mdash;you can isolate logging to a specific user by adding the
251 following to the <em class="filename">smb.conf</em> file:</p>
252
253 <blockquote><pre class="code">[global]
254     log level = 0
255     log file = /usr/local/samba/var/log.%u
256     include = /usr/local/samba/lib/smb.conf.%u</pre></blockquote>
257
258 <p>Then you can create a unique <em class="filename">smb.conf</em> file for
259 each user you wish to monitor (e.g.,
260 <em class="filename">/usr/local/samba/lib/smb.conf.tim</em>). Files
261 containing the configuration option <tt class="literal">log</tt>
262 <tt class="literal">level</tt> <tt class="literal">=</tt> <tt class="literal">3</tt>
263 and only those users will get more detailed logging.<a name="INDEX-13"/><a name="INDEX-14"/></p>
264
265
266 </div>
267
268
269 </div>
270
271
272 <div class="sect2"><a name="samba2-CHP-12-SECT-1.2"/>
273
274 <h3 class="head2">Samba Test Utilities</h3>
275
276 <p><a name="INDEX-15"/><a name="INDEX-16"/>A rigorous set of tests that exercise
277 the major parts of Samba are described in various files in the
278 <em class="emphasis">/docs/textdocs</em> directory of the Samba
279 distribution kit, starting with <em class="emphasis">DIAGNOSIS.txt</em>.
280 The fault tree in this chapter is a more detailed version of the
281 basic tests suggested by the Samba Team, but it covers only
282 installation and reconfiguration diagnosis, such as
283 <em class="emphasis">DIAGNOSIS.txt</em>. The other files in the
284 <em class="emphasis">/docs</em> subdirectories address specific problems
285 and instruct you how to troubleshoot items not included in this book.
286 If the fault tree doesn't suffice, be sure to look
287 at
288 <em class="emphasis">DIAGNOSIS.txt</em><a name="INDEX-17"/>
289 and its friends.</p>
290
291
292 </div>
293
294
295 <div class="sect2"><a name="samba2-CHP-12-SECT-1.3"/>
296
297 <h3 class="head2">Unix Utilities</h3>
298
299 <p>Sometimes it's useful to use a tool outside the
300 Samba suite to examine what's happening inside the
301 server. Three diagnostic tools can be of particular help in debugging
302 Samba troubles: <em class="emphasis">trace</em>,
303 <em class="emphasis">tcpdump</em>, and <em class="emphasis">Ethereal</em>.</p>
304
305
306 <div class="sect3"><a name="samba2-CHP-12-SECT-1.3.1"/>
307
308 <h3 class="head3">Using trace</h3>
309
310 <p>The <em class="emphasis">trace</em><a name="INDEX-18"/> command masquerades under several
311 different names, depending on the operating system you are using. On
312 Linux it will be
313 <em class="emphasis">strace</em><a name="INDEX-19"/>; on Solaris you'll use
314 <em class="emphasis">truss</em><a name="INDEX-20"/>; SGI will have
315 <em class="emphasis">padc</em><a name="INDEX-21"/> and
316 <em class="emphasis">par</em><a name="INDEX-22"/>; and HP-UX will have
317 <em class="emphasis">trace</em> or
318 <em class="emphasis">tusc</em><a name="INDEX-23"/>. All have essentially the same
319 function, which is to display each operating system function call as
320 it is executed. This allows you to follow the execution of a program,
321 such as the Samba server, and often pinpoints the exact call that is
322 causing the difficulty.</p>
323
324 <p>One problem that <em class="emphasis">trace</em> can highlight is an
325 incorrect version of a dynamically linked library. This can happen if
326 you've downloaded prebuilt binaries of Samba.
327 You'll typically see the offending call at the end
328 of the <em class="emphasis">trace</em>, just before the program
329 terminates.</p>
330
331 <p>A sample <em class="emphasis">strace</em> output for the Linux operating
332 system follows. This is a small section of a larger file created
333 during the opening of a directory on the Samba server. Each line
334 lists a system call and includes its parameters and the return value.
335 If there was an error, the error value (e.g.,
336 <tt class="literal">ENOENT</tt>) and its explanation are also shown. You
337 can look up the parameter types and the errors that can occur in the
338 appropriate <em class="emphasis">trace</em> manual page for the operating
339 system you are using.</p>
340
341 <blockquote><pre class="code">chdir(&quot;/pcdisk/public&quot;)                 = 0
342 stat(&quot;mini/desktop.ini&quot;, 0xbffff7ec)    = -1 ENOENT (No such file or directory)
343 stat(&quot;mini&quot;, {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
344 stat(&quot;mini/desktop.ini&quot;, 0xbffff7ec)    = -1 ENOENT (No such file or directory)
345 open(&quot;mini&quot;, O_RDONLY)                  = 5
346 fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
347 fstat(5, {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
348 lseek(5, 0, SEEK_CUR)                   = 0
349 SYS_141(0x5, 0xbfffdbbc, 0xedc, 0xbfffdbbc, 0x80ba708) = 196
350 lseek(5, 0, SEEK_CUR)                   = 1024
351 SYS_141(0x5, 0xbfffdbbc, 0xedc, 0xbfffdbbc, 0x80ba708) = 0
352 close(5)                                = 0
353 stat(&quot;mini/desktop.ini&quot;, 0xbffff86c)    = -1 ENOENT (No such file or directory)
354 write(3, &quot;\0\0\0#\377SMB\10\1\0\2\0\200\1\0&quot;..., 39) = 39
355 SYS_142(0xff, 0xbffffc3c, 0, 0, 0xbffffc08) = 1
356 read(3, &quot;\0\0\0?&quot;, 4)                   = 4
357 read(3, &quot;\377SMBu\0\0\0\0\0\0\0\0\0\0\0\0&quot;..., 63) = 63
358 time(NULL)                              = 896143871</pre></blockquote>
359
360 <p>This example shows several <em class="emphasis">stat() calls</em> failing
361 to find the files they were expecting. You don't
362 have to be an expert to see that the file
363 <em class="emphasis">desktop.ini</em> is missing from that directory. In
364 fact, many difficult problems can be identified by looking for
365 obvious, repeatable errors with <em class="emphasis">trace</em>. Often,
366 you need not look further than the last message before a crash.</p>
367
368
369 </div>
370
371
372
373 <div class="sect3"><a name="samba2-CHP-12-SECT-1.3.2"/>
374
375 <h3 class="head3">Using tcpdump</h3>
376
377 <p>The <em class="emphasis">tcpdump</em><a name="INDEX-24"/> program, as extended by Andrew
378 <a name="INDEX-25"/>Tridgell,
379 allows you to monitor SMB <a name="INDEX-26"/>network
380 traffic in real time. A variety of output formats are available, and
381 you can filter the output to look at only a particular type of
382 traffic. You can examine all conversations between client and server,
383 including SMB and NMB broadcast messages. While its troubleshooting
384 capabilities lie mainly at the OSI network layer, you can still use
385 its output to get a general idea of what the server and client are
386 attempting to do.</p>
387
388 <p>A sample <em class="emphasis">tcpdump</em> log follows. In this instance,
389 the client has requested a directory listing, and the server has
390 responded appropriately, giving the directory names
391 <tt class="literal">homes</tt>, <tt class="literal">public</tt>,
392 <tt class="literal">IPC$</tt>, and <tt class="literal">temp</tt>
393 (we've added a few explanations on the right):</p>
394
395 <blockquote><pre class="code">$ <tt class="userinput"><b>tcpdump -v -s 255 -i eth0 port not telnet</b></tt>
396 SMB PACKET: SMBtrans (REQUEST)                <i class="lineannotation"> Request packet</i>
397 SMB Command   =  0x25                         <i class="lineannotation">Request was ls or dir</i>
398
399 [000] 01 00 00 10                             <i class="lineannotation">....</i>
400
401
402 &gt;&gt;&gt; NBT Packet                                <i class="lineannotation">Outer frame of SMB packet</i>
403 NBT Session Packet
404 Flags=0x0
405 Length=226
406 [lines skipped]
407                          
408 SMB PACKET: SMBtrans (REPLY)                  <i class="lineannotation">Beginning of a reply to  request</i>
409 SMB Command   =  0x25                         <i class="lineannotation">Command was an ls or dir</i>
410 Error class   =  0x0             
411 Error code    =  0                            <i class="lineannotation">No errors</i>
412 Flags1        =  0x80
413 Flags2        =  0x1
414 Tree ID       =  105
415 Proc ID       =  6075
416 UID           =  100
417 MID           =  30337
418 Word Count    =  10
419 TotParamCnt=8 
420 TotDataCnt=163 
421 Res1=0
422 ParamCnt=8 
423 ParamOff=55 
424 Res2=0 
425 DataCnt=163 
426 DataOff=63 
427 Res3=0
428 Lsetup=0
429 Param Data: (8 bytes)
430 [000] 00 00 00 00 05 00 05 00                           ........ 
431
432 Data Data: (135 bytes)                        <i class="lineannotation">Actual directory contents:</i>
433 [000] 68 6F 6D 65 73 00 00 00  00 00 00 00 00 00 00 00  homes... ........
434 [010] 64 00 00 00 70 75 62 6C  69 63 00 00 00 00 00 00  d...publ ic......
435 [020] 00 00 00 00 75 00 00 00  74 65 6D 70 00 00 00 00  ....u... temp....
436 [030] 00 00 00 00 00 00 00 00  76 00 00 00 49 50 43 24  ........ v...IPC$
437 [040] 00 00 00 00 00 00 00 00  00 00 03 00 77 00 00 00  ........ ....w...
438 [050] 64 6F 6E 68 61 6D 00 00  00 00 00 00 00 00 00 00  donham.. ........
439 [060] 92 00 00 00 48 6F 6D 65  20 44 69 72 65 63 74 6F  ....Home  Directo
440 [070] 72 69 65 73 00 00 00 49  50 43 20 53 65 72 76 69  ries...I PC Servi
441 [080] 63 65 20 28 53 61 6D                              ce (Sam</pre></blockquote>
442
443 <p>This is more of the same debugging session as we saw before with the
444 <em class="emphasis">trace</em> command: the listing of a directory. The options
445 we used were <em class="emphasis">-v</em> (verbose), <em class="emphasis">-i
446 eth0</em> to tell <em class="emphasis">tcpdump</em> on which
447 interface to listen (an Ethernet port), and <em class="emphasis">-s
448 255</em> to tell it to save the first 255 bytes of each packet
449 instead of the default: the first 68. The option
450 <tt class="literal">port</tt> <tt class="literal">not</tt>
451 <tt class="literal">telnet</tt> is used to avoid screens of telnet traffic,
452 because we were logged in to the server remotely. The
453 <em class="emphasis">tcpdump</em> program actually has quite a number of
454 options to filter just the traffic you want to look at. If
455 you've used <em class="emphasis">snoop</em> or
456 <em class="emphasis">etherdump</em>, it will look vaguely familiar.</p>
457
458 <p>You can download the modified <em class="emphasis">tcpdump</em> from the
459 Samba FTP server, located at
460 <a href="ftp://samba.anu.edu.au/pub/samba/tcpdump-smb">ftp://samba.anu.edu.au/pub/samba/tcpdump-smb</a>.
461 Other versions might not include support for the SMB protocol; if you
462 don't see output such as that shown in the example,
463 you'll need to use the SMB-enabled version.</p>
464
465
466 </div>
467
468
469
470 <div class="sect3"><a name="samba2-CHP-12-SECT-1.3.3"/>
471
472 <h3 class="head3">Using Ethereal</h3>
473
474 <p><a name="INDEX-27"/>Ethereal (<a href="http://www.ethereal.com">http://www.ethereal.com</a>) is a GUI-based
475 utility that performs the same basic function as
476 <em class="emphasis">tcpdump</em>. You might prefer Ethereal because it is
477 much easier to use. Once you have Ethereal running, just do the
478 following:</p>
479
480 <ol><li>
481 <p>Select Start from the Capture menu.</p>
482 </li><li>
483 <p>Click the OK button in the dialog box that appears. This will bring
484 up a dialog box showing how many packets Ethereal has seen. Perform
485 the actions on the system(s) in your network to reproduce the problem
486 you are analyzing.</p>
487 </li><li>
488 <p>Click the Stop button in the Ethereal dialog box to make it finish
489 collecting data.</p>
490 </li><li>
491 <p>In the main Ethereal window, click any item in the upper window to
492 view it in the lower window. In the lower window, click any of the
493 boxes containing a plus sign (<tt class="literal">+</tt>) to expand the
494 view.</p>
495 </li></ol>
496 <p>Ethereal does a good job of translating the content of the packets it
497 encounters into human-readable format, and you should have little
498 trouble seeing what happened on the network during the capture
499 period. <a name="INDEX-28"/><a name="INDEX-29"/></p>
500
501
502 </div>
503
504
505 </div>
506
507
508 </div>
509
510
511
512 <div class="sect1"><a name="samba2-CHP-12-SECT-2"/>
513
514 <h2 class="head1">The Fault Tree</h2>
515
516 <p><a name="INDEX-30"/><a name="INDEX-31"/><a name="INDEX-32"/><a name="INDEX-33"/>The fault
517 tree presented in this section is for diagnosing and fixing problems
518 that occur when you're installing and reconfiguring
519 Samba. It's an expanded form of the trouble and
520 diagnostic document <em class="filename">DIAGNOSIS.txt</em>, which is part
521 of the Samba distribution.</p>
522
523 <p>Before you set out to troubleshoot any part of the Samba suite, you
524 should know the following information:</p>
525
526 <ul><li>
527 <p>Your client IP address (we use 192.168.236.10)</p>
528 </li><li>
529 <p>Your server IP address (we use 192.168.236.86)</p>
530 </li><li>
531 <p>The netmask for your network (typically 255.255.255.0)</p>
532 </li><li>
533 <p>Whether the systems are all on the same subnet (ours are)</p>
534 </li></ul>
535 <p>For clarity, we've renamed the server in the
536 following examples to <tt class="literal">server.example.com</tt>, and the
537 client system to <tt class="literal">client.example.com</tt>.</p>
538
539
540 <div class="sect2"><a name="samba2-CHP-12-SECT-2.1"/>
541
542 <h3 class="head2">How to Use the Fault Tree</h3>
543
544 <p>Start the tests here, without skipping forward; it
545 won't take long (about 5 minutes) and might actually
546 save you time backtracking. Whenever a test succeeds, you will be
547 given a name of a section to which you can safely skip.</p>
548
549
550 </div>
551
552
553 <div class="sect2"><a name="samba2-CHP-12-SECT-2.2"/>
554
555 <h3 class="head2">Troubleshooting Low-Level IP</h3>
556
557 <p><a name="INDEX-34"/>The
558 first series of tests is that of the low-level services that Samba
559 needs to run. The tests in this section verify that:</p>
560
561 <ul><li>
562 <p>The IP software works</p>
563 </li><li>
564 <p>The Ethernet hardware works</p>
565 </li><li>
566 <p>Basic name service is in place</p>
567 </li></ul>
568 <p>Subsequent sections add TCP software, the Samba daemons
569 <em class="emphasis">smbd</em> and <em class="emphasis">nmbd</em>, host-based
570 access control, authentication and per-user access control, file
571 services, and browsing. The tests are described in considerable
572 detail to make them understandable by both technically oriented end
573 users and experienced systems and network administrators.</p>
574
575
576 <div class="sect3"><a name="samba2-CHP-12-SECT-2.2.1"/>
577
578 <h3 class="head3">Testing the networking software with ping</h3>
579
580 <p><a name="INDEX-35"/>The first command to enter
581 on both the server and the client is
582 <tt class="literal">ping</tt><a name="INDEX-36"/><a name="INDEX-37"/>
583 <tt class="literal">127.0.0.1</tt>. This pings the loopback address and
584 indicates whether any networking support is functioning. On Unix, you
585 can use <tt class="literal">ping</tt> <tt class="literal">127.0.0.1</tt> with the
586 statistics option and interrupt it after a few lines. On Sun
587 workstations, the command is typically
588 <tt class="literal">/usr/etc/ping</tt> <tt class="literal">-s</tt>
589 <tt class="literal">127.0.0.1</tt>; on Linux, just <tt class="literal">ping</tt>
590 <tt class="literal">127.0.0.1</tt>. On Windows clients, run
591 <tt class="literal">ping</tt> <tt class="literal">127.0.0.1</tt> in an MS-DOS
592 (command prompt) window, and it will stop by itself after four lines.</p>
593
594 <p>Here is an example on a Linux server:</p>
595
596 <blockquote><pre class="code">$ <tt class="userinput"><b>ping 127.0.0.1 </b></tt>
597 PING localhost: 56 data bytes 64 bytes from localhost (127.0.0.1): 
598 icmp-seq=0. time=1. ms 64 bytes from localhost (127.0.0.1): 
599 icmp-seq=1. time=0. ms 64 bytes from localhost (127.0.0.1): 
600 icmp-seq=2. time=1. ms ^C 
601 ----127.0.0.1 PING Statistics---- 
602 3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms)  
603 min/avg/max = 0/0/1</pre></blockquote>
604
605 <p>If you get &quot;ping: no answer from . . .
606 &quot; or &quot;100% packet
607 loss,&quot; you have no IP networking installed on the
608 system. The address <tt class="literal">127.0.0.1</tt> is the internal
609 loopback address and doesn't depend on the computer
610 being physically connected to a network. If this test fails, you have
611 a serious local problem. TCP/IP either isn't
612 installed or is seriously misconfigured. See your operating system
613 documentation if it's a Unix server. If
614 it's a Windows client, follow the instructions in
615 <a href="ch03.html">Chapter 3</a> to install networking support.</p>
616
617 <a name="samba2-CHP-12-NOTE-155"/><blockquote class="note"><h4 class="objtitle">TIP</h4>
618 <p>If <em class="emphasis">you're</em> the network manager,
619 some good references are Craig Hunt's
620 <em class="emphasis">TCP/IP Network Administration</em>, Chapter 11, and Craig Hunt and Robert Bruce
621 Thompson's <em class="emphasis">Windows NT TCP/IP Network
622 Administration</em>, both published by
623 O'Reilly.</p>
624 </blockquote>
625
626
627 </div>
628
629
630
631 <div class="sect3"><a name="samba2-CHP-12-SECT-2.2.2"/>
632
633 <h3 class="head3">Testing local name services with ping</h3>
634
635 <p><a name="INDEX-38"/>Next, try to ping
636 <tt class="literal">localhost</tt> on the Samba server. The
637 <tt class="literal">localhost</tt> hostname is the conventional hostname
638 for the <tt class="literal">127.0.0.1</tt> loopback interface, and it
639 should resolve to that address. After typing <tt class="literal">ping</tt>
640 <tt class="literal">localhost</tt>, you should see output similar to the
641 following:</p>
642
643 <blockquote><pre class="code">$  <tt class="userinput"><b>ping localhost  </b></tt>
644 PING localhost: 56 data bytes  64 bytes from localhost (127.0.0.1):
645 icmp-seq=0. time=0. ms  64 bytes from localhost (127.0.0.1): 
646 icmp-seq=1. time=0. ms  64 bytes from localhost (127.0.0.1): 
647 icmp-seq=2. time=0. ms  ^C</pre></blockquote>
648
649 <p>If this succeeds, try the same test on the client. Otherwise:</p>
650
651 <ul><li>
652 <p>If you get &quot;unknown host:
653 localhost,&quot; there is a problem resolving the
654 hostname <em class="filename">localhost</em> into a valid IP address.
655 (This might be as simple as a missing entry in a local
656 <em class="emphasis">hosts</em> file.) From here, skip down to
657 <a href="ch03.html#samba2-CHP-12-SECT-2.7">Section 12.2.7</a> later in this chapter.</p>
658 </li><li>
659 <p>If you get &quot;ping: no answer,&quot; or
660 &quot;100% packet loss,&quot; but pinging
661 <tt class="literal">127.0.0.1</tt> worked, name services is resolving to an
662 address, but it isn't the correct one. Check the
663 file or database (typically <em class="filename">/etc/hosts</em> on a Unix
664 system) that the name service is using to resolve addresses to ensure
665 that the entry is correct.</p>
666 </li></ul>
667
668 </div>
669
670
671
672 <div class="sect3"><a name="samba2-CHP-12-SECT-2.2.3"/>
673
674 <h3 class="head3">Testing the networking hardware with ping</h3>
675
676 <p><a name="INDEX-39"/>Next, ping the
677 server's network IP address from itself. This should
678 get you exactly the same results as pinging
679 <tt class="literal">127.0.0.1</tt>:</p>
680
681 <blockquote><pre class="code">$ <tt class="userinput"><b>ping 192.168.236.86 </b></tt>
682 PING 192.168.236.86: 56 data bytes 64 bytes from 192.168.236.86 (192.168.236.86): 
683 icmp-seq=0. time=1. ms 64 bytes from 192.168.236.86 (192.168.236.86): 
684 icmp-seq=1. time=0. ms 64 bytes from 192.168.236.86 (192.168.236.86): 
685 icmp-seq=2. time=1. ms ^C 
686 ----192.168.236.86 PING Statistics---- 
687 3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms)  
688 min/avg/max = 0/0/1</pre></blockquote>
689
690 <p>If this works on the server, repeat it for the client. Otherwise:</p>
691
692 <ul><li>
693 <p>If <tt class="literal">ping</tt> <em class="replaceable">network_ip</em>
694 fails on either the server or client, but <tt class="literal">ping</tt>
695 <tt class="literal">127.0.0.1</tt> works on that system, you have a TCP/IP
696 problem that is specific to the Ethernet network interface card on
697 the computer. Check with the documentation for the network card or
698 host operating system to determine how to configure it correctly.
699 However, be aware that on some operating systems, the
700 <em class="emphasis">ping</em> command appears to work even if the network
701 is disconnected, so this test doesn't always
702 diagnose all hardware problems.</p>
703 </li></ul>
704
705 </div>
706
707
708
709 <div class="sect3"><a name="samba2-CHP-12-SECT-2.2.4"/>
710
711 <h3 class="head3">Testing connections with ping</h3>
712
713 <p><a name="INDEX-40"/>Now, ping the server by name (instead
714 of its IP address)&mdash;once from the server and once from the
715 client. This is the general test for working network hardware:</p>
716
717 <blockquote><pre class="code">$ <tt class="userinput"><b>ping server </b></tt>
718 PING server.example.com: 56 data bytes 64 bytes from server.example.com (192.168.236.86): 
719 icmp-seq=0. time=1. ms 64 bytes from server.example.com (192.168.236.86): 
720 icmp-seq=1. time=0. ms 64 bytes from server.example.com (192.168.236.86): 
721 icmp-seq=2. time=1. ms ^C 
722 ----server.example.com PING Statistics---- 
723 3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms)  
724 min/avg/max = 0/0/1</pre></blockquote>
725
726 <p>If successful, this test tells us five things:</p>
727
728 <ul><li>
729 <p>The hostname (e.g., <tt class="literal">server</tt>) is being found by your
730 local name server.</p>
731 </li><li>
732 <p>The hostname has been expanded to the full name (e.g.,
733 <tt class="literal">server.example.com</tt>).</p>
734 </li><li>
735 <p>Its address is being returned (<tt class="literal">192.168.236.86</tt>).</p>
736 </li><li>
737 <p>The client has sent the Samba server four 56-byte UDP/IP packets.</p>
738 </li><li>
739 <p>The Samba server has replied to all four packets.</p>
740 </li></ul>
741 <p>If this test isn't successful, one of several things
742 can be wrong with the network:</p>
743
744 <ul><li>
745 <p>First, if you get <tt class="literal">ping</tt>: <tt class="literal">no</tt>
746 <tt class="literal">answer</tt>, or <tt class="literal">100%</tt>
747 <tt class="literal">packet</tt> <tt class="literal">loss</tt>,
748 you're not connecting to the network, the other
749 system isn't connecting, or one of the addresses is
750 incorrect. Check the addresses that the <em class="emphasis">ping</em>
751 command reports on each system, and ensure that they match the ones
752 you set up initially.</p>
753
754 <p>If not, there is at least one mismatched address between the two
755 systems. Try entering the command <tt class="literal">arp</tt>
756 <tt class="literal">-a</tt>, and see if there is an entry for the other
757 system. (The <em class="emphasis">arp</em> command stands for the Address
758 Resolution Protocol. The <tt class="literal">arp</tt> <tt class="literal">-a</tt>
759 command lists all the addresses known on the local system.) Here are
760 some things to try:</p>
761 <ul><li>
762 <p>If you receive a message like <tt class="literal">192.168.236.86</tt>
763 <tt class="literal">at</tt> <tt class="literal">(incomplete)</tt>, the Ethernet
764 address of 192.168.236.86 is unknown. This indicates a complete lack
765 of connectivity, and you're likely having a problem
766 at the very bottom of the TCP/IP protocol stack&mdash;the Ethernet
767 interface layer. This is discussed in Chapters 5 and 6 of
768 <em class="citetitle">TCP/IP Network Administration
769 </em>(O'Reilly).</p>
770 </li><li>
771 <p>If you receive a response similar to server
772 <tt class="literal">(192.168.236.86)</tt> <tt class="literal">at</tt>
773 <tt class="literal">8:0:20:12:7c:94</tt>, the server has been reached at
774 some time, or another system is answering on its behalf. However,
775 this means that <em class="emphasis">ping</em> should have worked: you may
776 have an intermittent networking or ARP problem.</p>
777 </li><li>
778 <p>If the IP address from ARP doesn't match the
779 addresses you expected, investigate and correct the addresses
780 manually.</p>
781 </li>
782 </ul>
783 </li>
784
785 <li>
786 <p>If each system can ping itself but not another, something is wrong on
787 the network between them.</p>
788 </li><li>
789 <p>If you get <tt class="literal">ping</tt>: <tt class="literal">network</tt>
790 <tt class="literal">unreachable</tt> or <tt class="literal">ICMP</tt>
791 <tt class="literal">Host</tt> <tt class="literal">Unreachable</tt>,
792 you're not receiving an answer, and more than one
793 network is probably involved.</p>
794
795 <p>In principle, you shouldn't try to troubleshoot SMB
796 clients and servers on different networks. Try to test a server and
797 client that are on the same network:</p>
798
799 <ol><li>
800 <p>First, perform the tests for <tt class="literal">ping</tt>:
801 <tt class="literal">no</tt> <tt class="literal">answer</tt> described earlier in
802 this section. If this doesn't identify the problem,
803 the remaining possibilities are the following: an address is wrong,
804 your netmask is wrong, a network is down, or the packets have been
805 stopped by a firewall.</p>
806 </li>
807 <li>
808 <p>Check both the address and the netmasks on source and destination
809 systems to see if something is obviously wrong. Assuming both systems
810 really are on the same network, they both should have the same
811 netmasks, and <em class="emphasis">ping</em> should report the correct
812 addresses. If the addresses are wrong, you'll need
813 to correct them. If they are correct, the programs might be confused
814 by an incorrect netmask. See <a href="ch12.html#samba2-CHP-12-SECT-2.8.1">Section 12.2.8.1</a>, later in this chapter.</p>
815 </li>
816 <li>
817 <p>If the commands are still reporting that the network is unreachable
818 and neither of the previous two conditions are in error, one network
819 really might be unreachable from the other. This, too, is an issue
820 for the network manager.</p>
821 </li></ol>
822 </li><li>
823 <p>If you get <tt class="literal">ICMP</tt>
824 <tt class="literal">Administratively</tt> <tt class="literal">Prohibited</tt>,
825 you've struck a firewall of some sort or a
826 misconfigured router. You will need to speak to your network security
827 officer.</p>
828 </li><li>
829 <p>If you get <tt class="literal">ICMP</tt> <tt class="literal">Host</tt>
830 <tt class="literal">redirect</tt> and <em class="emphasis">ping</em> reports
831 packets getting through, this is generally harmless:
832 you're simply being rerouted over the network.</p>
833 </li><li>
834 <p>If you get a host redirect and no <em class="emphasis">ping</em>
835 responses, you are being redirected, but no one is responding. Treat
836 this just like the <tt class="literal">Network</tt>
837 <tt class="literal">unreachable</tt> response, and check your addresses and
838 netmasks.</p>
839 </li><li>
840 <p>If you get <tt class="literal">ICMP</tt> <tt class="literal">Host</tt>
841 <tt class="literal">Unreachable</tt> <tt class="literal">from</tt>
842 <tt class="literal">gateway</tt> <tt class="literal">gateway</tt>
843 <tt class="literal">name</tt>, ping packets are being routed to another
844 network, but the other system isn't responding and
845 the router is reporting the problem on its behalf. Again, treat this
846 like a <tt class="literal">Network</tt> <tt class="literal">unreachable</tt>
847 response, and start checking addresses and netmasks.</p>
848 </li><li>
849 <p>If you get <tt class="literal">ping</tt>: <tt class="literal">unknown</tt>
850 <tt class="literal">host</tt> <tt class="literal">hostname</tt>, your
851 system's name is not known. This tends to indicate a
852 name service problem, which didn't affect
853 <tt class="literal">localhost</tt>. Have a look at <a href="ch12.html#samba2-CHP-12-SECT-2.7">Section 12.2.7</a>, later in this chapter.</p>
854 </li><li>
855 <p>If you get a partial success&mdash;with some pings failing but others
856 succeeding&mdash;you have either an intermittent problem between the
857 systems or an overloaded network. Ping a bit longer, and see if more
858 than about three percent of the packets fail. If so, check it with
859 your network manager: a problem might just be starting. However, if
860 only a few fail, or if you happen to know some massive network
861 program is running, don't worry unduly. The ICMP
862 (and UDP) protocols used by <em class="emphasis">ping</em> are allowed to
863 drop occasional packets.</p>
864 </li><li>
865 <p>If you get a response such as <tt class="literal">smtsvr.antares.net</tt>
866 <tt class="literal">is</tt> <tt class="literal">alive</tt> when you actually
867 pinged <tt class="literal">client.example.com</tt>, either
868 you're using someone else's address
869 or the system has multiple names and addresses. If the address is
870 wrong, the name service is clearly the culprit;
871 you'll need to change the address in the name
872 service database to refer to the correct system. This is discussed in
873 <a href="ch12.html#samba2-CHP-12-SECT-2.7">Section 12.2.7</a>, later in this
874 chapter.</p>
875
876 <p>Servers are often <em class="emphasis">multihomed</em> &mdash;i.e.,
877 connected to more than one network, with different names on each net.
878 If you are getting a response from an unexpected name on a multihomed
879 server, look at the address and see if it's on your
880 network (see <a href="ch12.html#samba2-CHP-12-SECT-2.8.1">Section 12.2.8.1</a>, later in this chapter). If
881 so, you should use that address, rather than one on a different
882 network, for both performance and reliability reasons.</p>
883
884 <p>Servers can also have multiple names for a single Ethernet address,
885 especially if they are web servers. This is harmless, albeit
886 startling. You probably will want to use the official (and permanent)
887 name, rather than an alias that might change.</p>
888 </li><li>
889 <p>If everything works but the IP address reported is
890 <tt class="literal">127.0.0.1</tt>, you have a name service error. This
891 typically occurs when an operating-system installation program
892 generates an <em class="filename">/etc/hosts</em> line similar to
893 <tt class="literal">127.0.0.1</tt> <tt class="literal">localhost</tt>
894 <em class="emphasis">hostname.domainname</em>. The localhost line should
895 say <tt class="literal">127.0.0.1</tt> <tt class="literal">localhost</tt> or
896 <tt class="literal">127.0.0.1</tt> <tt class="literal">localhost</tt>
897 <tt class="literal">loghost</tt>. Correct it, lest it cause failures to
898 negotiate who is the master browse list holder and who is the master
899 browser. It can also cause (ambiguous) errors in later tests.</p>
900 </li></ul>
901 <p>If this worked from the server, repeat it from the client. <a name="INDEX-41"/>
902 <a name="INDEX-42"/><a name="INDEX-43"/></p>
903
904
905 </div>
906
907
908 </div>
909
910
911 <div class="sect2"><a name="samba2-CHP-12-SECT-2.3"/>
912
913 <h3 class="head2">Troubleshooting TCP</h3>
914
915 <p><a name="INDEX-44"/><a name="INDEX-45"/>Now that
916 you've tested IP, UDP, and a name service with
917 <em class="emphasis">ping</em>, it's time to test TCP.
918 Browsing and <em class="emphasis">ping</em> use ICMP and UDP; file and
919 print services (shares) use TCP. Both depend on IP as a lower layer,
920 and all four depend on name services. Testing TCP is most
921 conveniently done using the FTP program.</p>
922
923
924 <div class="sect3"><a name="samba2-CHP-12-SECT-2.3.1"/>
925
926 <h3 class="head3">Testing TCP with FTP</h3>
927
928 <p>Try connecting via FTP, once from the server to itself, and once from
929 the client to the server:</p>
930
931 <blockquote><pre class="code">$ <tt class="userinput"><b>ftp server</b></tt>
932 Connected to server.example.com. 
933 220 server.example.com FTP server (Version 6.2/OpenBSD/Linux-0.10) ready.
934  Name (server:davecb): 
935 331 Password required for davecb. 
936 Password: 
937 230 User davecb logged in.
938  ftp&gt;<tt class="userinput"><b> quit </b></tt>
939 221 Goodbye.</pre></blockquote>
940
941 <p>If this worked, skip to the next section, <a href="ch12.html#samba2-CHP-12-SECT-2.4">Section 12.2.4</a>. Otherwise:</p>
942
943 <ul><li>
944 <p>If you received the message <tt class="literal">server</tt>:
945 <tt class="literal">unknown</tt> <tt class="literal">host</tt>, name service has
946 failed. Go back to the corresponding <em class="emphasis">ping</em> step,
947 <a href="ch12.html#samba2-CHP-12-SECT-2.2.2">Section 12.2.2.2</a>, and rerun those tests
948 to see why name lookup failed.</p>
949 </li><li>
950 <p>If you received <tt class="literal">ftp</tt>: <tt class="literal">connect</tt>:
951 <tt class="literal">Connection</tt> <tt class="literal">refused</tt>, the system
952 isn't running an FTP daemon. This is mildly unusual
953 on Unix servers. Optionally, you might try this test by connecting to
954 the system using <em class="emphasis">telnet</em> instead of
955 <em class="emphasis">ftp</em>; the messages are very similar, and
956 <em class="emphasis">telnet</em> uses TCP as well.</p>
957 </li><li>
958 <p>If there was a long pause, and then <tt class="literal">ftp</tt>:
959 <tt class="literal">connect</tt>: <tt class="literal">Connection</tt>
960 <tt class="literal">timed</tt> <tt class="literal">out</tt>, the system
961 isn't reachable. Return to <a href="ch12.html#samba2-CHP-12-SECT-2.2.4">Section 12.2.2.4</a>.</p>
962 </li><li>
963 <p>If you received <tt class="literal">530</tt> <tt class="literal">Logon</tt>
964 <tt class="literal">Incorrect</tt>, you connected successfully, but
965 you've just found a different problem. You likely
966 provided an incorrect username or password. Try again, making sure
967 you use your username from the Unix server and type your password
968 correctly.</p>
969 </li></ul>
970
971 </div>
972
973
974 </div>
975
976
977 <div class="sect2"><a name="samba2-CHP-12-SECT-2.4"/>
978
979 <h3 class="head2">Troubleshooting Server Daemons</h3>
980
981 <p><a name="INDEX-46"/>Once
982 you've confirmed that TCP networking is working
983 properly, the next step is to make sure the daemons are running on
984 the server. This takes three separate tests because no single one of
985 the following will decisively prove that they're
986 working correctly.</p>
987
988 <p>To be sure they're running, you need to find out
989 whether the daemons:</p>
990
991 <ol><li>
992 <p>Have started</p>
993 </li><li>
994 <p>Are registered or bound to a TCP/IP port by the operating system</p>
995 </li><li>
996 <p>Are actually paying attention</p>
997 </li></ol>
998
999 <div class="sect3"><a name="samba2-CHP-12-SECT-2.4.1"/>
1000
1001 <h3 class="head3">Tracking daemon startup</h3>
1002
1003 <p><a name="INDEX-47"/>First, check the Samba logs. If
1004 you've started the daemons, the message
1005 <tt class="literal">smbd</tt> <tt class="literal">version</tt>
1006 <tt class="literal">number</tt> <tt class="literal">started</tt> should appear.
1007 If it doesn't, you need to restart the Samba
1008 daemons.</p>
1009
1010 <p>If the daemon reports that it has indeed started, look out for
1011 <tt class="literal">bind</tt> <tt class="literal">failed</tt>
1012 <tt class="literal">on</tt> <tt class="literal">port</tt> <tt class="literal">139</tt>
1013 <tt class="literal">socket_addr=0</tt> <tt class="literal">(Address</tt>
1014 <tt class="literal">already</tt> <tt class="literal">in</tt>
1015 <tt class="literal">use)</tt>. This means another daemon has been started
1016 on port 139 (<em class="emphasis">smbd</em> ). Also,
1017 <em class="emphasis">nmbd</em> will report a similar failure if it cannot
1018 bind to port 137. Either you've started them twice,
1019 or the <em class="emphasis">inetd</em> server has tried to provide a
1020 daemon for you. If it's the latter,
1021 we'll diagnose that in a moment.</p>
1022
1023
1024 </div>
1025
1026
1027
1028 <div class="sect3"><a name="samba2-CHP-12-SECT-2.4.2"/>
1029
1030 <h3 class="head3">Looking for daemon processes with ps</h3>
1031
1032 <p><a name="INDEX-48"/>Another way to make sure the daemons are
1033 running is to check their processes on the system. Use the
1034 <em class="emphasis">ps</em><a name="INDEX-49"/> command on the server with the
1035 &quot;long&quot; option for your system type
1036 (commonly <tt class="literal">ps</tt> <tt class="literal">ax</tt> or
1037 <tt class="literal">ps</tt> <tt class="literal">-ef</tt>), and see whether
1038 <em class="emphasis">smbd</em> and <em class="emphasis">nmbd</em> are already
1039 running. This often looks like the following:</p>
1040
1041 <blockquote><pre class="code">$ <tt class="userinput"><b>ps ax</b></tt>
1042  PID TTY STAT TIME   COMMAND
1043  1   ?   S    0:03   init [2] 
1044  2   ?   SW   0:00   (kflushd)
1045 <i class="lineannotation">(...many lines of processes...) </i>
1046  234 ?   S    0:14   nmbd -D3
1047  237 ?   S    0:11   smbd -D3
1048 <i class="lineannotation">(...more lines, possibly including more smbd lines...)</i></pre></blockquote>
1049
1050 <p>This example illustrates that <em class="emphasis">smbd</em> and
1051 <em class="emphasis">nmbd</em> have already started as standalone daemons
1052 (the <em class="emphasis">-D</em> option) at log level 3.</p>
1053
1054
1055 </div>
1056
1057
1058
1059 <div class="sect3"><a name="samba2-CHP-12-SECT-2.4.3"/>
1060
1061 <h3 class="head3">Looking for daemons bound to ports</h3>
1062
1063 <p><a name="INDEX-50"/>Next, the daemons have to be registered
1064 with the operating system so that they can get access to TCP/IP
1065 ports. The <em class="emphasis">netstat</em> command will tell you if this
1066 has been done. Run the command <tt class="literal">netstat</tt>
1067 <tt class="literal">-a</tt> on the server, and look for lines mentioning
1068 <tt class="literal">netbios</tt>, <tt class="literal">137</tt>, or
1069 <tt class="literal">139</tt>:</p>
1070
1071 <blockquote><pre class="code">$ <tt class="userinput"><b>netstat -a </b></tt>
1072 Active Internet connections (including servers) 
1073 Proto Recv-Q Send-Q  Local Address          Foreign Address        (state) 
1074 udp   0      0       *.137                  *.* 
1075 tcp   0      0       *.139                  *.*                    LISTEN 
1076 tcp   8370   8760    server.139             client.1439            ESTABLISHED</pre></blockquote>
1077
1078 <p>Among similar lines, there should be at least one UDP line for
1079 <tt class="literal">*.netbios-</tt> or <tt class="literal">*.137</tt>. This
1080 indicates that the <em class="emphasis">nmbd</em> server is registered and
1081 (we hope) is waiting to answer requests. There should also be at
1082 least one TCP line mentioning <tt class="literal">*.netbios-</tt> or
1083 <tt class="literal">*.139</tt>, and it will probably be in the LISTEN
1084 state. This means that <em class="emphasis">smbd</em> is up and listening
1085 for connections.</p>
1086
1087 <p>There might be other TCP lines indicating connections from
1088 <em class="emphasis">smbd</em> to clients, one for each client. These are
1089 usually in the ESTABLISHED state. If there are
1090 <em class="emphasis">smbd</em> lines in the ESTABLISHED state,
1091 <em class="emphasis">smbd</em> is definitely running. If there is only one
1092 line in the LISTEN state, we're not sure yet. If
1093 both of the lines are missing, a daemon has not succeeded in
1094 starting, so it's time to check the logs and then go
1095 back to <a href="ch02.html">Chapter 2</a>.</p>
1096
1097 <p>If there is a line for each client, it might be coming either from a
1098 Samba daemon or from the master IP daemon,
1099 <em class="emphasis">inetd</em>. It's quite possible that
1100 your <em class="emphasis">inetd</em> startup file contains lines that
1101 start Samba daemons without your realizing it; for instance, the
1102 lines might have been placed there if you installed Samba as part of
1103 a Linux distribution. The daemons started by
1104 <em class="emphasis">inetd</em> prevent ours from running. This problem
1105 typically produces log messages such as <tt class="literal">bind</tt>
1106 <tt class="literal">failed</tt> <tt class="literal">on</tt>
1107 <tt class="literal">port</tt> <tt class="literal">139</tt>
1108 <tt class="literal">socket</tt> <tt class="literal">addr=0</tt>
1109 <tt class="literal">(Address</tt> <tt class="literal">already</tt>
1110 <tt class="literal">in</tt> <tt class="literal">use)</tt>.</p>
1111
1112 <p>Check your <em class="filename">/etc/inetd.conf</em> ; unless
1113 you're intentionally starting the daemons from
1114 there, <tt class="literal">netbios-ns</tt> (UDP port 137) or
1115 <tt class="literal">netbios-ssn</tt> (tcp port 139) servers should be
1116 mentioned there. If your system is providing an SMB daemon via
1117 <em class="emphasis">inetd</em>, lines such as the following will appear
1118 in the <em class="filename">inetd.conf</em> file:</p>
1119
1120 <blockquote><pre class="code">netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd
1121 netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd</pre></blockquote>
1122
1123 <p>If your system uses <em class="emphasis">xinetd</em> instead of
1124 <em class="emphasis">inetd</em>, see <a href="ch02.html">Chapter 2</a> for
1125 details concerning its configuration.</p>
1126
1127
1128 </div>
1129
1130
1131
1132 <div class="sect3"><a name="samba2-CHP-12-SECT-2.4.4"/>
1133
1134 <h3 class="head3">Checking smbd with telnet</h3>
1135
1136 <p><a name="INDEX-51"/><a name="INDEX-52"/><a name="INDEX-53"/>Ironically, the easiest way to test that
1137 the <em class="emphasis">smbd</em> server is actually working is to send
1138 it a meaningless message and see if it is rejected. Try something
1139 such as the following:</p>
1140
1141 <blockquote><pre class="code">$ <tt class="userinput"><b>echo &quot;hello&quot; | telnet localhost 139 </b></tt>
1142 Trying
1143 Trying 192.168.236.86 ... 
1144 Connected to localhost. Escape character is '^]'. 
1145 Connection closed by foreign host.</pre></blockquote>
1146
1147 <p>This sends an erroneous but harmless message to
1148 <em class="emphasis">smbd</em>. If you get a <tt class="literal">Connected</tt>
1149 message followed by a <tt class="literal">Connection</tt>
1150 <tt class="literal">closed</tt> message, the test was a success. You have
1151 an <em class="emphasis">smbd</em> daemon listening on the port and
1152 rejecting improper connection messages. On the other hand, if you get
1153 <tt class="literal">telnet</tt>: <tt class="literal">connect</tt>:
1154 <tt class="literal">Connection</tt> <tt class="literal">refused</tt>, most likely
1155 no daemon is present. Check the logs and go back to <a href="ch02.html">Chapter 2</a>.</p>
1156
1157 <p>Regrettably, there isn't an easy test for
1158 <em class="emphasis">nmbd</em>. If the <em class="emphasis">telnet</em> test
1159 and the <em class="emphasis">netstat</em> test both say that an
1160 <em class="emphasis">smbd</em> is running, there is a good chance that
1161 <em class="emphasis">netstat</em> will also be correct about
1162 <em class="emphasis">nmbd</em> running.</p>
1163
1164
1165 </div>
1166
1167
1168
1169 <div class="sect3"><a name="samba2-CHP-12-SECT-2.4.5"/>
1170
1171 <h3 class="head3">Testing daemons with testparm</h3>
1172
1173 <p><a name="INDEX-54"/><a name="INDEX-55"/>Once you know
1174 there's a daemon, you should always run
1175 <em class="emphasis">testparm</em>, in hopes of getting something such as
1176 the following:</p>
1177
1178 <blockquote><pre class="code">$ <tt class="userinput"><b>testparm </b></tt>
1179 Load smb config files from /opt/samba/lib/smb.conf
1180 Processing section &quot;[homes]&quot; 
1181 Processing section &quot;[printers]&quot; ... 
1182 Processing section &quot;[tmp]&quot; 
1183 Loaded services file OK. ...</pre></blockquote>
1184
1185 <p>The <em class="emphasis">testparm</em> program normally reports the
1186 processing of a series of sections and responds with
1187 <tt class="literal">Loaded</tt> <tt class="literal">services</tt>
1188 <tt class="literal">file</tt> <tt class="literal">OK</tt> if it succeeds. If not,
1189 it reports one or more of the following messages, which also appear
1190 in the logs as noted:</p>
1191
1192 <dl>
1193 <dt><b>Allow/Deny connection from account (n) to service</b></dt>
1194 <dd>
1195 <p>A <em class="emphasis">testparm</em>-only message produced if you have
1196 <tt class="literal">valid</tt> <tt class="literal">user</tt> or
1197 <tt class="literal">invalid</tt> <tt class="literal">user</tt> options set in
1198 your <em class="emphasis">smb.conf</em>. You will want to make sure that
1199 you are on the valid user list, and that <tt class="literal">root</tt>,
1200 <tt class="literal">bin</tt>, etc., are on the invalid user list. If you
1201 don't, you will not be able to connect, or users who
1202 shouldn't <em class="emphasis">will</em> be able to.</p>
1203 </dd>
1204
1205
1206
1207 <dt><b>Warning: You have some share names that are longer than eight chars</b></dt>
1208 <dd>
1209 <p>For anyone using Windows for Workgroups and older clients. They fail
1210 to connect to shares with long names, producing an overflow message
1211 that sounds confusingly like a memory overflow.</p>
1212 </dd>
1213
1214
1215
1216 <dt><b>Warning: [name] service MUST be printable!</b></dt>
1217 <dd>
1218 <p>A printer share lacks a <tt class="literal">printable</tt>
1219 <tt class="literal">=</tt> <tt class="literal">yes</tt> option.</p>
1220 </dd>
1221
1222
1223
1224 <dt><b>No path in service name using [name]</b></dt>
1225 <dd>
1226 <p>A file share doesn't know which directory to provide
1227 to the user, or a print share doesn't know which
1228 directory to use for spooling. If no path is specified, the service
1229 will try to run with a path of <em class="emphasis">/tmp</em>, which might
1230 not be what you want.</p>
1231 </dd>
1232
1233
1234
1235 <dt><b>Note: Servicename is flagged unavailable</b></dt>
1236 <dd>
1237 <p>Just a reminder that you have used the <tt class="literal">available</tt>
1238 <tt class="literal">=</tt> <tt class="literal">no</tt> option in a share.</p>
1239 </dd>
1240
1241
1242
1243 <dt><b>Can't find include file [name] </b></dt>
1244 <dd>
1245 <p>A configuration file referred to by an <tt class="literal">include</tt>
1246 option did not exist. If you were including the file unconditionally,
1247 this is an error and probably a serious one: the share will not have
1248 the configuration you intended. If you were including it based on one
1249 of the <tt class="literal">%</tt> variables, such as <tt class="literal">%a</tt>
1250 (architecture), you will need to decide whether, for example, a
1251 missing Windows for Workgroups configuration file is a problem. It
1252 often isn't.</p>
1253 </dd>
1254
1255
1256
1257 <dt><b>Can't copy service name, unable to copy to itself</b></dt>
1258 <dd>
1259 <p>You tried to copy an <em class="filename">smb.conf</em> section into
1260 itself.</p>
1261 </dd>
1262
1263
1264
1265 <dt><b>Unable to copy service&mdash;source not found: [name]</b></dt>
1266 <dd>
1267 <p>Indicates a missing or misspelled section in a
1268 <tt class="literal">copy</tt> <tt class="literal">=</tt> option.</p>
1269 </dd>
1270
1271
1272
1273 <dt><b>Ignoring unknown parameter name </b></dt>
1274 <dd>
1275 <p>Typically indicates an obsolete, misspelled, or unsupported option.</p>
1276 </dd>
1277
1278
1279
1280 <dt><b>Global parameter name found in service section </b></dt>
1281 <dd>
1282 <p>Indicates that a global-only parameter has been used in an individual
1283 share. Samba ignores the parameter.</p>
1284 </dd>
1285
1286 </dl>
1287
1288 <p>After the <em class="emphasis">testparm</em> test, repeat it with
1289 (exactly) three parameters: the name of your
1290 <em class="filename">smb.conf</em> file, the name of your client, and its
1291 IP address:</p>
1292
1293 <blockquote><pre class="code"># <tt class="userinput"><b>testparm /usr/local/samba/lib/smb.conf client 192.168.236.10</b></tt></pre></blockquote>
1294
1295 <p>This will run one more test that checks the hostname and address
1296 against <tt class="literal">hosts</tt> <tt class="literal">allow</tt> and
1297 <tt class="literal">hosts</tt> <tt class="literal">deny</tt> options and might
1298 produce the <tt class="literal">Allow</tt> <tt class="literal">connection</tt>
1299 <tt class="literal">from</tt> <tt class="literal">hostname</tt>
1300 <tt class="literal">to</tt> <tt class="literal">service</tt> and/or
1301 <tt class="literal">Deny</tt> <tt class="literal">connection</tt>
1302 <tt class="literal">from</tt> <tt class="literal">hostname</tt>
1303 <tt class="literal">to</tt> <tt class="literal">service</tt> messages for the
1304 client system. These messages indicate that you have
1305 <tt class="literal">hosts</tt> <tt class="literal">allow</tt> and/or
1306 <tt class="literal">hosts</tt> <tt class="literal">deny</tt> options in your
1307 <em class="filename">smb.conf</em>, and they prohibit access from the
1308 client system. <a name="INDEX-56"/></p>
1309
1310
1311 </div>
1312
1313
1314 </div>
1315
1316
1317 <div class="sect2"><a name="samba2-CHP-12-SECT-2.5"/>
1318
1319 <h3 class="head2">Troubleshooting SMB Connections</h3>
1320
1321 <p><a name="INDEX-57"/><a name="INDEX-58"/>Now
1322 that you know the servers are up, you need to make sure
1323 they're running properly. We start by placing a
1324 simple <em class="filename">smb.conf</em> file in the
1325 <em class="filename">/usr/local/samba/lib</em> directory.</p>
1326
1327
1328 <div class="sect3"><a name="samba2-CHP-12-SECT-2.5.1"/>
1329
1330 <h3 class="head3">A minimal smb.conf file</h3>
1331
1332 <p>In the following tests, we assume you have a
1333 <tt class="literal">[temp]</tt> share suitable for testing, plus at least
1334 one account. An <em class="filename">smb.conf</em> file that includes just
1335 these is as follows:</p>
1336
1337 <blockquote><pre class="code">[global] 
1338     workgroup = <em class="replaceable">EXAMPLE</em> 
1339     security = user
1340     browsable = yes 
1341     local master = yes 
1342 [homes] 
1343     guest ok = no 
1344     browsable = no
1345 [temp] 
1346     path = /tmp 
1347     public = yes</pre></blockquote>
1348 <a name="samba2-CHP-12-NOTE-156"/><blockquote class="note"><h4 class="objtitle">WARNING</h4>
1349 <p>The <tt class="literal">public</tt> <tt class="literal">=</tt>
1350 <tt class="literal">yes</tt> option in the <tt class="literal">[temp]</tt> share
1351 is just for testing. You probably don't want people
1352 without accounts storing things on your Samba server, so you should
1353 comment it out when you're done.</p>
1354 </blockquote>
1355
1356
1357 </div>
1358
1359
1360
1361 <div class="sect3"><a name="samba2-CHP-12-SECT-2.5.2"/>
1362
1363 <h3 class="head3">Testing locally with smbclient</h3>
1364
1365 <p><a name="INDEX-59"/><a name="INDEX-60"/>The first test is to ensure that the
1366 server can list its own services (shares). Run the command
1367 <tt class="literal">smbclient</tt> <em class="emphasis">-L</em>
1368 <tt class="literal">localhost</tt> <tt class="literal">-U%</tt> to connect to the
1369 server from itself, and specify the guest user. You should see the
1370 following:</p>
1371
1372 <blockquote><pre class="code">$ <tt class="userinput"><b>smbclient -L localhost -U% </b></tt>
1373 Server time is Wed May 27 17:57:40 2002 Timezone is UTC-4.0
1374 Server=[localhost] 
1375 User=[davecb] 
1376 Workgroup=[EXAMPLE] 
1377 Domain=[EXAMPLE]
1378     Sharename      Type      Comment 
1379     ---------      -----     ----------
1380     temp           Disk
1381     IPC$           IPC       IPC Service (Samba 1.9.18) 
1382     homes          Disk      Home directories
1383 This machine does not have a browse list</pre></blockquote>
1384
1385 <p>If you received this output, move on to the next section, <a href="ch12.html#samba2-CHP-12-SECT-2.5.3">Section 12.2.5.3</a>. On the other hand, if you
1386 receive an error, check the following:</p>
1387
1388 <ul><li>
1389 <p>If you get <tt class="literal">Get_hostbyname</tt>:
1390 <tt class="literal">unknown</tt> <tt class="literal">host</tt>
1391 <tt class="literal">localhost</tt>, either you've spelled
1392 its name wrong or there actually is a problem (which should have been
1393 seen back in <a href="ch12.html#samba2-CHP-12-SECT-2.2.2">Section 12.2.2.2</a>). In the
1394 latter case, move on to <a href="ch12.html#samba2-CHP-12-SECT-2.7">Section 12.2.7</a>, later in this chapter.</p>
1395 </li><li>
1396 <p>If you get <tt class="literal">Connect</tt> <tt class="literal">error</tt>:
1397 <tt class="literal">Connection</tt> <tt class="literal">refused</tt>, the server
1398 was found, but it wasn't running an
1399 <em class="emphasis">nmbd</em> daemon. Skip back to
1400 <a href="ch12.html#samba2-CHP-12-SECT-2.4">Section 12.2.4</a>,
1401 earlier in this chapter, and retest the daemons.</p>
1402 </li><li>
1403 <p>If you get the message <tt class="literal">Your</tt>
1404 <tt class="literal">server</tt> <tt class="literal">software</tt>
1405 <tt class="literal">is</tt> <tt class="literal">being</tt>
1406 <tt class="literal">unfriendly</tt>, the initial session request packet got
1407 a garbage response from the server. The server might have crashed or
1408 started improperly. The common causes of this can be discovered by
1409 scanning the logs for the following:</p>
1410 <ul><li>
1411 <p>Invalid command-line parameters to <em class="emphasis">smbd</em> ; see
1412 the <em class="emphasis">smbd</em> manual page.</p>
1413 </li><li>
1414 <p>A fatal problem with the <em class="filename">smb.conf</em> file that
1415 prevents the startup of <em class="emphasis">smbd</em>. Always check your
1416 changes with <em class="emphasis">testparm</em>, as was done in <a href="ch12.html#samba2-CHP-12-SECT-2.4.5">Section 12.2.4.5</a>, earlier in this chapter.</p>
1417 </li><li>
1418 <p>Missing directories where Samba is supposed to keep its log and lock
1419 files.</p>
1420 </li><li>
1421 <p>The presence of a server already on the port (139 for
1422 <em class="emphasis">smbd</em>, 137 for <em class="emphasis">nmbd</em> ),
1423 preventing the daemon from starting.</p>
1424 </li></ul>
1425 </li>
1426 <li>
1427 <p>If you're using <em class="emphasis">inetd</em> (or
1428 xinetd ) instead of standalone daemons, be sure to check your
1429 <em class="filename">/etc/inetd.conf</em> (or xinetd configuration files)
1430 and <em class="filename">/etc/services</em> entries against their manual
1431 pages for errors as well.</p>
1432 </li><li>
1433 <p>If you get a <tt class="literal">Password</tt>: prompt, your guest account
1434 is not set up properly. The <em class="emphasis">-U%</em> option tells
1435 <em class="emphasis">smbclient</em> to do a &quot;null
1436 login,&quot; which requires that the guest account be
1437 present but does not require it to have any privileges.</p>
1438 </li><li>
1439 <p>If you get the message <tt class="literal">SMBtconX</tt>
1440 <tt class="literal">failed</tt>. <tt class="literal">ERRSRV--ERRaccess</tt>, you
1441 aren't permitted access to the server. This normally
1442 means you have a <tt class="literal">hosts</tt> <tt class="literal">allow</tt>
1443 option that doesn't include the server or a
1444 <tt class="literal">hosts</tt> <tt class="literal">deny</tt> option that does.
1445 Recheck with the command <tt class="literal">testparm</tt>
1446 <tt class="literal">smb.conf</tt> <em class="replaceable">your_hostname</em>
1447 <em class="replaceable">your_ip_address</em> (see
1448 <a href="ch12.html#samba2-CHP-12-SECT-2.4.5">Section 12.2.4.5</a>),
1449 and correct any unintended prohibitions.</p>
1450 </li></ul>
1451
1452 </div>
1453
1454
1455
1456 <div class="sect3"><a name="samba2-CHP-12-SECT-2.5.3"/>
1457
1458 <h3 class="head3">Testing connections with smbclient</h3>
1459
1460 <p><a name="INDEX-61"/><a name="INDEX-62"/>Run the command
1461 <tt class="literal">smbclient</tt>
1462 <tt class="literal">\\</tt><em class="replaceable">server</em><tt class="literal">\temp</tt>
1463 to connect to the server's <tt class="literal">[temp]</tt>
1464 share and to see if you can connect to a file service. You should get
1465 the following response:</p>
1466
1467 <blockquote><pre class="code">$ <tt class="userinput"><b>smbclient '\\server\temp' </b></tt>
1468 Server time is Tue May  5 09:49:32 2002 Timezone is UTC-4.0 Password:
1469 <b class="emphasis-bold">smb: \&gt; quit</b></pre></blockquote>
1470 <p>You might receive the following errors:</p>
1471
1472 <ul><li>
1473 <p>If you get <tt class="literal">Get_Hostbyname</tt>:
1474 <tt class="literal">Unknown</tt> <tt class="literal">host</tt>
1475 <tt class="literal">name</tt>, <tt class="literal">Connect</tt>
1476 <tt class="literal">error</tt>: <tt class="literal">Connection</tt>
1477 <tt class="literal">refused</tt>, or <tt class="literal">Your</tt>
1478 <tt class="literal">server</tt> <tt class="literal">software</tt>
1479 <tt class="literal">is</tt> <tt class="literal">being</tt>
1480 <tt class="literal">unfriendly</tt>, see the previous section,
1481 <a href="ch12.html#samba2-CHP-12-SECT-2.5.2">Section 12.2.5.2</a>, for
1482 the diagnoses.</p>
1483 </li><li>
1484 <p>If you get the message <tt class="literal">servertemp</tt>:
1485 <tt class="literal">Not</tt> <tt class="literal">enough</tt>
1486 <tt class="literal">`\</tt>'
1487 <tt class="literal">characters</tt> <tt class="literal">in</tt>
1488 <tt class="literal">service</tt>, you likely didn't quote
1489 the address, so Unix stripped off backslashes. You can also write the
1490 command:</p>
1491
1492 <blockquote><pre class="code">smbclient \\\\<em class="replaceable">server</em>\\temp</pre></blockquote>
1493
1494 <p>or:</p>
1495 <blockquote><pre class="code">smbclient //<em class="replaceable">server</em>/temp</pre></blockquote>
1496 </li>
1497 </ul>
1498 <p>Now, provide your Unix account password to the
1499 <tt class="literal">Password</tt>: prompt. If you then get an
1500 <tt class="literal">smb</tt>: <tt class="literal">\&gt;</tt> prompt, it worked.
1501 Enter <tt class="literal">quit</tt> and continue on to the next section,
1502 <a href="ch12.html#samba2-CHP-12-SECT-2.5.4">Section 12.2.5.4</a>. If
1503 you got <tt class="literal">SMBtconX</tt> <tt class="literal">failed</tt>.
1504 <tt class="literal">ERRSRV--ERRinvnetname</tt>, the problem can be any of
1505 the following:</p>
1506
1507 <ul><li>
1508 <p>A wrong share name: you might have spelled it wrong, it might be too
1509 long, it might be in mixed case, or it might not be available. Check
1510 that it's what you expect with
1511 <em class="emphasis">testparm</em> (see the earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.4.5">Section 12.2.4.5</a>).</p>
1512 </li><li>
1513 <p>A <tt class="literal">security</tt> <tt class="literal">=</tt>
1514 <tt class="literal">share</tt> parameter in your Samba configuration file,
1515 in which case you might have to add <tt class="literal">-U</tt>
1516 <em class="replaceable">your_account</em> to the
1517 <em class="emphasis">smbclient</em> command.</p>
1518 </li><li>
1519 <p>An erroneous username.</p>
1520 </li><li>
1521 <p>An erroneous password.</p>
1522 </li><li>
1523 <p>An <tt class="literal">invalid</tt> <tt class="literal">users</tt> or
1524 <tt class="literal">valid</tt> <tt class="literal">users</tt> option in your
1525 <em class="emphasis">smb.conf</em> file that doesn't
1526 allow your account to connect. Recheck using
1527 <tt class="literal">testparm</tt> <tt class="literal">smb.conf</tt>
1528 <em class="replaceable">your_hostname your_ip_address</em> (see the
1529 earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.4.5">Section 12.2.4.5</a>).</p>
1530 </li><li>
1531 <p>A <tt class="literal">valid</tt> <tt class="literal">hosts</tt> option that
1532 doesn't include the server, or an
1533 <tt class="literal">invalid</tt> <tt class="literal">hosts</tt> option that does.
1534 Also test this with <em class="emphasis">testparm</em>.</p>
1535 </li><li>
1536 <p>A problem in authentication, such as if shadow passwords or the
1537 Password Authentication Module (PAM) is used on the server, but Samba
1538 is not compiled to use it. This is rare, but it occasionally happens
1539 when a SunOS 4 Samba binary (with no shadow passwords) is run without
1540 recompilation on a Solaris system (with shadow passwords).</p>
1541 </li><li>
1542 <p>The <tt class="literal">encrypted</tt> <tt class="literal">passwords</tt>
1543 <tt class="literal">=</tt> <tt class="literal">yes</tt> option is in the
1544 configuration file, but no password for your account is in the
1545 <em class="emphasis">smbpasswd</em> file.</p>
1546 </li><li>
1547 <p>You have a null password entry, either in Unix
1548 <em class="filename">/etc/passwd</em> or in the
1549 <em class="emphasis">smbpasswd</em> file.</p>
1550 </li><li>
1551 <p>You are connecting to <tt class="literal">[temp]</tt>, and you do not have
1552 the <tt class="literal">guest</tt> <tt class="literal">ok</tt>
1553 <tt class="literal">=</tt> <tt class="literal">yes</tt> option in the
1554 <tt class="literal">[temp]</tt> section of the
1555 <em class="emphasis">smb.conf</em> file.</p>
1556 </li><li>
1557 <p>You are connecting to <tt class="literal">[temp]</tt> before connecting to
1558 your home directory, and your guest account isn't
1559 set up correctly. If you can connect to your home directory and then
1560 connect to <tt class="literal">[temp]</tt>, that's the
1561 problem. See <a href="ch02.html">Chapter 2</a> for more information on
1562 creating a basic Samba configuration file.</p>
1563
1564 <p>A bad guest account will also prevent you from printing or browsing
1565 until after you've logged in to your home directory.</p>
1566 </li></ul>
1567 <p>There is one more reason for this failure that has nothing at all to
1568 do with passwords: the <tt class="literal">path</tt> parameter in your
1569 <em class="filename">smb.conf</em> file might point somewhere that
1570 doesn't exist. This will not be diagnosed by
1571 <em class="emphasis">testparm</em>, and most SMB clients
1572 can't distinguish it from other types of bad user
1573 accounts. You will have to check it manually.</p>
1574
1575 <p>Once you have connected to <tt class="literal">[temp]</tt> successfully,
1576 repeat the test, this time logging in to your home directory (e.g.,
1577 map network drive
1578 <em class="replaceable">server</em><tt class="literal">\davecb</tt>). If you
1579 have to change anything to get that to work, retest
1580 <tt class="literal">[temp]</tt> again afterward.</p>
1581
1582
1583 </div>
1584
1585
1586
1587 <div class="sect3"><a name="samba2-CHP-12-SECT-2.5.4"/>
1588
1589 <h3 class="head3">Testing connections with net use</h3>
1590
1591 <p><a name="INDEX-63"/><a name="INDEX-64"/>Run the command
1592 <tt class="literal">net</tt> <tt class="literal">use</tt> <tt class="literal">*</tt>
1593 <tt class="literal">\</tt><em class="replaceable">server</em><tt class="literal">\temp</tt>
1594 on the Windows client to see if it can connect to the server. You
1595 should be prompted for a password, then receive the response
1596 <tt class="literal">The</tt> <tt class="literal">command</tt>
1597 <tt class="literal">was</tt> <tt class="literal">completed</tt>
1598 <tt class="literal">successfully</tt>.</p>
1599
1600 <p>If that worked, continue with the steps in the next section, <a href="ch12.html#samba2-CHP-12-SECT-2.5.5">Section 12.2.5.5</a>. Otherwise:</p>
1601
1602 <ul><li>
1603 <p>If you get <tt class="literal">The</tt> <tt class="literal">specified</tt>
1604 <tt class="literal">shared</tt> <tt class="literal">directory</tt>
1605 <tt class="literal">cannot</tt> <tt class="literal">be</tt>
1606 <tt class="literal">found</tt>, or <tt class="literal">Cannot</tt>
1607 <tt class="literal">locate</tt> <tt class="literal">specified</tt>
1608 <tt class="literal">share</tt> <tt class="literal">name</tt>, the directory name
1609 is either misspelled or not in the <em class="emphasis">smb.conf</em>
1610 file. This message can also warn of a name that is in mixed case,
1611 including spaces, or that is longer than eight characters.</p>
1612 </li><li>
1613 <p>If you get <tt class="literal">The</tt> <tt class="literal">computer</tt>
1614 <tt class="literal">name</tt> <tt class="literal">specified</tt>
1615 <tt class="literal">in</tt> <tt class="literal">the</tt>
1616 <tt class="literal">network</tt> <tt class="literal">path</tt>
1617 <tt class="literal">cannot</tt> <tt class="literal">be</tt>
1618 <tt class="literal">located</tt> or <tt class="literal">Cannot</tt>
1619 <tt class="literal">locate</tt> <tt class="literal">specified</tt>
1620 <tt class="literal">computer</tt>, the directory name has been misspelled,
1621 the name service has failed, there is a networking problem, or the
1622 <tt class="literal">hosts</tt> <tt class="literal">deny</tt> option includes your
1623 host.</p>
1624 <ul><li>
1625 <p>If it is not a spelling mistake, you need to double back at least to
1626 <a href="ch12.html#samba2-CHP-12-SECT-2.5.3">Section 12.2.5.3</a> to
1627 investigate why it doesn't connect.</p>
1628 </li><li>
1629 <p>If <em class="emphasis">smbclient</em> does work, there is a name service
1630 problem with the client name service, and you need to go forward to
1631 <a href="ch12.html#samba2-CHP-12-SECT-2.6.2">Section 12.2.6.2</a> and see if
1632 you can look up both the client and server with
1633 <em class="emphasis">nmblookup</em>.</p>
1634 </li>
1635 </ul>
1636 </li>
1637
1638 <li>
1639 <p>If you get <tt class="literal">The</tt> <tt class="literal">password</tt>
1640 <tt class="literal">is</tt> <tt class="literal">invalid</tt>
1641 <tt class="literal">for</tt> <tt class="literal">\server\username</tt>, your
1642 locally cached copy on the client doesn't match the
1643 one on the server. You will be prompted for a replacement.</p>
1644
1645 <a name="samba2-CHP-12-NOTE-157"/><blockquote class="note"><h4 class="objtitle">TIP</h4>
1646 <p>Each Windows 95/98/Me client keeps a local
1647 <em class="emphasis">password</em> file, but it's really
1648 just a cached copy of the password it sends to Samba and NT/2000/XP
1649 servers to authenticate you. That's what is being
1650 prompted for here. You can still log on to a Windows system without a
1651 password (but not to NT/2000/XP).</p>
1652 </blockquote>
1653
1654 <p>If you provide your password and it still fails, your password is not
1655 being matched on the server, you have a <tt class="literal">valid</tt>
1656 <tt class="literal">users</tt> or <tt class="literal">invalid</tt>
1657 <tt class="literal">users</tt> list denying you permission, NetBEUI is
1658 interfering, or the encrypted password problem described in the next
1659 paragraph exists.</p>
1660 </li><li>
1661 <p>If your client is Windows NT 4.0, NT 3.5 with Patch 3, Windows 95
1662 with Patch 3, Windows 98, any of these with Internet Explorer 4.0, or
1663 any subsequent version of Windows, the system will default to
1664 Microsoft encryption for passwords. In general, if you have installed
1665 a major Microsoft product on any of the older Windows versions, you
1666 might have applied an update and turned on encrypted passwords. If
1667 the client is defaulting to encrypted passwords, you will need to
1668 specify <tt class="literal">encrypt</tt> <tt class="literal">passwords</tt>
1669 <tt class="literal">=</tt> <tt class="literal">yes</tt> in your Samba
1670 configuration file if you are using a version of Samba prior to Samba
1671 3.0.</p>
1672
1673 <a name="samba2-CHP-12-NOTE-158"/><blockquote class="note"><h4 class="objtitle">TIP</h4>
1674 <p>Because of Internet Explorer's willingness to honor
1675 URLs such as <em class="filename">file://somehost/somefile</em> by making
1676 SMB connections, clients up to and including Windows 95 Patch Level 2
1677 would happily send your password, in plain text, to SMB servers
1678 anywhere on the Internet. This was considered a bad idea, and
1679 Microsoft switched to using only encrypted passwords in the SMB
1680 protocol. All subsequent releases of Microsoft's
1681 products have included this correction.</p>
1682 </blockquote>
1683 </li>
1684
1685 <li>
1686 <p>If you have a mixed-case password on Unix, the client is probably
1687 sending it in all one case. If changing your password to all one case
1688 works, this was the problem. Regrettably, all but the oldest clients
1689 support uppercase passwords, so Samba will try once with the password
1690 in uppercase and once in lowercase. If you wish to use mixed-case
1691 passwords, see the <tt class="literal">password</tt>
1692 <tt class="literal">level</tt> option in <a href="ch09.html">Chapter 9</a> for a
1693 workaround.</p>
1694 </li><li>
1695 <p>You might have a <tt class="literal">valid</tt> <tt class="literal">users</tt>
1696 problem, as tested with <em class="emphasis">smbclient</em> (see the
1697 earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.5.3">Section 12.2.5.3</a>).</p>
1698 </li><li>
1699 <p>You might have the NetBEUI protocol bound to the Microsoft client.
1700 This often produces long timeouts and erratic failures and is known
1701 to have caused failures to accept passwords in the past. Unless you
1702 absolutely need the NetBEUI protocol, remove it.</p>
1703 </li></ul>
1704 <a name="samba2-CHP-12-NOTE-159"/><blockquote class="note"><h4 class="objtitle">TIP</h4>
1705 <p>The term &quot;bind&quot; is used here to
1706 mean connecting one piece of software to another. When configured
1707 correctly, the Microsoft SMB client is &quot;bound
1708 to&quot; TCP/IP in the bindings section of the TCP/IP
1709 properties panel under the Windows 95/98/Me Network icon in the
1710 Control Panel. TCP/IP in turn is bound to an Ethernet card. This is
1711 not the same sense of the word as binding an SMB daemon to a TCP/IP
1712 port.</p>
1713 </blockquote>
1714
1715
1716 </div>
1717
1718
1719
1720 <div class="sect3"><a name="samba2-CHP-12-SECT-2.5.5"/>
1721
1722 <h3 class="head3">Testing connections with Windows Explorer</h3>
1723
1724 <p><a name="INDEX-65"/><a name="INDEX-66"/>Start Windows Explorer
1725 (not Internet Explorer), select Map Network Drive from the Tools
1726 menu, and specify the UNC for one of your shares on the Samba server
1727 to see if you can make Explorer connect to it. If so,
1728 you've succeeded and can skip to the next section,
1729 <a href="ch12.html#samba2-CHP-12-SECT-2.6">Section 12.2.6</a>.</p>
1730
1731 <p>Windows Explorer is a rather poor diagnostic tool: it tells you that
1732 something's wrong, but rarely what it is. If you get
1733 a failure, you'll need to track it down with the
1734 Windows <em class="emphasis">net use</em> command, which has far superior
1735 error reporting:</p>
1736
1737 <ul><li>
1738 <p>If you get <tt class="literal">The</tt> <tt class="literal">password</tt>
1739 <tt class="literal">for</tt> <tt class="literal">this</tt>
1740 <tt class="literal">connection</tt> <tt class="literal">that</tt>
1741 <tt class="literal">is</tt> <tt class="literal">in</tt> <tt class="literal">your</tt>
1742 <tt class="literal">password</tt> <tt class="literal">file</tt>
1743 <tt class="literal">is</tt> <tt class="literal">no</tt> <tt class="literal">longer</tt>
1744 <tt class="literal">correct</tt>, you might have any of the following:</p>
1745 <ul><li>
1746 <p>Your locally cached copy on the client doesn't match
1747 the one on the server.</p>
1748 </li><li>
1749 <p>You didn't provide a username and password when
1750 logging on to the client. Some versions of Explorer will continue to
1751 send a null username and password, even if you provide a password.</p>
1752 </li><li>
1753 <p>You have misspelled the password.</p>
1754 </li><li>
1755 <p>You have an <tt class="literal">invalid</tt> <tt class="literal">users</tt> or
1756 <tt class="literal">valid</tt> <tt class="literal">users</tt> list denying
1757 permission.</p>
1758 </li><li>
1759 <p>Your client is defaulting to encrypted passwords, but Samba is
1760 configured with the <tt class="literal">encrypt</tt>
1761 <tt class="literal">passwords</tt> <tt class="literal">=</tt>
1762 <tt class="literal">no</tt> configuration file parameter.</p>
1763 </li><li>
1764 <p>You have a mixed-case password, which the client is supplying in all
1765 one case.</p>
1766 </li>
1767 </ul>
1768 </li>
1769 <li>
1770 <p>If you get <tt class="literal">The</tt> <tt class="literal">network</tt>
1771 <tt class="literal">name</tt> <tt class="literal">is</tt>
1772 <tt class="literal">either</tt> <tt class="literal">incorrect</tt>,
1773 <tt class="literal">or</tt> <tt class="literal">a</tt> <tt class="literal">network</tt>
1774 <tt class="literal">to</tt> <tt class="literal">which</tt> <tt class="literal">you</tt>
1775 <tt class="literal">do</tt> <tt class="literal">not</tt> <tt class="literal">have</tt>
1776 <tt class="literal">full</tt> <tt class="literal">access</tt>, or
1777 <tt class="literal">Cannot</tt> <tt class="literal">locate</tt>
1778 <tt class="literal">specified</tt> <tt class="literal">computer</tt>, you might
1779 have any of the following:</p>
1780 <ul><li>
1781 <p>Misspelled name</p>
1782 </li><li>
1783 <p>Malfunctioning service</p>
1784 </li><li>
1785 <p>Failed share</p>
1786 </li><li>
1787 <p>Networking problem</p>
1788 </li><li>
1789 <p>Bad <tt class="literal">path</tt> parameter in
1790 <em class="filename">smb.conf</em></p>
1791 </li><li>
1792 <p><tt class="literal">hosts</tt> <tt class="literal">deny</tt> line that excludes
1793 you</p>
1794 </li>
1795 </ul>
1796 </li>
1797 <li>
1798 <p>If you get <tt class="literal">You</tt> <tt class="literal">must</tt>
1799 <tt class="literal">supply</tt> <tt class="literal">a</tt>
1800 <tt class="literal">password</tt> <tt class="literal">to</tt>
1801 <tt class="literal">make</tt> <tt class="literal">this</tt>
1802 <tt class="literal">connection</tt>, the password on the client is out of
1803 synchronization with the server, or this is the first time
1804 you've tried from this client system and the client
1805 hasn't cached it locally yet.</p>
1806 </li><li>
1807 <p>If you get <tt class="literal">Cannot</tt> <tt class="literal">locate</tt>
1808 <tt class="literal">specified</tt> <tt class="literal">share</tt>
1809 <tt class="literal">name</tt>, you have a wrong share name or a syntax
1810 error in specifying it, a share name longer than eight characters, or
1811 one containing spaces or in mixed case.</p>
1812 </li></ul>
1813 <p>Once you can reliably connect to the share, try again, this time
1814 using your home directory. If you have to change something to get
1815 home directories working, retest with the first share, and vice
1816 versa, as we showed in the earlier section, &quot;Testing
1817 connections with net use.&quot; As always, if Explorer
1818 fails, drop back to that section and debug the connection there.
1819 <a name="INDEX-67"/><a name="INDEX-68"/></p>
1820
1821
1822 </div>
1823
1824
1825 </div>
1826
1827
1828 <div class="sect2"><a name="samba2-CHP-12-SECT-2.6"/>
1829
1830 <h3 class="head2">Troubleshooting Browsing</h3>
1831
1832 <p><a name="INDEX-69"/><a name="INDEX-70"/>Finally, we
1833 come to browsing. We've left this for last, not
1834 because it is the most difficult, but because it's
1835 both optional and partially dependent on a protocol that
1836 doesn't guarantee delivery of a packet. Browsing is
1837 hard to diagnose if you don't already know that all
1838 the other services are running.</p>
1839
1840 <p>Browsing is purely optional: it's just a way to find
1841 the servers on your network and the shares that they provide. Unix
1842 has nothing of the sort and happily does without. Browsing also
1843 assumes all your systems are on a local area network (LAN) where
1844 broadcasts are allowable.</p>
1845
1846 <p>First, the browsing mechanism identifies a system using the
1847 unreliable UDP protocol; it then makes a normal (reliable) TCP/IP
1848 connection to list the shares the system provides.</p>
1849
1850
1851 <div class="sect3"><a name="samba2-CHP-12-SECT-2.6.1"/>
1852
1853 <h3 class="head3">Testing browsing with smbclient</h3>
1854
1855 <p><a name="INDEX-71"/><a name="INDEX-72"/>We'll start with
1856 testing the reliable connection first. From the server, try listing
1857 its own shares using <em class="emphasis">smbclient</em> with a
1858 <tt class="literal">-L</tt> option and your server's name.
1859 You should get something resembling the following:</p>
1860
1861 <blockquote><pre class="code">$ <tt class="userinput"><b>smbclient -L server</b></tt> 
1862 Added interface ip=192.168.236.86 bcast=192.168.236.255 nmask=255.255.255.0 Server 
1863 time is Tue Apr 28 09:57:28 2002 Timezone is UTC-4.0 
1864 Password: 
1865 Domain=[EXAMPLE] OS=[Unix] Server=[Samba 2.2.5]
1866
1867    Sharename      Type      Comment    
1868    ---------      ----      -------    
1869     cdrom          Disk      CD-ROM    
1870     cl             Printer   Color Printer 1    
1871     davecb         Disk      Home Directories
1872
1873    Server         Comment    
1874    ---------      -------    
1875    SERVER         Samba 2.2.5
1876
1877    Workgroup      Master    
1878    ---------      -------    
1879    EXAMPLE        SERVER</pre></blockquote>
1880
1881 <ul><li>
1882 <p>If you didn't get a Sharename list, the server is
1883 not allowing you to browse any shares. This should not be the case if
1884 you've tested any of the shares with Windows
1885 Explorer or the <em class="emphasis">net use</em> command. If you
1886 haven't done the <tt class="literal">smbclient</tt>
1887 <tt class="literal">-L</tt> <tt class="literal">localhost</tt>
1888 <tt class="literal">-U%</tt> test yet (see the earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.5.2">Section 12.2.5.2</a>), do it now. An erroneous
1889 guest account can prevent the shares from being seen. Also, check the
1890 <em class="filename">smb.conf</em> file to make sure you do not have the
1891 option <tt class="literal">browsable</tt> <tt class="literal">=</tt>
1892 <tt class="literal">no</tt> anywhere in it: we suggest using a minimal
1893 <em class="filename">smb.conf</em> file (see the earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.5.1">Section 12.2.5.1</a>). You need to have
1894 <tt class="literal">browsable</tt> enabled (which is the default) to see
1895 the share.</p>
1896 </li><li>
1897 <p>If you didn't get a browse list, the server is not
1898 providing information about the systems on the network. At least one
1899 system on the net must support browse lists. Make sure you have
1900 <tt class="literal">local</tt> <tt class="literal">master</tt>
1901 <tt class="literal">=</tt> <tt class="literal">yes</tt> in the
1902 <em class="filename">smb.conf</em> file if you want Samba to be the local
1903 master browser.</p>
1904 </li><li>
1905 <p>If you got a browse list but didn't get
1906 <em class="emphasis">/tmp</em>, you probably have a
1907 <em class="filename">smb.conf</em> problem. Go back to <a href="ch12.html#samba2-CHP-12-SECT-2.4.5">Section 12.2.4.5</a>.</p>
1908 </li><li>
1909 <p>If you didn't get a workgroup list with your
1910 workgroup name in it, it is possible that your workgroup is set
1911 incorrectly in the <em class="filename">smb.conf</em> file.</p>
1912 </li><li>
1913 <p>If you didn't get a workgroup list at all, ensure
1914 that <tt class="literal">workgroup</tt> <tt class="literal">=</tt>
1915 <tt class="literal">EXAMPLE</tt> is present in the
1916 <em class="filename">smb.conf</em> file.</p>
1917 </li><li>
1918 <p>If you get nothing, try once more with the options
1919 <tt class="literal">-I</tt> <em class="emphasis">ip_address</em>
1920 <tt class="literal">-n</tt> <em class="emphasis">netbios_name</em>
1921 <tt class="literal">-W</tt> <em class="emphasis">workgroup</em>
1922 <tt class="literal">-d3</tt> with the NetBIOS and workgroup name in
1923 uppercase. (The <tt class="literal">-d3</tt> option sets the log /debugging
1924 level to 3.) Then check the Samba logs for clues.</p>
1925 </li></ul>
1926 <p>If you're still getting nothing, you
1927 shouldn't have gotten this far; double back to at
1928 least <a href="ch12.html#samba2-CHP-12-SECT-2.3.1">Section 12.2.3.1</a>, or perhaps
1929 <a href="ch12.html#samba2-CHP-12-SECT-2.2.4">Section 12.2.2.4</a>. On the other hand:</p>
1930
1931 <ul><li>
1932 <p>If you get <tt class="literal">SMBtconX</tt> <tt class="literal">failed</tt>.
1933 <tt class="literal">ERRSRV--ERRaccess</tt>, you aren't
1934 permitted access to the server. This normally means you have a
1935 <tt class="literal">hosts</tt> <tt class="literal">allow</tt> option that
1936 doesn't include the server or a
1937 <tt class="literal">hosts</tt> <tt class="literal">deny</tt> option that does.</p>
1938 </li><li>
1939 <p>If you get <tt class="literal">Bad</tt> <tt class="literal">password</tt>, you
1940 presumably have one of the following:</p>
1941 <ul><li>
1942 <p>An incorrect <tt class="literal">hosts</tt> <tt class="literal">allow</tt> or
1943 <tt class="literal">hosts</tt> <tt class="literal">deny</tt> line</p>
1944 </li><li>
1945 <p>An incorrect <tt class="literal">invalid</tt> <tt class="literal">users</tt> or
1946 <tt class="literal">valid</tt> <tt class="literal">users</tt> line</p>
1947 </li><li>
1948 <p>A lowercase password and OS/2 or Windows for Workgroups clients</p>
1949 </li><li>
1950 <p>A missing or invalid guest account</p>
1951 </li></ul>
1952 <p>Check what your guest account is (see the earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.5.2">Section 12.2.5.2</a>), change or comment out any
1953 <tt class="literal">hosts</tt> <tt class="literal">allow</tt>,
1954 <tt class="literal">hosts</tt> <tt class="literal">deny</tt>,
1955 <tt class="literal">valid</tt> <tt class="literal">users</tt>, or
1956 <tt class="literal">invalid</tt> <tt class="literal">users</tt> lines, and verify
1957 your <em class="filename">smb.conf</em> file with
1958 <tt class="literal">testparm</tt> <tt class="literal">smb.conf</tt>
1959 <em class="replaceable">your_hostname your_ip_address</em> (see the
1960 earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.4.5">Section 12.2.4.5</a>).</p>
1961 </li><li>
1962 <p>If you get <tt class="literal">Connection</tt> <tt class="literal">refused</tt>,
1963 the <em class="emphasis">smbd</em> server is not running or has crashed.
1964 Check that it's up, running, and listening to the
1965 network with <em class="emphasis">netstat</em>. See the earlier section,
1966 <a href="ch12.html#samba2-CHP-12-SECT-2.4">Section 12.2.4</a>.</p>
1967 </li><li>
1968 <p>If you get <tt class="literal">Get_Hostbyname</tt>:
1969 <tt class="literal">Unknown</tt> <tt class="literal">host</tt>
1970 <tt class="literal">name</tt>, you've made a spelling
1971 error, there is a mismatch between the Unix and NetBIOS hostname, or
1972 there is a name service problem. Start name service debugging as
1973 discussed in the earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.5.4">Section 12.2.5.4</a>. If this works, suspect a
1974 name mismatch, and go to the later section, <a href="ch12.html#samba2-CHP-12-SECT-2.9">Section 12.2.9</a>.</p>
1975 </li><li>
1976 <p>If you get <tt class="literal">Session</tt> <tt class="literal">request</tt>
1977 <tt class="literal">failed</tt>, the server refused the connection. This
1978 usually indicates an internal error, such as insufficient memory to
1979 fork a process.</p>
1980 </li><li>
1981 <p>If you get <tt class="literal">Your</tt> <tt class="literal">server</tt>
1982 <tt class="literal">software</tt> <tt class="literal">is</tt>
1983 <tt class="literal">being</tt> <tt class="literal">unfriendly</tt>, the initial
1984 session request packet received a garbage response from the server.
1985 The server might have crashed or started improperly. Go back to <a href="ch12.html#samba2-CHP-12-SECT-2.5.2">Section 12.2.5.2</a>, where the
1986 problem is first analyzed.</p>
1987 </li><li>
1988 <p>If you suspect the server is not running, go back to
1989 <a href="ch12.html#samba2-CHP-12-SECT-2.4.2">Section 12.2.4.2</a> to see why the server
1990 daemon isn't responding.</p>
1991 </li></ul>
1992
1993 </div>
1994
1995
1996
1997 <div class="sect3"><a name="samba2-CHP-12-SECT-2.6.2"/>
1998
1999 <h3 class="head3">Testing the server with nmblookup</h3>
2000
2001 <p><a name="INDEX-73"/><a name="INDEX-74"/>This will test the
2002 &quot;advertising&quot; system used for
2003 Windows name services and browsing. Advertising works by broadcasting
2004 one's presence or willingness to provide services.
2005 It is the part of browsing that uses an unreliable protocol (UDP) and
2006 works only on broadcast networks such as Ethernets. The
2007 <em class="emphasis">nmblookup</em> program broadcasts name queries for
2008 the hostname you provide and returns its IP address and the name of
2009 the system, much as <em class="emphasis">nslookup</em> does with DNS.
2010 Here, the <em class="emphasis">-d</em> (debug or log-level) and
2011 <em class="emphasis">-B</em> (broadcast address) options direct queries to
2012 specific systems.</p>
2013
2014 <p>First, we check the server from itself. Run
2015 <em class="emphasis">nmblookup</em> with a <em class="emphasis">-B</em> option
2016 of your server's name (to tell it to send the query
2017 to the Samba server) and a parameter of <tt class="literal">_ _SAMBA_
2018 _</tt> as the symbolic name to look up. You should get:</p>
2019
2020 <blockquote><pre class="code">$ <tt class="userinput"><b>nmblookup -B server _ _SAMBA_ _</b></tt>
2021 Added interface ip=192.168.236.86 bcast=192.168.236.255 nmask=255.255.255.0 
2022 Sending queries to 192.168.236.86 192.168.236.86 _ _SAMBA_ _</pre></blockquote>
2023
2024 <p>You should get the IP address of the server, followed by the name
2025 <tt class="literal">_ _SAMBA_ _</tt> , which means that the server has
2026 successfully advertised that it has a service called <tt class="literal">_
2027 _SAMBA_ _</tt> , and therefore at least part of NetBIOS name
2028 service works.</p>
2029
2030 <ul><li>
2031 <p>If you get <tt class="literal">Name_query</tt> <tt class="literal">failed</tt>
2032 <tt class="literal">to</tt> <tt class="literal">find</tt> <tt class="literal">name</tt>
2033 <tt class="literal">_ _SAMBA_ _</tt>, you might have specified the server
2034 name to the <em class="emphasis">-B</em> option, or
2035 <em class="emphasis">nmbd</em> is not running. The <em class="emphasis">-B</em>
2036 option actually takes a broadcast address: we're
2037 using a computer name to get a unicast address and to ask the server
2038 if it has claimed <tt class="literal">_ _SAMBA_ _</tt>. Try again with
2039 <tt class="literal">nmblookup</tt> <tt class="literal">-B</tt>
2040 <em class="replaceable">ip_address</em>, and if that fails too,
2041 <em class="emphasis">nmbd</em> isn't claiming the name.
2042 Go back briefly to the earlier section, &quot;Testing
2043 daemons with testparm,&quot; to see if
2044 <em class="emphasis">nmbd</em> is running. If so, it might not be claiming
2045 names; this means that Samba is not providing the browsing
2046 service&mdash;a configuration problem. If that is the case, make sure
2047 that <em class="filename">smb.conf</em> doesn't contain
2048 the option <tt class="literal">browsing</tt> <tt class="literal">=</tt>
2049 <tt class="literal">no</tt>.</p>
2050 </li></ul>
2051
2052 </div>
2053
2054
2055
2056 <div class="sect3"><a name="samba2-CHP-12-SECT-2.6.3"/>
2057
2058 <h3 class="head3">Testing the client with nmblookup</h3>
2059
2060 <p><a name="INDEX-75"/><a name="INDEX-76"/>Next, check the IP address of the
2061 client from the server with <em class="emphasis">nmblookup</em> using the
2062 <tt class="literal">-B</tt> option for the client's name
2063 and a parameter of '<tt class="literal">*</tt>' meaning
2064 &quot;anything,&quot; as shown here:</p>
2065
2066 <blockquote><pre class="code">$ <b class="emphasis-bold">nmblookup -B client '*</b>' 
2067 Sending queries to 192.168.236.10 192.168.236.10 *
2068 Got a positive name query response from 192.168.236.10 (192.168.236.10)</pre></blockquote>
2069
2070 <p>You might get the following error:</p>
2071
2072 <ul><li>
2073 <p>If you receive <tt class="literal">Name-query</tt>
2074 <tt class="literal">failed</tt> <tt class="literal">to</tt>
2075 <tt class="literal">find</tt> <tt class="literal">name</tt> <tt class="literal">*</tt>,
2076 you have made a spelling mistake, or the client software on the PC
2077 isn't installed, started, or bound to TCP/IP. Double
2078 back to <a href="ch03.html">Chapter 3</a> and ensure that you have a
2079 client installed that is listening to the network.</p>
2080 </li></ul>
2081 <p>Repeat the command with the following options if you had any failures:</p>
2082
2083 <ul><li>
2084 <p>If <tt class="literal">nmblookup</tt> <tt class="literal">-B</tt>
2085 <em class="replaceable">client_IP_address</em> succeeds but
2086 <tt class="literal">nmblookup</tt> <tt class="literal">-B</tt>
2087 <em class="replaceable">client_name</em> fails, there is a name service
2088 problem with the client's name; go to <a href="ch12.html#samba2-CHP-12-SECT-2.7">Section 12.2.7</a>, later in this chapter.</p>
2089 </li><li>
2090 <p>If <tt class="literal">nmblookup</tt> <tt class="literal">-B</tt>
2091 <tt class="literal">127.0.0.1</tt> '<tt class="literal">*</tt>' succeeds, but
2092 <tt class="literal">nmblookup</tt> <tt class="literal">-B</tt>
2093 <em class="replaceable">client_IP_address</em> fails, there is a
2094 hardware problem, and <em class="emphasis">ping</em> should have failed.
2095 See your network manager.</p>
2096 </li></ul>
2097
2098 </div>
2099
2100
2101
2102 <div class="sect3"><a name="samba2-CHP-12-SECT-2.6.4"/>
2103
2104 <h3 class="head3">Testing the network with nmblookup</h3>
2105
2106 <p><a name="INDEX-77"/><a name="INDEX-78"/>Run the command
2107 <em class="emphasis">nmblookup</em> again with a <em class="emphasis">-d2</em>
2108 option (for a debug level of 2) and a parameter of
2109 '<tt class="literal">*</tt>'. This time we are testing the ability of
2110 programs (such as <em class="emphasis">nmbd</em> ) to use broadcast.
2111 It's essentially a connectivity test, done via a
2112 broadcast to the default broadcast address.</p>
2113
2114 <p>A number of NetBIOS over TCP/IP hosts on the network should respond
2115 with <tt class="literal">got</tt> <tt class="literal">a</tt>
2116 <tt class="literal">positive</tt> <tt class="literal">name</tt>
2117 <tt class="literal">query</tt> <tt class="literal">response</tt> messages. Samba
2118 might not catch all the responses in the short time it listens, so
2119 you won't always see all the SMB clients on the
2120 network. However, you should see most of them:</p>
2121
2122 <blockquote><pre class="code">$ <b class="emphasis-bold">nmblookup -d 2 '*</b>' 
2123 Added interface ip=192.168.236.86 bcast=192.168.236.255 nmask=255.255.255.0 Sending 
2124 queries to 192.168.236.255 
2125 Got a positive name query response from 192.168.236.191 (192.168.236.191) 
2126 Got a positive name query response from 192.168.236.228 (192.168.236.228) 
2127 Got a positive name query response from 192.168.236.75 (192.168.236.75) 
2128 Got a positive name query response from 192.168.236.79 (192.168.236.79) 
2129 Got a positive name query response from 192.168.236.206 (192.168.236.206) 
2130 Got a positive name query response from 192.168.236.207 (192.168.236.207) 
2131 Got a positive name query response from 192.168.236.217 (192.168.236.217) 
2132 Got a positive name query response from 192.168.236.72 (192.168.236.72) 192.168.236.86 *</pre></blockquote>
2133
2134 <p>However:</p>
2135
2136 <ul><li>
2137 <p>If this doesn't give at least the client address you
2138 previously tested, the default broadcast address is wrong. Try
2139 <tt class="literal">nmblookup</tt> <tt class="literal">-B</tt>
2140 <tt class="literal">255.255.255.255</tt> <tt class="literal">-d</tt>
2141 <tt class="literal">2</tt> '<tt class="literal">*</tt>', which is a last-ditch
2142 variant (using a broadcast address of all 1s). If this draws
2143 responses, the broadcast address you've been using
2144 before is wrong. Troubleshooting these is discussed in <a href="ch12.html#samba2-CHP-12-SECT-2.8.2">Section 12.2.8.2</a>, later in this
2145 chapter.</p>
2146 </li><li>
2147 <p>If the address 255.255.255.255 fails too, check your notes to see if
2148 your PC and server are on different subnets, as discovered in the
2149 earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.2.4">Section 12.2.2.4</a>. You
2150 should try to diagnose this step with a server and client on the same
2151 subnet, but if you can't, you can try specifying the
2152 remote subnet's broadcast address with
2153 <em class="emphasis">-B</em>. Finding that address is discussed in <a href="ch12.html#samba2-CHP-12-SECT-2.8.2">Section 12.2.8.2</a>, later in this
2154 chapter. The <em class="emphasis">-B</em> option will work if your router
2155 supports directed broadcasts; if it doesn't, you
2156 might be forced to test with a client on the same network.</p>
2157 </li></ul>
2158 <p>As usual, you can check the Samba log files for additional clues.</p>
2159
2160
2161 </div>
2162
2163
2164
2165 <div class="sect3"><a name="samba2-CHP-12-SECT-2.6.5"/>
2166
2167 <h3 class="head3">Testing client browsing with net view</h3>
2168
2169 <p><a name="INDEX-79"/><a name="INDEX-80"/>On the client, run the
2170 command <em class="replaceable">net view \\server</em> in an MS-DOS
2171 (command prompt) window to see if you can connect to the client and
2172 ask what shares it provides. You should get back a list of available
2173 shares on the server.</p>
2174
2175 <p>If this works, continue with the later section <a href="ch12.html#samba2-CHP-12-SECT-3.1">Section 12.3.1</a>. Otherwise:</p>
2176
2177 <ul><li>
2178 <p>If you get <tt class="literal">Network</tt> <tt class="literal">name</tt>
2179 <tt class="literal">not</tt> <tt class="literal">found</tt> for the name you just
2180 tested in the earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.6.3">Section 12.2.6.3</a>, there is a problem with the
2181 client software itself. Double-check this by running
2182 <em class="emphasis">nmblookup</em> on the client; if it works and
2183 <em class="emphasis">net view</em> doesn't, the client is
2184 at fault.</p>
2185 </li><li>
2186 <p>If <em class="emphasis">nmblookup</em> fails, there is a NetBIOS name
2187 service problem, as discussed in the later section, <a href="ch12.html#samba2-CHP-12-SECT-2.9">Section 12.2.9</a>.</p>
2188 </li><li>
2189 <p>If you get <tt class="literal">You</tt> <tt class="literal">do</tt>
2190 <tt class="literal">not</tt> <tt class="literal">have</tt> <tt class="literal">the</tt>
2191 <tt class="literal">necessary</tt> <tt class="literal">access</tt>
2192 <tt class="literal">rights</tt>, or <tt class="literal">This</tt>
2193 <tt class="literal">server</tt> <tt class="literal">is</tt>
2194 <tt class="literal">not</tt> <tt class="literal">configured</tt>
2195 <tt class="literal">to</tt> <tt class="literal">list</tt>
2196 <tt class="literal">shared</tt> <tt class="literal">resources</tt>, either your
2197 guest account is misconfigured (see the earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.5.2">Section 12.2.5.2</a>) or you have a
2198 <tt class="literal">hosts</tt> <tt class="literal">allow</tt> or
2199 <tt class="literal">hosts</tt> <tt class="literal">deny</tt> line that prohibits
2200 connections from your system. These problems should have been
2201 detected by the <em class="emphasis">smbclient</em> tests starting in the
2202 earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.6.1">Section 12.2.6.1</a>.</p>
2203 </li><li>
2204 <p>If you get <tt class="literal">The</tt> <tt class="literal">specified</tt>
2205 <tt class="literal">computer</tt> <tt class="literal">is</tt>
2206 <tt class="literal">not</tt> <tt class="literal">receiving</tt>
2207 <tt class="literal">requests</tt>, you have misspelled the name, the system
2208 is unreachable by broadcast (tested in the earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.6.4">Section 12.2.6.4</a>), or it's
2209 not running <em class="emphasis">nmbd</em>.</p>
2210 </li><li>
2211 <p>If you get <tt class="literal">Bad</tt> <tt class="literal">password</tt>
2212 <tt class="literal">error</tt>, you're probably
2213 encountering the Microsoft-encrypted password problem, as discussed
2214 earlier in this chapter and in <a href="ch09.html">Chapter 9</a>, with its
2215 corrections.</p>
2216 </li></ul>
2217
2218 </div>
2219
2220
2221
2222 <div class="sect3"><a name="samba2-CHP-12-SECT-2.6.6"/>
2223
2224 <h3 class="head3">Browsing the server from the client</h3>
2225
2226 <p><a name="INDEX-81"/><a name="INDEX-82"/>From the Windows Network
2227 Neighborhood (or My Network Places in newer releases), try to browse
2228 the server. Your Samba server should appear in the browse list of
2229 your local workgroup. You should be able to double-click the name of
2230 the server to get a list of shares.</p>
2231
2232 <ul><li>
2233 <p>If you get an <tt class="literal">Invalid</tt> <tt class="literal">password</tt>
2234 error, it's most likely the encryption problem
2235 again.</p>
2236 </li><li>
2237 <p>If you receive an <tt class="literal">Unable</tt> <tt class="literal">to</tt>
2238 <tt class="literal">browse</tt> <tt class="literal">the</tt>
2239 <tt class="literal">network</tt> error, one of the following has occurred:</p>
2240 <ul><li>
2241 <p>You have looked too soon, before the broadcasts and updates have
2242 completed. Wait 30 seconds and try again.</p>
2243 </li><li>
2244 <p>There is a network problem you've not yet diagnosed.</p>
2245 </li><li>
2246 <p>There is no browse master. Add the configuration option
2247 <tt class="literal">local</tt> <tt class="literal">master</tt>
2248 <tt class="literal">=</tt> <tt class="literal">yes</tt> to your
2249 <em class="emphasis">smb.conf</em> file.</p>
2250 </li><li>
2251 <p>No shares are made browsable in the <em class="emphasis">smb.conf</em>
2252 file.</p>
2253 </li></ul>
2254 </li>
2255 <li>
2256 <p>If you receive the message <tt class="literal">\\server</tt>
2257 <tt class="literal">is</tt> <tt class="literal">not</tt>
2258 <tt class="literal">accessible</tt> then:</p>
2259 <ul><li>
2260 <p>You have the encrypted password problem.</p>
2261 </li><li>
2262 <p>The system really isn't accessible.</p>
2263 </li><li>
2264 <p>The system doesn't support browsing.</p>
2265 </li></ul>
2266 </li>
2267 </ul>
2268
2269 <p>If you've made it this far and the problem is not
2270 yet solved, either the problem is one we've not yet
2271 seen, or it is a problem related to a topic we have already covered,
2272 and further analysis is required. Name resolution is often related to
2273 difficulties with Samba, so we cover it in more detail in the next
2274 sections. If you know your problem is not related to name resolution,
2275 skip to the <a href="ch12.html#samba2-CHP-12-SECT-3">Section 12.3</a> at the end of the chapter. <a name="INDEX-83"/><a name="INDEX-84"/></p>
2276
2277
2278 </div>
2279
2280
2281 </div>
2282
2283
2284 <div class="sect2"><a name="samba2-CHP-12-SECT-2.7"/>
2285
2286 <h3 class="head2">Troubleshooting Name Services</h3>
2287
2288 <p><a name="INDEX-85"/><a name="INDEX-86"/>This
2289 section looks at simple troubleshooting of all the name services
2290 you'll encounter, but only for the common problems
2291 that affect Samba.</p>
2292
2293 <p>There are several good references for troubleshooting particular name
2294 services: Paul <a name="INDEX-87"/>Albitz and Cricket <a name="INDEX-88"/>Liu's <em class="emphasis">DNS and
2295 Bind</em> (O'Reilly) covers the DNS, Hal
2296 <a name="INDEX-89"/>Stern's <em class="emphasis">NFS and
2297 NIS</em> (O'Reilly) covers NIS
2298 (&quot;Yellow pages&quot;), while Windows
2299 Internet Name Service (WINS), <em class="filename">hosts/LMHOSTS</em>
2300 files, and NIS+ are best covered by their respective
2301 vendors' manuals.</p>
2302
2303 <p>The problems addressed in this section are as follows:</p>
2304
2305 <ul><li>
2306 <p>Name services are identified.</p>
2307 </li><li>
2308 <p>A hostname can't be looked up.</p>
2309 </li><li>
2310 <p>The long (FQDN) form of a hostname works but the short form
2311 doesn't.</p>
2312 </li><li>
2313 <p>The short form of the name works, but the long form
2314 doesn't.</p>
2315 </li><li>
2316 <p>A long delay occurs before the expected result.</p>
2317 </li></ul>
2318
2319 <div class="sect3"><a name="samba2-CHP-12-SECT-2.7.1"/>
2320
2321 <h3 class="head3">Identifying what's in use</h3>
2322
2323 <p><a name="INDEX-90"/>First, see if both the
2324 server and the client are using DNS, WINS, NIS, or
2325 <em class="filename">hosts</em> files to look up IP addresses when you
2326 give them a name. Each kind of system has a different preference:</p>
2327
2328 <ul><li>
2329 <p>Windows 95/98/Me tries WINS and the <em class="filename">LMHOSTS</em> file
2330 first, then broadcast, and finally DNS and <em class="filename">HOSTS</em>
2331 files.</p>
2332 </li><li>
2333 <p>Windows NT/2000/XP tries WINS, then broadcast, then the
2334 <em class="filename">LMHOSTS</em> file, and finally
2335 <em class="filename">HOSTS</em> and DNS.</p>
2336 </li><li>
2337 <p>Windows programs using the WINSOCK standard use the HOSTS file, DNS,
2338 WINS, and then broadcast. Don't assume that if a
2339 different program's name service works, the SMB
2340 client program's name service will!</p>
2341 </li><li>
2342 <p>Samba daemons use <em class="filename">lmhosts</em>, WINS, the Unix
2343 system's name resolution, and then broadcast.</p>
2344 </li><li>
2345 <p>Unix systems can be configured to use any combination of DNS,
2346 <em class="filename">HOSTS</em> files, NIS or NIS+, and winbind, generally
2347 in any order.</p>
2348 </li></ul>
2349 <p>We recommend that the client systems be configured to use WINS and
2350 DNS, the Samba daemons to use WINS and DNS, and the Unix server to
2351 use DNS, <em class="filename">hosts</em> files, and perhaps NIS+.
2352 You'll have to look at your notes and the actual
2353 systems to see which is in use.</p>
2354
2355 <p>On the clients, the name services are all set in the TCP/IP
2356 Properties panel of the Networking Control Panel, as discussed in
2357 <a href="ch03.html">Chapter 3</a>. You might need to check there to see
2358 what you've actually turned on. On the server, see
2359 if a <em class="filename">/etc/resolv.conf</em> file exists. If it does,
2360 you're using DNS. You might be using the others as
2361 well, though. You'll need to check for NIS and
2362 combinations of services.</p>
2363
2364 <p>Check for a <em class="filename">/etc/nsswitch.conf</em> file on Solaris
2365 and other System V Unix operating systems. If you have one, look for
2366 a line that begins with <tt class="literal">host</tt>: followed by one or
2367 more of <tt class="literal">files</tt>, <tt class="literal">bind</tt>,
2368 <tt class="literal">nis</tt>, or <tt class="literal">nis+</tt>. These are the
2369 name services to use, in order, with optional extra material in
2370 square brackets. The <tt class="literal">files</tt> keyword is for
2371 using <em class="emphasis">HOSTS</em> files, while <tt class="literal">bind</tt>
2372 (the Berkeley Internet Name Daemon) refers to using DNS.</p>
2373
2374 <p>If the client and server differ, the first thing to do is to get them
2375 in sync. Clients can use DNS, WINS, <em class="emphasis">HOSTS</em>, and
2376 <em class="emphasis">LMHOSTS</em> files, but not NIS or NIS+. Servers can
2377 use <em class="emphasis">HOSTS</em> and <em class="filename">LMHOSTS</em>
2378 files, DNS, NIS or NIS+, and winbind, but not WINS&mdash;even if your
2379 Samba server provides WINS services. If you can't
2380 get all the systems to use the same services, you'll
2381 have to check the server and the client carefully for the same data.</p>
2382
2383 <p>You can also make use of the <em class="emphasis">-R</em> (resolve order)
2384 option for <em class="emphasis">smbclient</em>. If you want to
2385 troubleshoot WINS, for example, you'd say:</p>
2386
2387 <blockquote><pre class="code">$ <tt class="userinput"><b>smbclient -L </b></tt><em class="replaceable">server</em> <tt class="userinput"><b>-R wins</b></tt></pre></blockquote>
2388
2389 <p>The possible settings are <tt class="literal">hosts</tt> (which means
2390 whatever the Unix system is using, not just<em class="filename">
2391 /etc/hosts</em> files), <tt class="literal">lmhosts</tt>,
2392 <tt class="literal">wins</tt>, and <tt class="literal">bcast</tt> (broadcast).</p>
2393
2394 <p>In the following sections, we use the term <em class="emphasis">long
2395 name</em> for a fully qualified domain name (FQDN), such as
2396 <tt class="literal">server.example.com</tt> , and the term <em class="emphasis">short
2397 name</em> for the host part of an FQDN, such as
2398 <tt class="literal">server</tt>.</p>
2399
2400
2401 </div>
2402
2403
2404
2405 <div class="sect3"><a name="samba2-CHP-12-SECT-2.7.2"/>
2406
2407 <h3 class="head3">Cannot look up hostnames</h3>
2408
2409 <p><a name="INDEX-91"/>Try the
2410 following:</p>
2411
2412 <dl>
2413 <dt><b>DNS</b></dt>
2414 <dd>
2415 <p>Run <tt class="literal">nslookup</tt> <em class="replaceable">name</em>. If
2416 this fails, look for a <em class="filename">resolv.conf</em> error, a
2417 downed DNS server, or a short/long name problem (see the next
2418 section). Try the following:</p>
2419
2420
2421 <ul><li>
2422 <p>Your <em class="filename">/etc/resolv.conf</em> file should contain one or
2423 more <tt class="literal">nameserver</tt> lines, each with an IP address.
2424 These are the addresses of your DNS servers.</p>
2425 </li><li>
2426 <p>Ping each server address you find. If this fails for one, suspect the
2427 system. If it fails for each, suspect your network.</p>
2428 </li><li>
2429 <p>Retry the lookup using the full domain name (e.g.,
2430 <tt class="literal">server.example.com</tt>) if you tried the short name
2431 first, or the short name if you tried the long name first. If results
2432 differ, skip to the next section.</p>
2433 </li></ul>
2434 </dd>
2435
2436
2437
2438 <dt><b>Broadcast/ WINS</b></dt>
2439 <dd>
2440 <p>Broadcast/ WINS does only short names such as
2441 <tt class="literal">server</tt>, and not long ones, such as
2442 <tt class="literal">server.example.com</tt>. Run
2443 <tt class="literal">nmblookup</tt> <tt class="literal">-S</tt>
2444 <em class="replaceable">server</em>. This reports everything broadcast
2445 has registered for the name. In our example, it looks like this:</p>
2446
2447 <blockquote><pre class="code">$ <tt class="userinput"><b>nmblookup -S server</b></tt>
2448 Looking up status of 192.168.236.86
2449 received 10 names
2450         SERVER           &lt;00&gt; -         M &lt;ACTIVE&gt; 
2451         SERVER           &lt;03&gt; -         M &lt;ACTIVE&gt; 
2452         SERVER           &lt;1f&gt; -         M &lt;ACTIVE&gt; 
2453         SERVER           &lt;20&gt; -         M &lt;ACTIVE&gt; 
2454         ..__MSBROWSE__.  &lt;01&gt; - &lt;GROUP&gt; M &lt;ACTIVE&gt; 
2455         MYGROUP          &lt;00&gt; - &lt;GROUP&gt; M &lt;ACTIVE&gt; 
2456         MYGROUP          &lt;1b&gt; -         M &lt;ACTIVE&gt; 
2457         MYGROUP          &lt;1c&gt; - &lt;GROUP&gt; M &lt;ACTIVE&gt; 
2458         MYGROUP          &lt;1d&gt; -         M &lt;ACTIVE&gt; 
2459         MYGROUP          &lt;1e&gt; - &lt;GROUP&gt; M &lt;ACTIVE&gt;</pre></blockquote>
2460
2461 <p>The required entry is <tt class="literal">SERVER</tt>
2462 <tt class="literal">&lt;00&gt;</tt>, which identifies
2463 <em class="replaceable">server</em> as being this
2464 system's NetBIOS name. You should also see your
2465 workgroup mentioned one or more times. If these lines are missing,
2466 Broadcast/WINS cannot look up names and will need attention.</p>
2467
2468 <a name="samba2-CHP-12-NOTE-160"/><blockquote class="note"><h4 class="objtitle">TIP</h4>
2469 <p>The numbers in angle brackets in the previous output identify NetBIOS
2470 names as being workgroups, workstations, and file users of the
2471 messenger service, master browsers, domain master browsers, domain
2472 controllers, and a plethora of others. We primarily use
2473 <tt class="literal">&lt;00&gt;</tt> to identify system and workgroup names
2474 and <tt class="literal">&lt;20&gt;</tt> to identify systems as servers. The
2475 complete list is available at <a href="http://support.microsoft.com/support/kb/articles/q163/4/09.asp">http://support.microsoft.com/support/kb/articles/q163/4/09.asp</a>.</p>
2476 </blockquote>
2477 </dd>
2478
2479
2480
2481 <dt><b>NIS</b></dt>
2482 <dd>
2483 <p>Try <tt class="literal">ypmatch</tt> <tt class="literal">name</tt>
2484 <tt class="literal">hosts</tt>. If this fails, NIS is down. Find out the
2485 NIS server's name by running
2486 <em class="emphasis">ypwhich</em>, and ping the system to see if
2487 it's accessible.</p>
2488 </dd>
2489
2490
2491
2492 <dt><b>NIS+</b></dt>
2493 <dd>
2494 <p>If you're running NIS+, try
2495 <tt class="literal">nismatch</tt> <tt class="literal">name</tt>
2496 <tt class="literal">hosts</tt>. If this fails, NIS is down. Find out the
2497 NIS+ server's name by running
2498 <em class="emphasis">niswhich</em>, and ping that system to see if
2499 it's accessible.</p>
2500 </dd>
2501
2502
2503
2504 <dt><b>hosts and HOSTS files</b></dt>
2505 <dd>
2506 <p>Inspect the <em class="filename">HOSTS</em> file on the client
2507 (<em class="filename">C:\Windows\ Hosts</em> on Windows 95/98/Me, and
2508 <em class="filename">C:\WINNT \system32\drivers\etc\hosts</em> on Windows
2509 NT/2000/XP). Each line should have an IP number and one or more
2510 names, the primary name first, then any optional aliases. An example
2511 follows:</p>
2512
2513
2514 <blockquote><pre class="code">127.0.0.1         localhost
2515 192.168.236.1     dns.svc.example.com 
2516 192.168.236.10    client.example.com client 
2517 192.168.236.11    backup.example.com loghost 
2518 192.168.236.86    server.example.com server 
2519 192.168.236.254   router.svc.example.com</pre></blockquote>
2520
2521 <p>On Unix, <tt class="literal">localhost</tt> should always be 127.0.0.1,
2522 although it might be just an alias for a hostname on the PC. On the
2523 client, check that there are no <tt class="literal">#XXX</tt> directives at
2524 the ends of the lines; these are LAN Manager/NetBIOS directives and
2525 should appear only in <em class="emphasis">LMHOSTS</em> files.</p>
2526 </dd>
2527
2528
2529
2530 <dt><b>LMHOSTS files</b></dt>
2531 <dd>
2532 <p>This file is a local source for LAN Manager (NetBIOS) names. It has a
2533 format similar to <em class="filename">hosts</em> files, but it does not
2534 support long-form domain names (e.g.,
2535 <tt class="literal">server.example.com</tt>) and can have a number of
2536 optional <tt class="literal">#XXX</tt> directives following the NetBIOS
2537 names. There is usually an <em class="emphasis">lmhosts.sam</em> (for
2538 sample) file located in <em class="filename">C:\Windows</em> on Windows
2539 95/98/Me, and in <em class="filename">C:\WINNT\system32\drivers\etc</em>
2540 on Windows NT/2000/XP, but it's not used unless it
2541 is renamed to <em class="emphasis">Lmhosts</em> in the same directory.</p>
2542 </dd>
2543
2544 </dl>
2545
2546
2547 </div>
2548
2549
2550
2551 <div class="sect3"><a name="samba2-CHP-12-SECT-2.7.3"/>
2552
2553 <h3 class="head3">Long and short hostnames</h3>
2554
2555 <p><a name="INDEX-92"/>Where the long (FQDN) form of a hostname
2556 works but the short name doesn't (for example,
2557 <tt class="literal">client.example.com</tt> works but
2558 <tt class="literal">client</tt> doesn't), consider the
2559 following:</p>
2560
2561 <dl>
2562 <dt><b>DNS </b></dt>
2563 <dd>
2564 <p>This usually indicates that there is no default domain in which to
2565 look up the short names. Look for a <tt class="literal">default</tt> line
2566 in <em class="filename">/etc/resolv.conf</em> on the Samba server with
2567 your domain in it, or look for a <tt class="literal">search</tt> line with
2568 one or more domains in it. One or the other might need to be present
2569 to make short names usable; which one depends on the vendor and
2570 version of the DNS resolver. Try adding <tt class="literal">domain</tt>
2571 <em class="replaceable">your_domain</em> to
2572 <em class="filename">resolv.conf</em>, and ask your network or DNS
2573 administrator what should be in the file.</p>
2574 </dd>
2575
2576
2577
2578 <dt><b>Broadcast/WINS </b></dt>
2579 <dd>
2580 <p>Broadcast/WINS doesn't support long names; it
2581 won't suffer from this problem.</p>
2582 </dd>
2583
2584
2585
2586 <dt><b>NIS </b></dt>
2587 <dd>
2588 <p>Try the command <tt class="literal">ypmatch</tt>
2589 <em class="replaceable">hostname</em> <tt class="literal">hosts</tt>. If you
2590 don't get a match, your tables
2591 don't include short names. Speak to your network
2592 manager; short names might be missing by accident or might be
2593 unsupported as a matter of policy. Some sites don't
2594 ever use (ambiguous) short names.</p>
2595 </dd>
2596
2597
2598
2599 <dt><b>NIS+</b></dt>
2600 <dd>
2601 <p>Try <tt class="literal">nismatch</tt> <em class="replaceable">hostname</em>
2602 <tt class="literal">hosts</tt>, and treat failure exactly as with NIS.</p>
2603 </dd>
2604
2605
2606
2607 <dt><b>hosts </b></dt>
2608 <dd>
2609 <p>If the short name is not in <em class="filename">/etc/hosts</em>, consider
2610 adding it as an alias. Avoid, if you can, short names as primary
2611 names (the first one on a line). Have them as aliases if your system
2612 permits.</p>
2613 </dd>
2614
2615
2616
2617 <dt><b>LMHOSTS </b></dt>
2618 <dd>
2619 <p>LAN Manager doesn't support long names, so it
2620 won't suffer from this problem.</p>
2621 </dd>
2622
2623 </dl>
2624
2625 <p>On the other hand, if the short form of the name works and the long
2626 form doesn't, consider the following:</p>
2627
2628 <dl>
2629 <dt><b>DNS </b></dt>
2630 <dd>
2631 <p>This is bizarre; see your network or DNS administrator, as this is
2632 probably a DNS setup error.</p>
2633 </dd>
2634
2635
2636
2637 <dt><b>Broadcast/WINS </b></dt>
2638 <dd>
2639 <p>This is normal; Broadcast/WINS can't use the long
2640 form. Optionally, consider DNS. (Be aware that Microsoft has stated
2641 that it will eventually switch entirely to DNS, even though DNS does
2642 not provide name types such as &lt;00&gt;.)</p>
2643 </dd>
2644
2645
2646
2647 <dt><b>NIS</b></dt>
2648 <dd>
2649 <p>If you can use <em class="emphasis">ypmatch</em> to look up the short form
2650 but not the long, consider adding the long form to the table as at
2651 least an alias.</p>
2652 </dd>
2653
2654
2655
2656 <dt><b>NIS+ </b></dt>
2657 <dd>
2658 <p>Same as NIS, except you use <em class="emphasis">nismatch</em> instead of
2659 <em class="emphasis">ypmatch</em> to look up names.</p>
2660 </dd>
2661
2662
2663
2664 <dt><b>hosts and HOSTS</b></dt>
2665 <dd>
2666 <p>Add the long name as at least an alias, and preferably as the primary
2667 form. Also consider using DNS if it's practical.</p>
2668 </dd>
2669
2670
2671
2672 <dt><b>LMHOSTS </b></dt>
2673 <dd>
2674 <p>This is normal. LAN Manager can't use the long form;
2675 consider switching to DNS or <em class="filename">hosts</em>.</p>
2676 </dd>
2677
2678 </dl>
2679
2680
2681 </div>
2682
2683
2684
2685 <div class="sect3"><a name="samba2-CHP-12-SECT-2.7.4"/>
2686
2687 <h3 class="head3">Unusual delays</h3>
2688
2689 <p><a name="INDEX-93"/>When there is a long delay before the
2690 expected result:</p>
2691
2692 <dl>
2693 <dt><b>DNS </b></dt>
2694 <dd>
2695 <p>Test the same name with the <em class="emphasis">nslookup</em> command on
2696 the system that is slow (client or server). If
2697 <em class="emphasis">nslookup</em> is also slow, you have a DNS problem.
2698 If it's slower on a client, you might have too many
2699 protocols bound to the Ethernet card. Eliminate NetBEUI, which is
2700 infamously slow, and, optionally, Novell&mdash;assuming you
2701 don't need them. This is especially important on
2702 Windows 95, which is particularly sensitive to excess protocols.</p>
2703 </dd>
2704
2705
2706
2707 <dt><b>Broadcast/ WINS</b></dt>
2708 <dd>
2709 <p>Test the client using <em class="emphasis">nmblookup</em>; if
2710 it's faster, you probably have the protocols problem
2711 as mentioned in the previous item.</p>
2712 </dd>
2713
2714
2715
2716 <dt><b>NIS</b></dt>
2717 <dd>
2718 <p>Try <em class="emphasis">ypmatch</em>; if it's slow,
2719 report the problem to your network manager.</p>
2720 </dd>
2721
2722
2723
2724 <dt><b>NIS+ </b></dt>
2725 <dd>
2726 <p>Try <em class="emphasis">nismatch</em>, similarly.</p>
2727 </dd>
2728
2729
2730
2731 <dt><b>hosts and HOSTS</b></dt>
2732 <dd>
2733 <p>The <em class="emphasis">hosts</em> files, if of reasonable size, are
2734 always fast. You probably have the protocols problem mentioned
2735 previously under DNS.</p>
2736 </dd>
2737
2738
2739
2740 <dt><b>lmhosts and LMHOSTS</b></dt>
2741 <dd>
2742 <p>This is not a name lookup problem; <em class="emphasis">LMHOSTS</em> files
2743 are as fast as <em class="emphasis">hosts</em> and
2744 <em class="filename">HOSTS</em> files.</p>
2745 </dd>
2746
2747 </dl>
2748
2749
2750 </div>
2751
2752
2753
2754 <div class="sect3"><a name="samba2-CHP-12-SECT-2.7.5"/>
2755
2756 <h3 class="head3">Localhost issues</h3>
2757
2758 <p><a name="INDEX-94"/>When a localhost isn't
2759 127.0.0.1, try the following:</p>
2760
2761 <dl>
2762 <dt><b>DNS</b></dt>
2763 <dd>
2764 <p>There is probably no record for <tt class="literal">localhost</tt>.
2765 <tt class="literal">A</tt> <tt class="literal">127.0.0.1</tt>. Arrange to add
2766 one, as well as a reverse entry,
2767 <tt class="literal">1.0.0.127.IN-ADDR.ARPA</tt> <tt class="literal">PTR</tt>
2768 <tt class="literal">127.0.0.1</tt>.</p>
2769 </dd>
2770
2771
2772
2773 <dt><b>Broadcast/WINS</b></dt>
2774 <dd>
2775 <p>Not applicable.</p>
2776 </dd>
2777
2778
2779
2780 <dt><b>NIS</b></dt>
2781 <dd>
2782 <p>If <tt class="literal">localhost</tt> isn't in the table,
2783 add it.</p>
2784 </dd>
2785
2786
2787
2788 <dt><b>NIS+ </b></dt>
2789 <dd>
2790 <p>If <tt class="literal">localhost</tt> isn't in the table,
2791 add it.</p>
2792 </dd>
2793
2794
2795
2796 <dt><b>hosts and HOSTS</b></dt>
2797 <dd>
2798 <p>Add a line that says <tt class="literal">127.0.0.1</tt>
2799 <tt class="literal">localhost</tt>.</p>
2800 </dd>
2801
2802
2803
2804 <dt><b>LMHOSTS</b></dt>
2805 <dd>
2806 <p>Not applicable. <a name="INDEX-95"/><a name="INDEX-96"/></p>
2807 </dd>
2808
2809 </dl>
2810
2811
2812 </div>
2813
2814
2815 </div>
2816
2817
2818 <div class="sect2"><a name="samba2-CHP-12-SECT-2.8"/>
2819
2820 <h3 class="head2">Troubleshooting Network Addresses</h3>
2821
2822 <p><a name="INDEX-97"/><a name="INDEX-98"/>A
2823 number of common problems are caused by incorrect routing of Internet
2824 addresses or by the incorrect assignment of addresses. This section
2825 helps you determine what your addresses are.</p>
2826
2827
2828 <div class="sect3"><a name="samba2-CHP-12-SECT-2.8.1"/>
2829
2830 <h3 class="head3">Netmasks</h3>
2831
2832 <p>Using the <a name="INDEX-99"/>netmask, it is possible to
2833 determine which addresses can be reached directly (i.e., which are on
2834 the local network) and which addresses require forwarding packets
2835 through a router. If the netmask is wrong, the systems will make one
2836 of two mistakes. One is to route local packets via a router, which is
2837 an expensive waste of time&mdash;it might work reasonably fast, it
2838 might run slowly, or it might fail utterly. The second mistake is to
2839 fail to send packets from a remote system to the router, which will
2840 prevent them from being forwarded to the remote system.</p>
2841
2842 <p>The netmask is a number like an IP address, with one-bits for the
2843 network part of an address and zero-bits for the host portion. It is
2844 used as a bitmask to mask off parts of the address inside the TCP/IP
2845 code. If the mask is 255.255.0.0, the first 2 bytes are the network
2846 part and the last 2 are the host part. More common is 255.255.255.0,
2847 in which the first 3 bytes are the network part and the last one is
2848 the host part.</p>
2849
2850 <p>For example, let's say your IP address is
2851 192.168.0.10 and the Samba server is 192.168.236.86. If your netmask
2852 happens to be 255.255.255.0, the network part of the address is the
2853 first 3 bytes, and the host part is the last byte. In this case, the
2854 network parts are different, and the systems are on different
2855 networks:</p>
2856
2857 <a name="ch12-37-fm2xml"/><table border="1">
2858
2859
2860
2861 <tr>
2862 <th>
2863 <p>Network part</p>
2864 </th>
2865 <th>
2866 <p>Host part</p>
2867 </th>
2868 </tr>
2869
2870
2871 <tr>
2872 <td>
2873 <p>192 168 000</p>
2874 </td>
2875 <td>
2876 <p>10</p>
2877 </td>
2878 </tr>
2879 <tr>
2880 <td>
2881 <p>192 168 235</p>
2882 </td>
2883 <td>
2884 <p>86</p>
2885 </td>
2886 </tr>
2887
2888 </table>
2889
2890 <p>If your netmask happens to be 255.255.0.0, the network part is just
2891 the first 2 bytes. In this case, the network parts match, and so the
2892 two systems are on the same network:</p>
2893
2894 <a name="ch12-38-fm2xml"/><table border="1">
2895
2896
2897
2898 <tr>
2899 <th>
2900 <p>Network part</p>
2901 </th>
2902 <th>
2903 <p>Host part</p>
2904 </th>
2905 </tr>
2906
2907
2908 <tr>
2909 <td>
2910 <p>192 168</p>
2911 </td>
2912 <td>
2913 <p>000 10</p>
2914 </td>
2915 </tr>
2916 <tr>
2917 <td>
2918 <p>192 168</p>
2919 </td>
2920 <td>
2921 <p>236 86</p>
2922 </td>
2923 </tr>
2924
2925 </table>
2926
2927 <p>Make sure the netmask in use on each system matches the structure of
2928 your network. On every subnet, the netmask should be identical on
2929 each system.</p>
2930
2931
2932 </div>
2933
2934
2935
2936 <div class="sect3"><a name="samba2-CHP-12-SECT-2.8.2"/>
2937
2938 <h3 class="head3">Broadcast addresses</h3>
2939
2940 <p>The <a name="INDEX-100"/>broadcast address is a normal address,
2941 with the hosts part all one-bits. It means &quot;all
2942 hosts on your network.&quot; You can compute it easily
2943 from your netmask and address: take the address and put one-bits in
2944 it for all the bits that are zero at the end of the netmask (the host
2945 part). The following table illustrates this:</p>
2946
2947 <a name="ch12-39-fm2xml"/><table border="1">
2948
2949
2950
2951
2952 <tr>
2953 <th>
2954 </th>
2955 <th>
2956 <p>Network part</p>
2957 </th>
2958 <th>
2959 <p>Host part</p>
2960 </th>
2961 </tr>
2962
2963
2964 <tr>
2965 <td>
2966 <p>IP address</p>
2967 </td>
2968 <td>
2969 <p>192 168 236</p>
2970 </td>
2971 <td>
2972 <p>86</p>
2973 </td>
2974 </tr>
2975 <tr>
2976 <td>
2977 <p>Netmask</p>
2978 </td>
2979 <td>
2980 <p>255 255 255</p>
2981 </td>
2982 <td>
2983 <p>000</p>
2984 </td>
2985 </tr>
2986 <tr>
2987 <td>
2988 <p>Broadcast</p>
2989 </td>
2990 <td>
2991 <p>192 168 236</p>
2992 </td>
2993 <td>
2994 <p>255</p>
2995 </td>
2996 </tr>
2997
2998 </table>
2999
3000 <p>In this example, the broadcast address on the 192.168.236 network is
3001 192.168.236.255. There is also an old
3002 &quot;universal&quot; broadcast address,
3003 255.255.255.255. Routers are prohibited from forwarding these, but
3004 most systems on your local network will respond to broadcasts to this
3005 address.</p>
3006
3007
3008 </div>
3009
3010
3011
3012 <div class="sect3"><a name="samba2-CHP-12-SECT-2.8.3"/>
3013
3014 <h3 class="head3">Network address ranges</h3>
3015
3016 <p>A <a name="INDEX-101"/>number of address ranges have been
3017 reserved for testing and for nonconnected networks; we use these for
3018 the examples in this book. If you don't have an
3019 address yet, feel free to use one of these to start. They include one
3020 class A network, 10.*.*.*, a range of class B network addresses,
3021 172.16.*.* through 172.31.*.*, and 254 class C networks, 192.168.1.*
3022 through 192.168.254.*. The domain <tt class="literal">example.com</tt> is
3023 also reserved for unconnected networks, explanatory examples, and
3024 books.</p>
3025
3026 <p>If you're actually connecting to the Internet,
3027 you'll need to get an appropriate IP address and a
3028 domain name, probably through the same company that provides your
3029 connection.</p>
3030
3031
3032 </div>
3033
3034
3035
3036 <div class="sect3"><a name="samba2-CHP-12-SECT-2.8.4"/>
3037
3038 <h3 class="head3">Finding your network address</h3>
3039
3040 <p><a name="INDEX-102"/>If you
3041 haven't recorded your IP address, you can learn it
3042 through the <em class="emphasis">ifconfig</em><a name="INDEX-103"/> command on Unix or the
3043 <em class="emphasis">ipconfig</em> <a name="INDEX-104"/>command on Windows. (Check your manual
3044 pages for any options required by your brand of Unix. For example,
3045 <tt class="literal">ifconfig</tt> <tt class="literal">-a</tt> works on Solaris.)
3046 You should see output similar to the following:</p>
3047
3048 <blockquote><pre class="code">$ <tt class="userinput"><b>ifconfig -a</b></tt> 
3049 le0: flags=63&lt;UP,BROADCAST,NOTRAILERS,RUNNING &gt; 
3050       inet 192.168.236.11 netmask ffffff00 broadcast 192.168.236.255 
3051 lo0: flags=49&lt;&amp;lt&gt;UP,LOOPBACK,RUNNING&lt;&amp;gt&gt;         
3052       inet 127.0.0.1 netmask ff000000</pre></blockquote>
3053
3054 <p>One of the interfaces will be loopback (in our examples,
3055 <tt class="literal">lo0</tt>), and the other will be the regular IP
3056 interface. The flags should show that the interface is running, and
3057 Ethernet interfaces will also say they support broadcasts (PPP
3058 interfaces don't). The other places to look for IP
3059 addresses are <em class="filename">/etc/hosts</em> files, Windows
3060 <em class="emphasis">HOSTS</em> files, Windows
3061 <em class="emphasis">LMHOSTS</em> files, NIS, NIS+, and DNS. <a name="INDEX-105"/><a name="INDEX-106"/></p>
3062
3063
3064 </div>
3065
3066
3067 </div>
3068
3069
3070 <div class="sect2"><a name="samba2-CHP-12-SECT-2.9"/>
3071
3072 <h3 class="head2">Troubleshooting NetBIOS Names</h3>
3073
3074 <p><a name="INDEX-107"/><a name="INDEX-108"/>Historically, SMB protocols have
3075 depended on the NetBIOS name system, also called the LAN Manager name
3076 system. This was a simple scheme where each system had a unique
3077 20-character name and broadcast it on the LAN for everyone to know.
3078 With TCP/IP, we tend to use names such as
3079 <tt class="literal">client.example.com</tt>, stored in
3080 <em class="filename">/etc/hosts</em> files through DNS or WINS.</p>
3081
3082 <p>The usual mapping of domain names such as
3083 <tt class="literal">server.example.com</tt> to NetBIOS names simply uses
3084 the <tt class="literal">server</tt> part as the NetBIOS name and converts
3085 it to uppercase. Alas, this doesn't always work,
3086 especially if you have a system with a 21-character name; not
3087 everyone uses the same NetBIOS and DNS names. For example,
3088 <tt class="literal">corpvm1</tt> along with <tt class="literal">vm1.corp.com</tt>
3089 is not unusual.</p>
3090
3091 <p>A system with a different NetBIOS name and domain name is confusing
3092 when you're troubleshooting; we recommend that you
3093 try to avoid this wherever possible. NetBIOS names are discoverable
3094 with <em class="emphasis">smbclient</em> :</p>
3095
3096 <ul><li>
3097 <p>If you can list shares on your Samba server with
3098 <tt class="literal">smbclient</tt> <tt class="literal">-L</tt>
3099 <tt class="literal">short_name</tt>, the short name is the NetBIOS name.</p>
3100 </li><li>
3101 <p>If you get <tt class="literal">Get_Hostbyname</tt>:
3102 <tt class="literal">Unknown</tt> <tt class="literal">host</tt>
3103 <tt class="literal">name</tt>, there is probably a mismatch. Check in the
3104 <em class="filename">smb.conf</em> file to see if the NetBIOS name is
3105 explicitly set.</p>
3106 </li><li>
3107 <p>Try to list shares again, specifying <tt class="literal">-I</tt> and the IP
3108 address of the Samba server (e.g., <tt class="literal">smbclient</tt>
3109 <tt class="literal">-L</tt> <tt class="literal">server</tt> <tt class="literal">-I</tt>
3110 <tt class="literal">192.168.236.86</tt>). This overrides the name lookup
3111 and forces the packets to go to the IP address. If this works, there
3112 was a mismatch.</p>
3113 </li><li>
3114 <p>Try with <tt class="literal">-I</tt> and the full domain name of the server
3115 (e.g., <tt class="literal">smbclient</tt> <tt class="literal">-L</tt>
3116 <tt class="literal">server</tt> <tt class="literal">-I</tt>
3117 <tt class="literal">server.example.com</tt>). This tests the lookup of the
3118 domain name, using whatever scheme the Samba server uses (e.g., DNS).
3119 If it fails, you have a name service problem. You should reread the
3120 earlier section, <a href="ch12.html#samba2-CHP-12-SECT-2.7">Section 12.2.7</a>,
3121 after you finish troubleshooting the NetBIOS names.</p>
3122 </li><li>
3123 <p>Try with the <tt class="literal">-n</tt> (NetBIOS name) option, giving it
3124 the name you expect to work (e.g., <tt class="literal">smbclient</tt>
3125 <tt class="literal">-n</tt> <tt class="literal">server</tt> <tt class="literal">-L</tt>
3126 <tt class="literal">server-12</tt>), but without overriding the IP address
3127 through <tt class="literal">-I</tt>. If this works, the name you specified
3128 with <tt class="literal">-n</tt> is the actual NetBIOS name of the server.
3129 If you receive <tt class="literal">Get-Hostbyname</tt>:
3130 <tt class="literal">Unknown</tt> <tt class="literal">host</tt>
3131 <tt class="literal">SERVER</tt>, it's not the right server
3132 yet.</p>
3133 </li><li>
3134 <p>If nothing is working so far, repeat the tests specifying
3135 <tt class="literal">-U</tt> <em class="emphasis">username</em> and
3136 <tt class="literal">-W</tt> <em class="emphasis">workgroup</em>, with the
3137 username and workgroup in uppercase, to make sure
3138 you're not being derailed by a user or workgroup
3139 mismatch.</p>
3140 </li><li>
3141 <p>If still nothing works and you had evidence of a name service
3142 problem, troubleshoot the name service (see the earlier section,
3143 <a href="ch12.html#samba2-CHP-12-SECT-2.7">Section 12.2.7</a>) and then return to
3144 the NetBIOS name service. <a name="INDEX-109"/><a name="INDEX-110"/></p>
3145 </li></ul>
3146
3147 </div>
3148
3149
3150 </div>
3151
3152
3153
3154 <div class="sect1"><a name="samba2-CHP-12-SECT-3"/>
3155
3156 <h2 class="head1">Extra Resources</h2>
3157
3158 <p>At some point during your work with Samba, you'll
3159 want to turn to online or printed resources for news, updates, and
3160 aid.</p>
3161
3162
3163 <div class="sect2"><a name="samba2-CHP-12-SECT-3.1"/>
3164
3165 <h3 class="head2">Documentation and FAQs</h3>
3166
3167 <p>It's OK to read the <a name="INDEX-111"/><a name="INDEX-112"/>documentation. Really. Nobody can see you,
3168 and we won't tell. In fact, Samba ships with a large
3169 set of documentation files, and it is well worth the effort to at
3170 least browse through them, either in the distribution directory on
3171 your computer under <em class="filename">/docs</em> or online at the Samba
3172 web site: <a href="http://www.samba.org">http://www.samba.org</a>. The most current
3173 FAQ list, bug information, and distribution locations are located at
3174 the web site, with links to all the Samba manual pages and HOWTOs.</p>
3175
3176
3177 </div>
3178
3179
3180 <div class="sect2"><a name="samba2-CHP-12-SECT-3.2"/>
3181
3182 <h3 class="head2">Samba Newsgroups</h3>
3183
3184 <p><a name="INDEX-113"/>Usenet
3185 newsgroups have always been a great place to get advice on just about
3186 any topic. In the past few years, though, this vast pool of knowledge
3187 has developed something that has made it into an invaluable resource:
3188 a memory. Archival and search sites such as the one at
3189 <a name="INDEX-114"/>Google (<a href="http://groups.google.com/advanced_group_search">http://groups.google.com/advanced_group_search</a>)
3190 have made sifting through years of valuable solutions as simple as a
3191 few mouse clicks.</p>
3192
3193 <p>The primary newsgroup for Samba is
3194 <em class="emphasis">comp.protocols.smb</em><a name="INDEX-115"/>. This should always be your first
3195 stop when there's a problem. More often than not,
3196 spending 5 minutes researching an error here will save hours of
3197 frustration while trying to debug something yourself.</p>
3198
3199 <p>When searching a newsgroup, try to be as specific as possible, but
3200 not too wordy. Searching on actual error messages is best. If you
3201 don't find an answer immediately in the newsgroup,
3202 resist the temptation to post a request for help until
3203 you've done a bit more work on the problem. You
3204 might find that the answer is in a FAQ or one of the many
3205 documentation files that ship with Samba, or a solution might become
3206 evident when you run one of Samba's diagnostic
3207 tools. If nothing works, post a request in
3208 <em class="emphasis">comp.protocols.smb</em>, and be as specific as
3209 possible about what you have tried and what you are seeing. Include
3210 any error messages that appear. It might be days before you receive
3211 help, so be patient and keep trying things while you wait.</p>
3212
3213 <a name="samba2-CHP-12-NOTE-161"/><blockquote class="note"><h4 class="objtitle">TIP</h4>
3214 <p>Once you post a request for help, keep poking at the problem
3215 yourself. Most of us have had the experience of posting a Usenet
3216 article containing hundreds of lines of intricate detail, only to
3217 solve the problem an hour later after the article has blazed its way
3218 across several continents. The rule of thumb goes something like
3219 this: the more folks who have read your request, the simpler the
3220 solution. Usually this means that once everyone in the Unix community
3221 has seen your article, the solution will be something simple such as,
3222 &quot;Plug the power cord into the wall
3223 socket.&quot;</p>
3224 </blockquote>
3225
3226
3227 </div>
3228
3229
3230 <div class="sect2"><a name="samba2-CHP-12-SECT-3.3"/>
3231
3232 <h3 class="head2">Samba Mailing Lists</h3>
3233
3234 <p>The following are <a name="INDEX-116"/>mailing lists for support with Samba. See
3235 the Samba home page, <a href="http://www.samba.org/">http://www.samba.org/</a>, for
3236 information on subscribing and unsubscribing to these mailing lists:</p>
3237
3238 <dl>
3239 <dt><b>samba@samba.org</b></dt>
3240 <dd>
3241 <p>This is the primary mailing list for general questions and discussion
3242 regarding Samba.</p>
3243 </dd>
3244
3245
3246
3247 <dt><b>samba-announce@samba.org</b></dt>
3248 <dd>
3249 <p>This list is for receiving news regarding Samba, such as
3250 announcements of new releases.</p>
3251 </dd>
3252
3253
3254
3255 <dt><b>samba-cvs@samba.org</b></dt>
3256 <dd>
3257 <p>By subscribing to this list, you can automatically receive a message
3258 every time one of the Samba developers updates the Samba source code
3259 in the CVS repository. You might want to do this if you are waiting
3260 for a specific bug fix or feature to be applied. To avoid congesting
3261 your email inbox, we suggest using the digest feature, which
3262 consolidates messages into a smaller number of emails.</p>
3263 </dd>
3264
3265
3266
3267 <dt><b>samba-docs@samba.org</b></dt>
3268 <dd>
3269 <p>This list is for discussing Samba documentation.</p>
3270 </dd>
3271
3272
3273
3274 <dt><b>samba-vms@samba.org</b></dt>
3275 <dd>
3276 <p>This mailing list is for people who are running Samba on the VMS
3277 operating system.</p>
3278 </dd>
3279
3280
3281
3282 <dt><b>samba-binaries@samba.org</b></dt>
3283 <dd>
3284 <p>This is a list for developers to use when discussing precompiled
3285 Samba distributions.</p>
3286 </dd>
3287
3288
3289
3290 <dt><b>samba-technical@samba.org</b></dt>
3291 <dd>
3292 <p>This mailing list is for developer discussion of the Samba code.</p>
3293 </dd>
3294
3295 </dl>
3296
3297 <p>Searchable versions of the Samba mailing list archives can be found
3298 at <a href="http://marc.theaimsgroup.com">http://marc.theaimsgroup.com</a>.</p>
3299
3300 <p>When posting messages to the Samba mailing lists, keep in mind that
3301 you are sending your message to a large audience. The notes in the
3302 previous section regarding Usenet postings also apply here. A
3303 well-formulated question or comment is more likely to be answered,
3304 and a poorly conceived message is <em class="emphasis">very</em> likely to
3305 be ignored!</p>
3306
3307
3308 </div>
3309
3310
3311 <div class="sect2"><a name="samba2-CHP-12-SECT-3.4"/>
3312
3313 <h3 class="head2">Further Reading</h3>
3314
3315 <ol><li>
3316 <p>Hunt, Craig. <em class="emphasis">TCP/IP Network Administration</em>,
3317 Third Edition. Sebastopol, CA: O'Reilly
3318 &amp; Associates, 1997.</p>
3319 </li>
3320 <li>
3321 <p>Hunt, Craig, and Robert Bruce Thompson. <em class="emphasis">Windows NT TCP/IP
3322 Network Administration</em>. Sebastopol, CA:
3323 O'Reilly &amp; Associates, 1998.</p>
3324 </li>
3325 <li>
3326 <p>Albitz, Paul, and Cricket Liu. <em class="emphasis">DNS and Bind</em>,
3327 Fourth Edition. Sebastopol, CA: O'Reilly
3328 &amp; Associates, 1998.</p>
3329 </li>
3330 <li>
3331 <p>Stern, Hal. <em class="emphasis">Managing NFS and NIS</em>, Second
3332 Edition. Sebastopol, CA: O'Reilly &amp; Associates,
3333 1991.<a name="INDEX-117"/></p>
3334 </li></ol>
3335
3336 </div>
3337
3338
3339 </div>
3340
3341 <hr/><h4 class="head4"><a href="toc.html">TOC</a></h4></body></html>