| 1 | <?xml version="1.0" encoding="iso-8859-1"?> | 
|---|
| 2 | <!DOCTYPE chapter PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc"> | 
|---|
| 3 | <chapter id="problems"> | 
|---|
| 4 |  | 
|---|
| 5 | <chapterinfo> | 
|---|
| 6 | &author.jerry; | 
|---|
| 7 | &author.jelmer; | 
|---|
| 8 | &author.dbannon; | 
|---|
| 9 | &author.danshearer; | 
|---|
| 10 | <pubdate>8 Apr 2003</pubdate> | 
|---|
| 11 | </chapterinfo> | 
|---|
| 12 |  | 
|---|
| 13 | <title>Analyzing and Solving Samba Problems</title> | 
|---|
| 14 |  | 
|---|
| 15 | <para> | 
|---|
| 16 | <indexterm><primary>RFCs</primary></indexterm> | 
|---|
| 17 | <indexterm><primary>SMB</primary></indexterm> | 
|---|
| 18 | <indexterm><primary>documentation</primary></indexterm> | 
|---|
| 19 | There are many sources of information available in the form of mailing lists, RFCs, and documentation. The | 
|---|
| 20 | documentation that comes with the Samba distribution contains good explanations of general SMB topics such as | 
|---|
| 21 | browsing. | 
|---|
| 22 | </para> | 
|---|
| 23 |  | 
|---|
| 24 | <sect1> | 
|---|
| 25 | <title>Diagnostics Tools</title> | 
|---|
| 26 |  | 
|---|
| 27 | <para> | 
|---|
| 28 | <indexterm><primary>sniffer</primary></indexterm> | 
|---|
| 29 | <indexterm><primary>LAN</primary></indexterm> | 
|---|
| 30 | <indexterm><primary>analyzes data</primary></indexterm> | 
|---|
| 31 | <indexterm><primary>SMB networking</primary></indexterm> | 
|---|
| 32 | <indexterm><primary>network analyzer</primary></indexterm> | 
|---|
| 33 | With SMB networking, it is often not immediately clear what the cause is of a certain problem. Samba itself | 
|---|
| 34 | provides rather useful information, but in some cases you might have to fall back to using a | 
|---|
| 35 | <emphasis>sniffer</emphasis>. A sniffer is a program that listens on your LAN, analyzes the data sent on it, | 
|---|
| 36 | and displays it on the screen. | 
|---|
| 37 | </para> | 
|---|
| 38 |  | 
|---|
| 39 | <sect2> | 
|---|
| 40 | <title>Debugging with Samba Itself</title> | 
|---|
| 41 |  | 
|---|
| 42 | <para> | 
|---|
| 43 | <indexterm><primary>diagnostic tools</primary></indexterm> | 
|---|
| 44 | <indexterm><primary>debugging problems</primary></indexterm> | 
|---|
| 45 | <indexterm><primary>smbd</primary></indexterm> | 
|---|
| 46 | <indexterm><primary>nmbd</primary></indexterm> | 
|---|
| 47 | <indexterm><primary>debugging passwords</primary></indexterm> | 
|---|
| 48 | <indexterm><primary>debug level</primary></indexterm> | 
|---|
| 49 | <indexterm><primary>log level</primary></indexterm> | 
|---|
| 50 | One of the best diagnostic tools for debugging problems is Samba itself.  You can use the <option>-d | 
|---|
| 51 | option</option> for both &smbd; and &nmbd; to specify the <smbconfoption name="debug level"/> at which to run. | 
|---|
| 52 | See the man pages for <command>smbd, nmbd</command>, and &smb.conf; for more information regarding debugging | 
|---|
| 53 | options. The debug level (log level) can range from 1 (the default) to 10 (100 for debugging passwords). | 
|---|
| 54 | </para> | 
|---|
| 55 |  | 
|---|
| 56 | <para> | 
|---|
| 57 | <indexterm><primary>debugging</primary></indexterm> | 
|---|
| 58 | <indexterm><primary>gcc</primary></indexterm> | 
|---|
| 59 | <indexterm><primary>gdb</primary></indexterm> | 
|---|
| 60 | <indexterm><primary>smbd</primary></indexterm> | 
|---|
| 61 | <indexterm><primary>nmbd</primary></indexterm> | 
|---|
| 62 | <indexterm><primary>LsaEnumTrustedDomains</primary></indexterm> | 
|---|
| 63 | <indexterm><primary>attach gdb</primary></indexterm> | 
|---|
| 64 | Another helpful method of debugging is to compile Samba using the <command>gcc -g </command> flag. This will | 
|---|
| 65 | include debug information in the binaries and allow you to attach <command>gdb</command> to the running | 
|---|
| 66 | <command>smbd/nmbd</command> process.  To attach <command>gdb</command> to an <command>smbd</command> process | 
|---|
| 67 | for an NT workstation, first get the workstation to make the connection. Pressing ctrl-alt-delete and going | 
|---|
| 68 | down to the domain box is sufficient (at least, the first time you join the domain) to generate a | 
|---|
| 69 | <parameter>LsaEnumTrustedDomains</parameter>. Thereafter, the workstation maintains an open connection and | 
|---|
| 70 | there will be an smbd process running (assuming that you haven't set a really short smbd idle timeout). So, in | 
|---|
| 71 | between pressing <command>ctrl-alt-delete</command> and actually typing in your password, you can attach | 
|---|
| 72 | <command>gdb</command> and continue. | 
|---|
| 73 | </para> | 
|---|
| 74 |  | 
|---|
| 75 | <para> | 
|---|
| 76 | Some useful Samba commands worth investigating are: | 
|---|
| 77 | <indexterm><primary>testparm</primary></indexterm> | 
|---|
| 78 | <indexterm><primary>smbclient</primary></indexterm> | 
|---|
| 79 | <screen> | 
|---|
| 80 | &prompt;<userinput>testparm | more</userinput> | 
|---|
| 81 | &prompt;<userinput>smbclient -L //{netbios name of server}</userinput> | 
|---|
| 82 | </screen> | 
|---|
| 83 | </para> | 
|---|
| 84 |  | 
|---|
| 85 | </sect2> | 
|---|
| 86 |  | 
|---|
| 87 | <sect2> | 
|---|
| 88 | <title>Tcpdump</title> | 
|---|
| 89 |  | 
|---|
| 90 | <para> | 
|---|
| 91 | <indexterm><primary>tcpdump</primary></indexterm> | 
|---|
| 92 | <indexterm><primary>tethereal</primary></indexterm> | 
|---|
| 93 | <indexterm><primary>ethereal</primary></indexterm> | 
|---|
| 94 | <ulink url="http://www.tcpdump.org/">Tcpdump</ulink> was the first | 
|---|
| 95 | UNIX sniffer with SMB support. It is a command-line utility and | 
|---|
| 96 | now, its SMB support is somewhat lagging that of <command>ethereal</command> | 
|---|
| 97 | and <command>tethereal</command>. | 
|---|
| 98 | </para> | 
|---|
| 99 |  | 
|---|
| 100 | </sect2> | 
|---|
| 101 |  | 
|---|
| 102 | <sect2> | 
|---|
| 103 | <title>Ethereal</title> | 
|---|
| 104 |  | 
|---|
| 105 | <para> | 
|---|
| 106 | <indexterm><primary>ethereal</primary></indexterm> | 
|---|
| 107 | <ulink url="http://www.ethereal.com/">Ethereal</ulink> is a graphical sniffer, available for both UNIX (Gtk) | 
|---|
| 108 | and Windows. Ethereal's SMB support is quite good. For details on the use of <command>ethereal</command>, read | 
|---|
| 109 | the well-written Ethereal User Guide. | 
|---|
| 110 | </para> | 
|---|
| 111 |  | 
|---|
| 112 | <figure id="ethereal1"><title>Starting a Capture.</title><imagefile>ethereal1</imagefile></figure> | 
|---|
| 113 |  | 
|---|
| 114 | <para> | 
|---|
| 115 | <indexterm><primary>ports</primary></indexterm> | 
|---|
| 116 | Listen for data on ports 137, 138, 139, and 445. For example, use the filter <userinput>port 137, port 138, | 
|---|
| 117 | port 139, or port 445</userinput> as seen in <link linkend="ethereal1">Starting a Capture</link> snapshot. | 
|---|
| 118 | </para> | 
|---|
| 119 |  | 
|---|
| 120 | <para> | 
|---|
| 121 | A console version of ethereal is available as well and is called <command>tethereal</command>. | 
|---|
| 122 | </para> | 
|---|
| 123 |  | 
|---|
| 124 | <figure id="ethereal2"><title>Main Ethereal Data Window.</title><imagefile>ethereal2</imagefile></figure> | 
|---|
| 125 |  | 
|---|
| 126 | </sect2> | 
|---|
| 127 |  | 
|---|
| 128 | <sect2> | 
|---|
| 129 | <title>The Windows Network Monitor</title> | 
|---|
| 130 |  | 
|---|
| 131 | <para> | 
|---|
| 132 | <indexterm><primary>Network Monitor</primary></indexterm> | 
|---|
| 133 | <indexterm><primary>Netmon</primary></indexterm> | 
|---|
| 134 | <indexterm><primary>Microsoft Developer Network CDs</primary></indexterm> | 
|---|
| 135 | <indexterm><primary>SMS</primary></indexterm> | 
|---|
| 136 | <indexterm><primary>promiscuous mode</primary></indexterm> | 
|---|
| 137 | <indexterm><primary>ethereal</primary></indexterm> | 
|---|
| 138 | For tracing things on Microsoft Windows NT, Network Monitor (aka Netmon) is available on Microsoft Developer | 
|---|
| 139 | Network CDs, the Windows NT Server install CD, and the SMS CDs. The version of Netmon that ships with SMS | 
|---|
| 140 | allows for dumping packets between any two computers (i.e., placing the network interface in promiscuous | 
|---|
| 141 | mode).  The version on the NT Server install CD will only allow monitoring of network traffic directed to the | 
|---|
| 142 | local NT box and broadcasts on the local subnet. Be aware that Ethereal can read and write Netmon formatted | 
|---|
| 143 | files. | 
|---|
| 144 | </para> | 
|---|
| 145 |  | 
|---|
| 146 | <sect3> | 
|---|
| 147 | <title>Installing Network Monitor on an NT Workstation</title> | 
|---|
| 148 |  | 
|---|
| 149 | <para> | 
|---|
| 150 | <indexterm><primary>Netmon.</primary></indexterm> | 
|---|
| 151 | Installing Netmon on an NT workstation requires a couple of steps. The following are instructions for | 
|---|
| 152 | installing Netmon V4.00.349, which comes with Microsoft Windows NT Server 4.0, on Microsoft Windows NT | 
|---|
| 153 | Workstation 4.0. The process should be similar for other versions of Windows NT version of Netmon. You will | 
|---|
| 154 | need both the Microsoft Windows NT Server 4.0 Install CD and the Workstation 4.0 Install CD. | 
|---|
| 155 | </para> | 
|---|
| 156 |  | 
|---|
| 157 | <para> | 
|---|
| 158 | <indexterm><primary>Network Monitor Tools and Agent</primary></indexterm> | 
|---|
| 159 | Initially you will need to install <application>Network Monitor Tools and Agent</application> | 
|---|
| 160 | on the NT Server to do this: | 
|---|
| 161 | </para> | 
|---|
| 162 |  | 
|---|
| 163 | <itemizedlist> | 
|---|
| 164 | <listitem><para>Go to <guibutton>Start</guibutton> -> <guibutton>Settings</guibutton> -> <guibutton>Control Panel</guibutton> -> | 
|---|
| 165 | <guibutton>Network</guibutton> -> <guibutton>Services</guibutton> -> <guibutton>Add</guibutton>.</para></listitem> | 
|---|
| 166 |  | 
|---|
| 167 | <listitem><para>Select the <guilabel>Network Monitor Tools and Agent</guilabel> and click on <guibutton>OK</guibutton>.</para></listitem> | 
|---|
| 168 |  | 
|---|
| 169 | <listitem><para>Click on <guibutton>OK</guibutton> on the Network Control Panel.</para></listitem> | 
|---|
| 170 |  | 
|---|
| 171 | <listitem><para>Insert the Windows NT Server 4.0 install CD when prompted.</para></listitem> | 
|---|
| 172 | </itemizedlist> | 
|---|
| 173 |  | 
|---|
| 174 | <para> | 
|---|
| 175 | At this point, the Netmon files should exist in <filename>%SYSTEMROOT%\System32\netmon\*.*</filename>. | 
|---|
| 176 | Two subdirectories exist as well: <filename>parsers\</filename>, which contains the necessary DLLs | 
|---|
| 177 | for parsing the Netmon packet dump, and <filename>captures\</filename>. | 
|---|
| 178 | </para> | 
|---|
| 179 |  | 
|---|
| 180 | <para> | 
|---|
| 181 | To install the Netmon tools on an NT Workstation, you will first need to install the | 
|---|
| 182 | Network  Monitor Agent from the Workstation install CD. | 
|---|
| 183 | </para> | 
|---|
| 184 |  | 
|---|
| 185 | <itemizedlist> | 
|---|
| 186 | <listitem><para>Go to <guibutton>Start</guibutton> -> <guibutton>Settings</guibutton> -> | 
|---|
| 187 | <guibutton>Control Panel</guibutton> -> <guibutton>Network</guibutton> -> | 
|---|
| 188 | <guibutton>Services</guibutton> -> <guibutton>Add</guibutton>.</para></listitem> | 
|---|
| 189 |  | 
|---|
| 190 | <listitem><para>Select the <guilabel>Network Monitor Agent</guilabel>, click on | 
|---|
| 191 | <guibutton>OK</guibutton>.</para></listitem> | 
|---|
| 192 |  | 
|---|
| 193 | <listitem><para>Click on <guibutton>OK</guibutton> in the Network Control Panel. | 
|---|
| 194 | </para></listitem> | 
|---|
| 195 |  | 
|---|
| 196 | <listitem><para>Insert the Windows NT Workstation 4.0 install CD when prompted.</para></listitem> | 
|---|
| 197 | </itemizedlist> | 
|---|
| 198 |  | 
|---|
| 199 | <para> | 
|---|
| 200 | Now copy the files from the NT Server in <filename>%SYSTEMROOT%\System32\netmon</filename> | 
|---|
| 201 | to <filename>%SYSTEMROOT%\System32\netmon</filename> on the workstation and set permissions | 
|---|
| 202 | as you deem appropriate for your site. You will need administrative rights on the NT box to run Netmon. | 
|---|
| 203 | </para> | 
|---|
| 204 |  | 
|---|
| 205 | </sect3> | 
|---|
| 206 | <sect3> | 
|---|
| 207 | <title>Installing Network Monitor on Windows 9x/Me</title> | 
|---|
| 208 | <para> | 
|---|
| 209 | To install Netmon on Windows 9x/Me, install the Network Monitor Agent | 
|---|
| 210 | from the Windows 9x/Me CD (<filename>\admin\nettools\netmon</filename>). | 
|---|
| 211 | There is a readme file included with the Netmon driver files on the CD if you need | 
|---|
| 212 | information on how to do this. Copy the files from a working Netmon installation. | 
|---|
| 213 | </para> | 
|---|
| 214 | </sect3> | 
|---|
| 215 | </sect2> | 
|---|
| 216 | </sect1> | 
|---|
| 217 |  | 
|---|
| 218 | <sect1> | 
|---|
| 219 | <title>Useful URLs</title> | 
|---|
| 220 | <itemizedlist> | 
|---|
| 221 |  | 
|---|
| 222 | <listitem><para>See how Scott Merrill simulates a BDC behavior at | 
|---|
| 223 | <ulink noescape="1" url="http://www.skippy.net/linux/smb-howto.html"> | 
|---|
| 224 | http://www.skippy.net/linux/smb-howto.html</ulink>. </para></listitem> | 
|---|
| 225 |  | 
|---|
| 226 | <listitem><para>FTP site for older SMB specs, | 
|---|
| 227 | <ulink noescape="1" url="ftp://ftp.microsoft.com/developr/drg/CIFS/"> | 
|---|
| 228 | ftp://ftp.microsoft.com/developr/drg/CIFS/</ulink></para></listitem>. | 
|---|
| 229 |  | 
|---|
| 230 | </itemizedlist> | 
|---|
| 231 |  | 
|---|
| 232 | </sect1> | 
|---|
| 233 |  | 
|---|
| 234 | <sect1> | 
|---|
| 235 | <title>Getting Mailing List Help</title> | 
|---|
| 236 |  | 
|---|
| 237 | <para> | 
|---|
| 238 | There are a number of Samba-related mailing lists. Go to <ulink | 
|---|
| 239 | noescape="1" url="http://samba.org">http://samba.org</ulink>, click on your nearest mirror, | 
|---|
| 240 | and then click on <command>Support</command>. Next, click on <command> | 
|---|
| 241 | Samba-related mailing lists</command>. | 
|---|
| 242 | </para> | 
|---|
| 243 |  | 
|---|
| 244 | <para> | 
|---|
| 245 | For questions relating to Samba TNG, go to | 
|---|
| 246 | <ulink noescape="1" url="http://www.samba-tng.org/">http://www.samba-tng.org/</ulink>. | 
|---|
| 247 | It has been requested that you do not post questions about Samba-TNG to the | 
|---|
| 248 | mainstream Samba lists.</para> | 
|---|
| 249 |  | 
|---|
| 250 | <para> | 
|---|
| 251 | If you do post a message to one of the lists, please observe the following guidelines: | 
|---|
| 252 | </para> | 
|---|
| 253 |  | 
|---|
| 254 | <itemizedlist> | 
|---|
| 255 |  | 
|---|
| 256 | <listitem><para> | 
|---|
| 257 | <indexterm><primary>volunteers</primary></indexterm> | 
|---|
| 258 | Always remember that the developers are volunteers; they are | 
|---|
| 259 | not paid and they never guarantee to produce a particular feature at | 
|---|
| 260 | a particular time. Any timelines are <quote>best guess,</quote> and nothing more. | 
|---|
| 261 | </para></listitem> | 
|---|
| 262 |  | 
|---|
| 263 | <listitem><para> | 
|---|
| 264 | <indexterm><primary>PDC</primary></indexterm> | 
|---|
| 265 | Always mention what version of Samba you are using and what | 
|---|
| 266 | operating system it's running under. You should list the relevant sections of | 
|---|
| 267 | your &smb.conf; file, at least the options in <smbconfsection name="[global]"/> | 
|---|
| 268 | that affect PDC support. | 
|---|
| 269 | </para></listitem> | 
|---|
| 270 |  | 
|---|
| 271 | <listitem><para>In addition to the version, if you obtained Samba via | 
|---|
| 272 | CVS, mention the date when you last checked it out.</para></listitem> | 
|---|
| 273 |  | 
|---|
| 274 | <listitem><para> Try to make your questions clear and brief. Lots of long, | 
|---|
| 275 | convoluted questions get deleted before they are completely read! | 
|---|
| 276 | Do not post HTML-encoded messages. Most people on mailing lists simply delete | 
|---|
| 277 | them. | 
|---|
| 278 | </para></listitem> | 
|---|
| 279 |  | 
|---|
| 280 | <listitem><para> If you run one of those nifty <quote>I'm on holiday</quote> things when | 
|---|
| 281 | you are away, make sure its configured to not answer mailing list traffic. Autoresponses | 
|---|
| 282 | to mailing lists really irritate the thousands of people who end up having to deal | 
|---|
| 283 | with such bad netiquet bahavior. | 
|---|
| 284 | </para></listitem> | 
|---|
| 285 |  | 
|---|
| 286 | <listitem><para> | 
|---|
| 287 | <indexterm><primary>cross post</primary></indexterm> | 
|---|
| 288 | Don't cross post. Work out which is the best list to post to | 
|---|
| 289 | and see what happens. Do not post to both samba-ntdom and samba-technical. | 
|---|
| 290 | Many people active on the lists subscribe to more | 
|---|
| 291 | than one list and get annoyed to see the same message two or more times. | 
|---|
| 292 | Often someone who thinks a message would be better dealt | 
|---|
| 293 | with on another list will forward it on for you.</para></listitem> | 
|---|
| 294 |  | 
|---|
| 295 | <listitem><para>You might include <emphasis>partial</emphasis> | 
|---|
| 296 | log files written at a log level set to as much as 20. | 
|---|
| 297 | Please do not send the entire log but just enough to give the context of the | 
|---|
| 298 | error messages.</para></listitem> | 
|---|
| 299 |  | 
|---|
| 300 | <listitem><para>If you have a complete Netmon trace (from the opening of | 
|---|
| 301 | the pipe to the error), you can send the *.CAP file as well.</para></listitem> | 
|---|
| 302 |  | 
|---|
| 303 | <listitem><para>Please think carefully before attaching a document to an email. | 
|---|
| 304 | Consider pasting the relevant parts into the body of the message. The Samba | 
|---|
| 305 | mailing lists go to a huge number of people. Do they all need a copy of your | 
|---|
| 306 | &smb.conf; in their attach directory?</para></listitem> | 
|---|
| 307 |  | 
|---|
| 308 | </itemizedlist> | 
|---|
| 309 |  | 
|---|
| 310 | </sect1> | 
|---|
| 311 |  | 
|---|
| 312 | <sect1> | 
|---|
| 313 | <title>How to Get Off the Mailing Lists</title> | 
|---|
| 314 |  | 
|---|
| 315 | <para>To have your name removed from a Samba mailing list, go to the same | 
|---|
| 316 | place where you went to | 
|---|
| 317 | subscribe to it, go to <ulink noescape="1" url="http://lists.samba.org/">http://lists.samba.org</ulink>, | 
|---|
| 318 | click on your nearest mirror, click on <command>Support</command>, and | 
|---|
| 319 | then click on <command>Samba-related mailing lists</command>. | 
|---|
| 320 | </para> | 
|---|
| 321 |  | 
|---|
| 322 | <para> | 
|---|
| 323 | Please do not post messages to the list asking to be removed. You will only | 
|---|
| 324 | be referred to the above address (unless that process failed in some way). | 
|---|
| 325 | </para> | 
|---|
| 326 |  | 
|---|
| 327 | </sect1> | 
|---|
| 328 |  | 
|---|
| 329 | </chapter> | 
|---|