SMB

Server Message Block


1. Po co nam SaMBa???


2. Pochodzenie

Pierwsze opracowania dotyczące SMB pojawiają się w 1985 roku.
SaMBa w kolejnych latach była rozwijana przez Microsoft oraz inne korporacje.


3. Co to jest?

SaMBa to protokół dzięki któremu możemy współdzielić zasoby.
Komunikuje się przez protokoły TCP/IP, NetBEUI (w obydwu przypadkach korzysta z NetBios API), oraz IPX/SPX.
Działa w architekturze klient - serwer, zgodnie z metodą żądanie - odpowiedź (request - response).
Korzystanie z SMB poprzez komendy (zwane SaMBami (SMBs)...).


4. Nazwy NetBIOS

Nazwy mają 15 liter. Najczęściej jest to nazwa komputera.
Microsoft (i niektórzy inni) wymagają, żeby nazwy były pisane wielkimi literami.
Podczas transmisji dodawany jest 16 znak , tzw. sufix, oznaczający typ nazwy.
W standardzie występują dwa typy nazw NetBIOSu: Unique oraz Global.
Microsoft rozszerza standard o kolejne typy: Internet Group, Domain, Multihomed.


5. Warianty protokołu (protocol variants)

Pierwszym wariantem protokołu był Core Protocol. Udostępniał następujące operacje:

Nowe warianty wprowadzają zmiany w stosunku do Core Protocol. Wprowadzają nowe komendy, lub zmiany formatu komend / odpowiedzi.
Wariant Protokołu SMB Nazwa Protokołu Opis
PC NETWORK PROGRAM 1.0 Core Protocol Oryginalna wersja SMB, tak jak opisana w IBM PC Network Program. Niektóre wersje nazywały się PCLAN1.0
MICROSOFT NETWORKS 1.03 Core Plus Protocol Zawiera komendy Lock&Read oraz Write&Unlock oraz różne wersje komend zwykłego odczytu / pisania
MICROSOFT NETWORKS 3.0 DOS LAN Manager 1.0 Tak jak w LANMAN1.0, ale błędy OS/2 muszą być tłumaczone na błędy DOSowe.
LANMAN1.0 LAN Manager 1.0 Pełny protokół LANMAN1.0.
DOS LM1.2X002 LAN Manager 2.0 Tak samo jak w LM1.2X002, ale błędy muszą być tłumaczone na błędy DOSowe.
LM1.2X002 LAN Manager 2.0 Pełna wersja protokołu LANMAN2.0.
DOS LANMAN2.1 LAN Manager 2.1 Tak samo jak w LANMAN2.1, ale błędy muszą być tłumaczone na błędy DOSowe.
LANMAN2.1 LAN Manager 2.1 Pełny protokół LANMAN2.1.
Windows for Workgroups 3.1a LAN Manager 2.1? Windows for Workgroups 1.0?
NT LM 0.12 NT LAN Manager 1.0? Zawiera specjalne komendy dla NT
Samba NT LAN Manager 1.0? Wersja protokołu NT LM 0.12? opracowana przez Sambę.
CIFS 1.0 NT LAN Manager 1.0 Prawdziwy protokół NT LM 0.12 i jeszcze trochę.

Wariant protokołu ustalany jest za pomocą komendy negprot, która musi być pierwszą komendą po nawiązaniu połączenia.


6. Bezpieczeństwo w SaMBie

Występują dwa poziomy ochrony danych:


7. Wyszukiwanie nowych serwerów

Serwery rozsyłają informacje o sobie.
W NetBEUI jest to wystarczające, ale w TCP/IP już nie, ponieważ w rozsyłana informacja nie wydostaje się poza podsieć, w której znajduje się nadający ją serwer.
Microsoft wprowadził serwery poszukiwań (browse servers) oraz WINS (Windows Internet Name Service) aby umożliwić rozpowszechnianie informacji o serwerach (kosztem centralizacji).


8. CIFS

Kolejny standard opracowywany przez Microsoft (oraz Digital Equipment, Data General, Network Appliance Corp. i innych)
Publiczna wersja SMB.
Przewiduje się, że CIFS 1.0 będzie zawierał NT LM 0.12 z nieznacznymi zmianami ułatwiającymi wykorzystanie Internetu.


9. Programy client


10. Programy serwerowe


11. Przykład sesji SMB

Składowe protokołu (żądania i odpowiedzi), które są wymieniane przez klientów i serwery nazywane są SaMBami (SMBs). Mają ściśle określony format, bardzo podobny dla żądań i odpowiedzi. Każda komenda składa się z nagłówka (ściśle określony rozmiar), a następnie parametru i danych (zmienna długość).

