35
Protocollen Samba Samba Versies “Franky” Samba Franky Jelmer Vernooij Samba Team June 7, 2009 Jelmer Vernooij Samba Team Samba Franky

Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Samba Franky

Jelmer Vernooij

Samba Team

June 7, 2009

Jelmer Vernooij Samba Team

Samba Franky

Page 2: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Agenda

Protocollen

Samba

Samba VersiesSamba 3Samba 4

“Franky”

Jelmer Vernooij Samba Team

Samba Franky

Page 3: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Jelmer Vernooij

I Samba ontwikkelaar en teamlidI Voornamelijk Samba 4

I Mede-auteur en editor van “The Samba HOWTO Collectionand Reference Guide”

I Andere bijdrages aan Free Software, o.a.I BazaarI OpenChangeI Debian/Ubuntu

I Student Informatica

Jelmer Vernooij Samba Team

Samba Franky

Page 4: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Wat is CIFS?

I Bestandsdelen in DOS/Windows

I Vrijwel alle onderdelen van Windows die over het netwerkwerken

I “Bestanden en Printers delen voor Microsoft Netwerken”

Jelmer Vernooij Samba Team

Samba Franky

Page 5: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Lang, lang geleden...

I 1984: Barry Feigenbau ontwikkelt “BAF”

I IBM, Microsoft, Intel en 3Com breiden het protocol uit enhernoemen het naar “SMB”

I Onderdeel van OS/2 en “Windows for Workgroups”

I Diverse andere uitbreidingen door Microsoft voor Windows 9xen NT (“Domeinen”, RPC, etc)

Jelmer Vernooij Samba Team

Samba Franky

Page 6: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

SMB

Dialecten

I PC NETWORK PROGRAM 1.0

I MICROSOFT NETWORKS 1.03

I MICROSOFT NETWORKS 3.0

I LANMAN 1.0

I LM1.2X002

I LANMAN2.1

I NT LM 0.12

I Samba

Extensies

I Mailslots

I “Browsing”I SMB Pipes

I RPCI RAP

I Unicode (UCS-2)

Jelmer Vernooij Samba Team

Samba Franky

Page 7: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

SMB

Dialecten

I PC NETWORK PROGRAM 1.0

I MICROSOFT NETWORKS 1.03

I MICROSOFT NETWORKS 3.0

I LANMAN 1.0

I LM1.2X002

I LANMAN2.1

I NT LM 0.12

I Samba

Extensies

I Mailslots

I “Browsing”I SMB Pipes

I RPCI RAP

I Unicode (UCS-2)

Jelmer Vernooij Samba Team

Samba Franky

Page 8: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Werkgroepen en domeinen

Domeinen

I Centraal beheer gebruikers en machines

I Geıntroduceerd in Windows NTI Enkele centrale server

I Single point of failureI Bottleneck in grote netwerken

I Voornamelijk geımplementeerd in protocollen bovenop SMB

Jelmer Vernooij Samba Team

Samba Franky

Page 9: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Active Directory

Schaalbare directory services gebaseerd op verschillendegestandaardiseerde protocollen:

I DNS

I Kerberos

I DHCP

I LDAP

I CIFS

I cldap

... met Microsoft-specifieke extensies

Jelmer Vernooij Samba Team

Samba Franky

Page 10: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Active Directory

Schaalbare directory services gebaseerd op verschillendegestandaardiseerde protocollen:

I DNS

I Kerberos

I DHCP

I LDAP

I CIFS

I cldap

... met Microsoft-specifieke extensies

Jelmer Vernooij Samba Team

Samba Franky

Page 11: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Geschiedenis van Samba

I 1991: Gestart door Andrew “tridge” Tridgell

I 1993: “nbserver”

I 1996: Code in CVS

I 1999: Versie 2.0

I 2003: Versie 3.0

I 2008: Versie 3.2

I 2009: Versie 3.3

I 2009: Versie 3.4

Jelmer Vernooij Samba Team

Samba Franky

Page 12: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Specificaties

