\documentstyle[fancybox,sem-a4,psfig]{seminar} \centerslidesfalse \def\printlandscape{\special{landscape}} % Works with dvips. \articlemag{1} \newpagestyle{pstyle}% {Samba - AUUG Hobart Conference February 1997\hspace{\fill}\rightmark \hspace{\fill}\thepage}{}% \pagestyle{pstyle} \slideframe{Oval} \newcommand{\heading}[1]{% \begin{center} \large\bf \shadowbox{#1}% \end{center} \vspace{1ex minus 1ex}} \newcommand{\BF}[1]{{\bf #1:}\hspace{1em}\ignorespaces} \begin{document} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{Samba} Samba has two things going for it. Its free and it works! Its put together by lots of volunteers, led by ``the Samba team''. The first tester of most new releases is my wife :-) Current version is 1.9.16p11, I hope! \end{slide} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{The SMB protocol} The SMB protocol is like the perl of filesystem protocols. It is horribly complex, and it has changed a lot over time. In Samba it is based on TCP for file sharing and UDP for browsing. It can also run on top of several other protocols (primarily Netbeui, Decnet and IPX) SMB is also known as LanManager, PCSA (pathworks) or ``Windows networking''. Now Microsoft calls it CIFS. SMB has command chaining, and extensive negotiation of options. \end{slide} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{So what is SMB like inside?} The following is a client connecting to a server, doing a directory listing, copying a file and then disconnecting. \begin{verbatim} UDP-137 NAME REGISTRATION REQUEST UDP-137 NAME OVERWRITE REQUEST AND DEMAND UDP-137 NAME QUERY REQUEST UDP-137 POSITIVE NAME QUERY RESPONSE TCP-139 SMBnegprot TCP-139 SMBsesssetupX TCP-139 SMBtcon TCP-139 SMBsearch TCP-139 SMBdskattr TCP-139 SMBopenX + SMBreadbraw TCP-139 SMBclose TCP-139 SMBtdis \end{verbatim} All the requests are binary. The byte order of the name resolution is the opposite of the SMB commands! \end{slide} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{The NBT protocol} NBT is ``Netbios over TCP'' which is the protocol used to encapsulate SMB over TCP, and also to implement name resolution and registration (using UDP). It is mostly covered by RFCs 1001 and 1002. Name resolution can be via broadcasts or directly to a WINS server. Amazingly, the namespace is flat! Names are also dynamically registered. Make sure you have a firewall :-) \end{slide} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{CIFS} Perhaps in response to Web-NFS Microsoft announced CIFS. The ``common internet file system''. CIFS is a better documented SMB plus some name resolution hacks. The documentation is very useful! Lots of interesting things happened at the first CIFS conference: \begin{itemize} \item announced LDAP + kerberos \item Macintosh client \item more specs announced \end{itemize} \end{slide} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{Developing Samba - Unix headaches} Not all problems are due to SMB and Microsoft, some are caused by Unix. \begin{itemize} \item no printing API \item locking is horrible! \item quotas and dfree are tricky \item threads are too non-portable \item finding network addresses is hopeless \item trapdoor UIDs - yuck \end{itemize} \end{slide} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{Samba Configuration} Configuration is pretty easy, and very flexible. Heres a very simple sample: \begin{verbatim} [global] log level = 1 security = user workgroup = SVERIGE encrypt passwords = yes hosts allow = 192.168.2. localhost include = /usr/local/samba/lib/smb.conf.%m [homes] browseable = no guest ok = no read only = no create mask = 0755 [printers] guest ok = no path = /var/spool/smbprint print ok = yes [cdrom] comment = Tridge's CdRom path = /mount/cdrom read only = yes locking = no mangled map = (*;1 *) (*.html *.htm) \end{verbatim} \end{slide} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{Samba 2} Here are some things we are thinking about: \begin{itemize} \item NT logon support \item text translation \item autoconf configuration \item single server support? \item perhaps multi threaded? \end{itemize} \end{slide} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{Interesting stuff} Theres a lot more interesting stuff going on in the Samba world! \begin{itemize} \item SMBlib \item smbfs \item interesting users! \item Samba survey \end{itemize} \end{slide} %%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \heading{Samba resources and support} \begin{itemize} \item the source and docs are available from ftp://samba.anu.edu.au/pub/samba \item The Samba WWW site is http://samba.canberra.edu.au/pub/samba \item the Samba mailing list \item the news group comp.protocols.smb \end{itemize} Some people want commercial support. For this reason I started the ``Samba support list'' which lists companies that offer commercial Samba support. Some of them do quite well out of it! \end{slide} \end{document}