Po połączeniu z poziomem NetBIOS, klient jest gotowy do wymiany informacji z serwerem. Jakkolwiek najpierw klient i serwer muszą ustalić wariant protokołu.

Klient wysyła komendę negprot do serwera, wylistowując znane przez siebie dialekty. Następnie serwer odpowiada indeksem dialektu, z którego chce korzystać, bądź 0xFFFF, jeśli żaden z dialektów nie był dobry.

Dialekty nowsze niż Core i Core Plus w swojej odpowiedzi przesyłają dodatkowe informacje, które opisują serwer (wielkosc bufora, standardowe nazwy plików, itp.)

Kiedy wariant protokołu został ustanowiony klient może rozpocząć logowanie się na serwer (jeśli jest to konieczne). Wykorzystuje do tego komendę sesssetupX. Odpowiedź wskazuje czy udało się zalogować, czy nie. Może również przekazywać dodatkowe informacje. Jednym z najważniejszych fragmentów odpowiedzi jest UID zalogowanego użytkownika. Numer ten musi być przekazywany z każdą kolejną komendą przesyłaną do serwera w trakcie tego połączenia.
Kiedy użytkownik jest już zalogowany (w starszych protokołach - Core oraz Core Plus logowanie nie jest zaimplementowane), klient może przystąpić do podłączania do drzewa.

Klient wysyła komendę tcon lub tconX określającą sieć bądź udział, do którego chce się podłączyć i jeżeli wszystko jest OK, serwer odsyła TID, z którego klient będzie korzystał w przyszłych odniesieniach do tego udziału.

Po uzyskaniu dostępu do drzewa klient może korzystać z plików za pomocą odpowiednich komend (wiele komend realizujących odczyt, zapis, otwieranie, itd.).


12. Linki

Strony zawierające dużo informacji dotyczących SMB:





DFS

Distributed File System


Stworzona przez Microsoft.
Działa w architekturze klient - serwer.
Programy serwerowe pod NT / 2000 / XP.
Klienckie pod 95 +.

1. Czym jest DFS?

Rozproszony system plików, który abstrahuje od konkretnych serwerów i ich file systemów.
W DFSie użytkownik nie łączy się z poszczególnymi serwerami.
Korzysta z "logicznego" drzewa pliów.

DFS potrafi przesyłać dane za pomocą różnych protokołów sieciowych.


2. UNC -> name-space

Przed DFSem korzystanie z sieci zgodne z UNC (nazwy plików w postaci: \\server\share\Path\Filename - często mapowanie "\\server\share" do np. "x:").
W dużych sieciach z wieloma serwerami UNC przestał być wygodny, a nawet wystarczający.
DFS łączy nazwy udziałów ("\\server\share") w name-space'y (logiczne struktury). Dzięki temu istnienie serwerów jest niewidoczne dla użytkownika. Kosztem pracy administratora.

3. Bezpieczeństwo

NT Security Model - logowanie do zasobów, prawa dostępu.

4. Konfiguracja / administracja


Microsoft udostępnia (razem z Windowsem) łatwe w obsłudze, graficzne narzędzie do konfiguracji DFSa.
Jest też narzędzie command-line, co umożliwia tworzenie skryptów.
Administrator określa nazwy udziałów, dowolność w nazywaniu - opisowe nazwy (ograniczenie 260 znaków na ścieżkę dostępu).
Dzięki temu przeszukiwanie / przeglądanie zasobów jest łatwe dla końcowego użytkownika.
Przeglądanie zasobów - Windows Explorer.
Przeszukiwanie zasobów - wewnętrzny mechanizm przeszukiwania Windows.
Przykładowy DFS:

5. Większe bezpieczeństwo danych

Dzięki definiowaniu alternatywnych źródeł danych (alternative volumes) zapytania przesyłane do serwera rozdzielane są pomiędzy różne komputery (większa efektywność realizowania zapytania).

6. Scentralizowane zarządzanie zawartością udziałów


7. Internet

Integracja zasobów Intranetowych z Internetowymi jest możliwe poprzez zastosowanie IIS jako wbudowanego elementu DFSa.

8. Korzystanie

W systemach 95+ oraz NT Workstation można było łączyć się z serwerem DFS należy zainstalować usługę sieciową DFS Services. Dodaje się ją w ustawieniach sieci.

Po połączeniu widoczne będzie nowe urządzenie w Windows Explorerze.


9. Partition Knowledge Table (PKT)

Jest to posortowana tablica wyszukiwań - 300 bajtów / wpis.
Ścieżka DFS[Serwer + Udział] (lista)Czas życia
   
Występuje w następujących miejscach:

10. Błędy w trakcie dostępu do alternate volumes