“The only spec I trust is written in C”— Andrew Bartlett

Protocol kennis

I Netwerk analyse

I (gedateerde) standaarden

I Microsoft documentatie

Jelmer Vernooij Samba Team

Samba Franky

Page 13: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Specificaties

“The only spec I trust is written in C”— Andrew Bartlett

Protocol kennis

I Netwerk analyse

I (gedateerde) standaarden

I Microsoft documentatie

Jelmer Vernooij Samba Team

Samba Franky

Page 14: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Specificaties

“The only spec I trust is written in C”— Andrew Bartlett

Protocol kennis

I Netwerk analyse

I (gedateerde) standaarden

I Microsoft documentatie

Jelmer Vernooij Samba Team

Samba Franky

Page 15: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Ontwikkel team

Jelmer Vernooij Samba Team

Samba Franky

Page 16: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Samba 3

Samba 3

I Stabiel

I Gebruikt in productie

I Oud ontwerp (gericht op bestandsserver)

I Ondersteuning voor NT4-stijl DC en lid zijn van AD domeinen

Jelmer Vernooij Samba Team

Samba Franky

Page 17: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Samba 3

Recente ontwikkelingen

Clustering

I CIFS clustering (“clustering = yes”)

I Goede ondersteuning van locking

I High-Availability bovenop een clustering bestandssysteem

I Geintroduceerd in Samba 3.3

I Bug fixes

I Simpelere configuratie

I Bug fixes

I IPv6 ondersteuning

I Bug fixes

I Performance

Jelmer Vernooij Samba Team

Samba Franky

Page 18: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Samba 4

Samba 4

I Gestart in 2004

I “Correcte” implementatie van de verschillende protocollen

I Meer gegenereerde codeI Speelgrond voor experimentele features

I Ondersteuning voor Active Directory Domein ControllersI WMI (WBEM geimplementeerd bovenop DCOM)I Goede DCE/RPC infrastructuur

I Basis voor OpenChange client/server

I Goed getest (code coverage: 50%)

Jelmer Vernooij Samba Team

Samba Franky

Page 19: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Samba 4

IDL

I IDL: Interface DescriptionLanguage

I Omschrijft formaat van eenfunctie call in het protocol

I Door compiler omgezet naar(o.a.) C code

IDL Code

NTSTATUS unixinfo GetPWUid ([in,out,ref,range(0,1023)]uint32 *count,[in,size is(*count)] hyperuids[], [out,size is(*count)]unixinfo GetPWUidInfoinfos[*] );

Jelmer Vernooij Samba Team

Samba Franky

Page 20: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Samba 4

Integratie met de rest van het systeem

I Grafische tools voor oa:I Beheer gebruikersI Registry

I Correctere (en betrouwbaardere) ondersteuning SMB inNautilus/Konqueror

Summer of Code

I GTK+ frontends voor Samba (2 projecten)

I SWAT (web frontend)

Jelmer Vernooij Samba Team

Samba Franky

Page 21: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Samba 4

Samba 4 Release Status

I Alpha releases

I Stabiel, maar incompleet en niet netjes afgewerkt

I Ondersteuning voor AD DC, nog geen replicatieI Incomplete implementatie bestandsserver

I Verschillende (obscure) oude opties niet ondersteund

Jelmer Vernooij Samba Team

Samba Franky

Page 22: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Samba 4

Screenshot

Jelmer Vernooij Samba Team

Samba Franky

Page 23: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Problemen twee branches — Technisch

I Niet alle functionaliteit beschikbaar in beide versiesI Dubbel werk gedaan door ontwikkelaars

I en niet altijd op dezelfde manier

I Kleine verschillen in configuratie bestandsformaten

Verschillen worden steeds groter

Jelmer Vernooij Samba Team

Samba Franky

Page 24: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Problemen twee branches — Technisch

I Niet alle functionaliteit beschikbaar in beide versiesI Dubbel werk gedaan door ontwikkelaars

I en niet altijd op dezelfde manier

I Kleine verschillen in configuratie bestandsformaten

Verschillen worden steeds groter

