17 <<<smb-auto-crop1.png,width=.6\textwidth>>>
20 ==== SMB - mini history ====
22 * SMB: created around 1983 by Barry Feigenbaum, IBM
23 * SMB in Lan Manager: around 1990
24 * SMB in Windows for Workgroups: from 1992
26 * SMB on TCP port 445: 2000 - Windows 2000
27 * SMB 2.0: 2006 - Windows Vista
28 * SMB 2.1: 2009 - Windows 7/Server 2008R2
29 * SMB 3.0: 2012 - Windows 8/Server 2012
30 * SMB 3.0.2: 2014 - Windows 8.1/Server 2012R2
31 * SMB 3.1.1: 2015 - Windows 10/Server 2016
36 <<<samba-flavour-1-cut-1280.jpg,height=.9\textheight>>>
39 ==== Samba - History ====
41 *<2-> 1992/01: start of the project
42 *<2-> 1.5: 1993/12: (nbserver)
43 *<2-> 1.9.16: 1996/05: CVS, Samba Team
44 *<2-> 2.0: 1999/01: domain-member, +SWAT
45 *<2-> 2.2: 2001/04: NT4-DC
46 *<2-> 3.0: 2003/09: AD-member, Samba4 project started
47 *<2-> 3.2: 2008/07: GPLv3, experimental clustering
48 *<2-> 3.3: 2009/01: clustering [with CTDB]
49 *<2-> 3.4: 2009/07: merged S3+S4 code
50 *<2-> 3.5: _blue_2010_/03: _blue_experimental SMB 2.0_
51 *<2-> 3.6: _blue_2011_/09: _blue_SMB 2.0_
52 *<2-> 4.0: _blue_2012_/12: AD/DC, _blue_SMB 2.0 durable handles, 2.1, 3.0_
53 *<2-> 4.1: 2013/10: stability
54 *<2-> 4.2: _blue_2015_/03: AD trusts, _blue_SMB2.1 leases_, perf, include CTDB
55 *<2-> 4.3: _blue_2015_/09: spotlight, new ChangeNotify, _blue_SMB 3.0.2, 3.1.1_
56 *<3-> 4.4: _red_2016_/03: _red_SMB3 Multi-Channel (experimental)_, ...
62 Apologies to our friends from Microsoft for writing "Multi-Channel"! ... \smiley
69 But hey... How can we ''partly'' implement an SMB version?
73 ==== SMB2 Capabilities - Negotiate ====
75 * SMB2\_CAP\_DFS (3.5, 3.6)
76 * SMB2\_CAP\_LEASING (4.2)
77 * SMB2\_CAP\_LARGE\_MTU (4.0)
78 * \textcolor{blue}{SMB2\_CAP\_MULTI\_CHANNEL} (4.4)
79 * \textcolor{red}{SMB2\_CAP\_PERSISTENT\_HANDLES}
80 * \textcolor{red}{SMB2\_CAP\_DIRECTORY\_LEASING}
81 * SMB2\_CAP\_ENCRYPTION (4.0)
83 ==== Other 'optional' SMB2 features ====
85 * Some create contexts - ok to ignore, e.g.:
86 ** durable handles (best-effort concept)
87 * fsctl/ioctls - ok (?) to return errors, e.g.:
88 ** FSCTL\_QUERY\_NETWORK\_INTERFACE\_INFO
89 ** FSCTL\_LMR\_REQ\_RESILIENCY
95 So what's the big deal about SMB3?
99 ==== SMB3 - what's the big deal? ====
102 <[block]{SMB3 (2012) introduced SMB clustering:}
103 * Clustering - Witness (HA / faster fail-over)
104 * Continuous Availability - Persistent Handles (guarantees!)
105 * Scale Out (all-active access)
110 <[block]{Additionally:}
111 * Transport encryption
113 * RDMA transport (SMB Direct)
118 <[block]{from workstation to server workload}
120 * virtualtization (hyper-v)
125 %%% ==== SMB Features - in Samba ====
128 %%% ** durable file handles [4.0]
130 %%% ** multi-credit / large mtu [4.0]
131 %%% ** dynamic reauthentication [4.0]
133 %%% ** resilient file handles [PoC]
135 %%% ** new crypto (sign/encrypt) [4.0]
136 %%% ** secure negotiation [4.0]
137 %%% ** durable file handles v2 [4.0]
138 %%% ** _red_multi-channel_ [4.4 (experimental)]
139 %%% ** persistent file handles [design/PoC]
140 %%% ** SMB direct [design]
141 %%% ** cluster features [design]
142 %%% *** witness [WIP+]
143 %%% * SMB 3.0.2: [4.3]
145 %%% ** negotiate contexts, preauth: [4.3]