Możliwe są cztery scenariusze:
  1. Komputer z danymi przestaje działać (przerwa prądu, itp.). Komputer korzystający z danych czeka na timeout (możliwy długi czas oczekiwania). Po przekroczeniu czasu oczekiwania przełączenie na alternatywne źródło danych.
  2. Komputer z danymi traci dostęp do danych, ale sam pracuje poprawnie. Wtedy odpowiedź jest natychmiastowa i aplikacja kliencka bez oczekiwania przełącza się na aleternatywne źródło danych.
  3. Klient ma otwarte pliki. Przebieg zdarzeń tak jak w 1. Po nawiązaniu połączenia z alternatywnym woluminem przywracane są blokady otwartych plików.
  4. Klient ma otwarte pliki. Komputer traci dostęp do dysku z danymi, itp. (jak w 2) W tym przypadku ma miejsce szybkie przełączenie na alternatywny serwer, a następnie podejmowana jest próba przywrócenia blokad na plikach, które klient miał otwarte.

11. Zalety i korzyści stosowania DFSu (wg Microsoft)

CechaOpisKorzyść
Hierarchiczny widok dzielonych zasobówŁącząc udziały w jeden widok DFS powoduje, że dane widoczne są jakby na jednym "gigantycznym" twardym dysku. Użytkownicy mogą sami tworzyć nowe obiekty w DFSie, które mogą sami dołączać do drzewa (wewnętrzne linki DFSa)Uproszczony widok zasobów sieciowych. Może być dostosowywany do potrzeb przez administratora
Łatwa administracja woluminamiPoszczególne udziały w DFSie mogą być usuwane, bądź chwilowo wyłączane bez wpływania na pozostałe zasobyAdministrator może manipulować fizycznymi danymi nie naruszając ich logicznej reprezentacji
Graficzne narzędzie administracyjneZasoby mogą być administrowane, przeglądane, zmieniane w łatwym w obsłudze środowisku graficznymŁatwe do opanowania, co zmniejsza zapotrzebowanie na wysoko wykwalikowaną administracje non-stop
Większa dostępność danychWiele kopii tych samych danych może zostać podłączonych w to samo miejsce w DFSie (alternatywne lokacje). W przypadku utraty łączności z jedną lokacją klienci korzystają z innychWażne dane biznesowe są zawsze dostępne, nawet w przypadku awarii serwera, dysku, pliku
Balansowanie obciążeniaAlternatywne lokacje zmniejszają obciążenie dostępu do poszczególnych serwerów. Zapytania rozdzielane są pomiędzy wszystkie lokacje.Poprawia czas odpowiedzi szczególnie w trakcie okresów szczytowego użycia sieci
Przezroczystość nazwKońcowi użytkownicy poruszają się w logicznych obszarach (name-spaces), nieświadomi fizycznej lokalizacji danych. Dane mogą być przenoszone, a ustawienia serwera DFS zmienione tak, że użytkownicy nie zauważają żadnych zmian w logicznej strukturze sieci.Zwiększona elastyczność administrowania.
Integracja z zabezpieczeniami Windows NTUżytkownik podłączony do DFSa może korzystać jedynie z plików, do których ma odpowiednie prawa.Wykorzystuje istniejące mechanizmy bezpieczeństwa Windows NT. Łatwa administracja i bezpieczny dostęp.
Klient DFS dołączony do Windows NT Workstation 4.0, dostępny dla Windows 95+wiadomo...Korzystanie z DFSa nie wymaga żadnego dodatkowego oprogramowania w systemach klienckich
Cachowanie przez klientaDFS może łączyć w sobie setki czy tysiące udziałów. Oprogramowanie klienckie cachuje niektóre informacje lokalnie. Następnym razem, kiedy klient odwołuje się do name-space'u DFS, klient sprawdza zcachowane dane, niekoniecznie sprawdza to przez sieć.Umożliwia szybik dostęp do złożonych hierarchii zasobów sieciowych
Aplikacje klienckie dla Windows 95+Poza wyposażonym w DFSa Windowsem NT Workstation, DFS zawiera usługę umożliwiającą Windowsowi 95+ korzystanie z przestrzeni DFS.Rozszerza DFSa na systemy Win 95+
Współpracuje z innymi rozproszonymi systemami plikówKażdy udział dostępny przez przekierowanie na Windows NT Workstation może być częścią name-space'u DFSa. Przekierowanie może następować zarówno przez przekierowania klienckie (client redirectors) jak też serwerową technologię bramek.Administrator może tworzyć pojedynczą hierarchię danych zawierającą odwołania od wielu sieciowych systemów plików

12. Linki


by Piotr Burdyło
2002 MIMUW