Jelmer Vernooij Samba Team

Samba Franky

Page 25: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Problemen twee branches — Sociaal

I Conflicten over wat de “nieuwste” versie is

I Conflicten over focus van ontwikkelingen

I Niemand wil eigen veranderingen teniet doen en aan deandere branch werken

I Belofte aan gebruikers: versie 4 ondersteunt AD DC

I Geen structuur voor maken beslissingen

Jelmer Vernooij Samba Team

Samba Franky

Page 26: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Samenwerking tussen de branches

I Succesvolle Samba 4 projecten worden geimporteerd in Samba3

I O.a.:I DCE/RPC gegenereerde codeI tallocI tdbI ldb

I Divergentie treed opnieuw op

I Samba 4 testsuite wordt gebruikt binnen Samba 3

Jelmer Vernooij Samba Team

Samba Franky

Page 27: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

“Franky”

I Ongeveer een jaar geleden gestart

I Twee-maandelijkse bijeenkomsten in Gottingen

I Langzame combinatie van de Samba 3 en Samba 4 codebasesI Infrastructuur om een gecombineerde server te draaien:

I Samba 3 voor bestandsdelenI Samba 4 voor directory services

I Oplossen van kleine verschillen in configuratie bestand syntax

Jelmer Vernooij Samba Team

Samba Franky

Page 28: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Franky — Details

Jelmer Vernooij Samba Team

Samba Franky

Page 29: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Verdeling protocollen

I SMB/NetBIOS: Samba 3

I DCE/RPC(Users): Samba 4

I DCE/RPC(Printing): Samba 3

I DCE/RPC(Registry): Samba 4

I DCE/RPC(Directory): Samba 4

I LDAP: Samba 4

I Kerberos: Samba 4

Jelmer Vernooij Samba Team

Samba Franky

Page 30: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

“Franky“ — Status

Done

I Infrastructuur kan beiden tegelijk compileren

I Samba 4’s smbd hernoemd naar samba

I Integratie tussen Samba 3 en Samba 4 middels named pipes

Nog te doen

I Winbind integratie

I Polijsten

I Weinig veranderingen vereist

I Proof-of-concept

Jelmer Vernooij Samba Team

Samba Franky

Page 31: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Gedeelde code

I Samba4 en Samba3 delen code, niet slechts synchronisatieI Groot percentage is nu gedeeld:

I gedeeld: 536,251I gegenereerd: 468,634

I Samba 3: 410,452I Samba 4: 401,692

I Heimdal: 98,398

Jelmer Vernooij Samba Team

Samba Franky

Page 32: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Delen van code

Samba4HeimdalCommonAutogen-erated Samba3

Jelmer Vernooij Samba Team

Samba Franky

Page 33: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Hoe het had gemoeten...

I Samba 4 had eerder gesloten moeten worden voorexperimentele veranderingen

I Focus van ontwikkeling had altijd op een enkele branchmoeten liggen

I Eerder gemaakte fout (Samba-TNG)

Jelmer Vernooij Samba Team

Samba Franky

Page 34: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Status Franky Release

I Samba 3.4 bevat al een hoop uit Samba 4 geimporteerde codeI Samba 3.5: “Franky” release met hybride server

I September?

I Samba 4.0: Volledig gemergde codebases?

Jelmer Vernooij Samba Team

Samba Franky

Page 35: Jelmer Vernooij - Sambajelmer/samba-nllgg2009.pdf · I PC NETWORK PROGRAM 1.0 I MICROSOFT NETWORKS 1.03 I MICROSOFT NETWORKS 3.0 I LANMAN 1.0 I LM1.2X002 I LANMAN2.1 I NT LM 0.12

Protocollen Samba Samba Versies “Franky”

Meer informatie

I Homepage www.samba.org

I Franky status paginahttp://wiki.samba.org/wiki/Franky

I Fantasy pagehttp://wiki.samba.org/index.php/Samba4/Andrew_and_Jelmers_Fantasy_Page

Jelmer Vernooij Samba Team

Samba Franky