Protokoły SMB a NFS: szczegółowe porównanie

Wymiana plików między komputerami i użytkownikami pozwala na bardziej wydajną i wygodną komunikację oraz wymianę danych. Pliki można udostępniać w sieci na różne sposoby, na przykład za pomocą protokołów SMB lub NFS na serwerach i komputerach. Do udostępniania plików za pośrednictwem protokołów SMB i NFS wykorzystywane są również urządzenia NAS (Network-Attached Storage).

Zapoznaj się z porównaniem protokołów NFS i SMB, aby dowiedzieć się, które rozwiązanie najlepiej sprawdzi się w Twoim przypadku użycia i który protokół wybrać.

NAKIVO do tworzenia kopii zapasowej danych z serwerów NAS

NAKIVO do tworzenia kopii zapasowej danych z serwerów NAS

Szybkie wykonanie kopii zapasowej i odzyskiwanie gigabajtów danych z urządzeń NAS oraz udziałów plików w systemach Windows i Linux. Odzyskaj wszystko, czego potrzebujesz, w dowolnym momencie – w ciągu kilku sekund.

Czym jest protokół SMB?

SMB (Server Message Block) to protokół służący do udostępniania plików, umożliwiający dostęp do współdzielonych danych w sieci. Jest on powszechnie stosowany w środowiskach Windows do uzyskiwania dostępu do plików w sieci lokalnej (LAN). Protokół ten został opracowany przez IBM w 1983 roku, a firma Microsoft przejęła go później i obecnie oferuje wbudowane wsparcie dla SMB w systemie Windows. Protokół ten wciąż ewoluuje, a jego najnowsza wersja to v.3.1.1.

Czasami termin CIFS jest mylony z SMB. CIFS jest dialektem SMB, czyli implementacją SMB v1 przez firmę Microsoft. Przeczytaj to CIFS a SMB porównanie, aby dowiedzieć się więcej.

Czym jest protokół NFS?

NFS (Network File System) to protokół udostępniania plików dla systemów operacyjnych opartych na UNIX i Linux. Pomimo nazwy, NFS nie jest systemem plików. Protokół NFS został pierwotnie opracowany przez firmę Sun Microsystems w 1984 roku.

  • Wersja 1 protokołu NFS była używana przez firmę Sun do celów wewnętrznych i nigdy nie została wydana.
  • NFS v2 zapewniał podstawową funkcję udostępniania plików.
  • NFS v3 obsługuje pliki o zmiennej wielkości i oferuje ulepszone raportowanie błędów, ale nie jest kompatybilny z klientami NFS v2.
  • NFS v4 to najnowsza wersja protokołu NFS, opracowana we współpracy z Internet Engineering Task Force (IETF). Obsługuje równoległy dostęp do plików, a w tej wersji poprawiono bezpieczeństwo. Zachowano kompatybilność wsteczną z NFS v2 i NFS v3. NFS v4 obsługuje uwierzytelnianie Kerberos.

NFS vs Samba – kluczowe różnice

Samba to wdrożenie wolnego oprogramowania służące do instalacji serwera SMB w systemie Linux. Należy pamiętać, że Samba nie zawiera klienta SMB. Aby uzyskać klienta SMB w systemie Linux, należy zainstalować pakiet cifs-utils .

NFS, protokół sieciowy, nie powinien być porównywany z pakietem oprogramowania (Samba). Jeśli jednak mówimy o implementacji NFS dla systemu Windows, aby korzystać z NFS, należy zainstalować w systemie Windows odpowiednią rolę serwera NFS i/lub klienta NFS (w zależności od naszych zadań).

NFS vs SMB – przegląd funkcji

W tej sekcji porównujemy funkcje SMB i NFS w 7 różnych kategoriach.

1. Połączenie sieciowe/używane porty

  • Zarówno protokół udostępniania SMB, jak i NFS działają w warstwie aplikacji modelu OSI (warstwa 7) i wykorzystują architekturę klient-serwer.
  • SMB wymaga nawiązania sesji (nie jest to wymagane w przypadku NFS).
  • SMB może również wykorzystywać do działania warstwę prezentacji (warstwa 6).
  • Te dwa protokoły są zoptymalizowane do pracy w sieci lokalnej (LAN), a nie przez Internet. Protokoły udostępniania SMB i NFS nie nadają się do stosowania w sieci Internet ze względu na konieczność stosowania translacji adresów sieciowych i routingu.
  • NFS wykorzystuje porty 2049 (TCP i UDP) oraz 111 (TCP i UDP). Port TCP 111 jest używany przez moduł mapowania portów. Porty TCP 1110 i UDP 1110 są wykorzystywane do monitorowania stanu klastra i klienta. Menedżer blokad NFS korzysta z portów TCP 4045 i UDP 4045.
  • SMB wykorzystuje port TCP 445 bez transportu NetBIOS, korzystając bezpośrednio z protokołu TCP/IP (tak działa SMB począwszy od systemu Windows 2000, w tym najnowsze wersje SMB używane obecnie). SMB używa portów TCP 139, UDP 137 i UDP 138 do działania na bazie NetBIOS przez TCP/IP. NetBIOS to protokół warstwy sesji (działa w warstwie 5 modelu OSI), który był używany w starszych implementacjach SMB przed Windows 2000.

2. Udostępnianie drukarek

SMB obsługuje udostępnianie drukarek, co pozwala użytkownikom zdalnym korzystać z drukarki podłączonej do konkretnego komputera w celu drukowania plików przez sieć. Protokół NFS nie zapewnia funkcji udostępniania drukarek – system Linux posiada inne mechanizmy drukowania sieciowego.

3. Uwierzytelnianie

Główną różnicą między protokołami NFS i SMB jest sposób uwierzytelniania.

  • SMB wykorzystuje koncepcję listy kontroli dostępu (ACL) w odniesieniu do użytkowników i grup. SMB zapewnia dostęp do udostępnionych plików wybranym użytkownikom i grupom (uwierzytelnianie oparte na użytkownikach). Uprawnienia można konfigurować elastycznie. Aby skonfigurować dostęp dla dozwolonych hostów, można użyć zapory sieciowej.
  • NFS tradycyjnie zapewnia dostęp do dozwolonych adresów IP. NFS wykorzystuje system uwierzytelniania oparty na hostach – można włączyć adresy IP hostów, które mają dostęp do udziału NFS. W tym przypadku każdy użytkownik dozwolonej maszyny może uzyskać dostęp do udziału NFS.

Własność i uprawnienia w stylu Linuksa są funkcją protokołu NFS. Linux działa z UID (identyfikator użytkownika) i GID (identyfikator grupy), podczas gdy Windows działa z SID (identyfikator bezpieczeństwa).

Obsługa Kerberos w NFS v4 wzbogaca system uwierzytelniania (w celu poprawy funkcji zapewniania dostępu wybranym użytkownikom).

4. Dostęp do udziałów plików

Blokady plików są obowiązkowe dla SMB i zalecane dla NFS. Mechanizmy blokowania plików służą do zapewnienia spójności plików otwartych przez użytkownika. Dzięki blokadzie inni użytkownicy nie mogą zapisywać danych w otwartych plikach, dopóki nie zostaną one zamknięte.

Dostęp do udziału plików SMB można uzyskać, używając ścieżki UNC

w systemie Windows:

\serversharedirectory1directory2

w systemie Linux: smb://server/share/directory1/directory2

Dostęp do udziałów NFS można uzyskać, korzystając ze ścieżki Export File System (EFS) w następującym formacie:

server:/directory1/directory2

5. Obsługa i integracja w systemach operacyjnych

Protokół NFS jest zoptymalizowany pod kątem systemu Linux. Protokół SMB jest zoptymalizowany pod kątem systemu Windows i stanowi natywny protokół udostępniania plików w tym systemie, charakteryzujący się doskonałą integracją.

Oba protokoły można jednak stosować zarówno w systemie Windows, jak i Linux. Aby korzystać z protokołu SMB, należy zainstalować klienta SMB (cifs-utils) lub serwer SMB (Samba) w systemie Linux. Aby korzystać z konfiguracji NFS w systemie Windows, należy zainstalować klienta i/lub serwer NFS jako dodatkowe komponenty (role).

Protokół NFS rozróżnia wielkość liter podczas uzyskiwania dostępu do plików, natomiast protokół SMB nie rozróżnia wielkości liter. Ma to wpływ na sposób wyszukiwania plików i wpisywania nazw plików.

Protokół NFS jest otwartym standardem i może być wdrażany przez każdego.

6. Bezpieczeństwo/szyfrowanie

  • Komunikacja NFS oparta na protokole żądanie-odpowiedź (RPC) jest ryzykowna bez zapory sieciowej. Gdy NFS działa przy użyciu protokołu UDP, który nie jest bezpieczny, ogólny poziom bezpieczeństwa jest obniżony. NFS obsługuje szyfrowanie przy użyciu TLS (protokół Transport Layer Security oparty na SSL).
  • SMB obsługuje szyfrowanie typu end-to-end przy użyciu standardów kryptograficznych AES-256, które są silniejsze niż szyfrowanie Kerberos dla NFS. Chociaż SMB 1 jest uważany za protokół podatny na ataki, najnowsze wersje SMB 3 są bezpieczne, dzięki czemu poziom bezpieczeństwa przy użyciu SMB jest wyższy niż w przypadku NFS.

7. Wydajność NFS vs SMB

NFS jest lepszym wyborem do przesyłania małych i średnich plików przez sieć (na przykład plików o rozmiarze około 1 MB i mniejszych). Wydajność obu protokołów jest podobna podczas przesyłania dużych plików (na przykład plików o rozmiarze 500 MB).

NFS jest szybszy niż SMB przy użyciu szyfrowania. Transakcje odczytu są szybsze w SMB przy szybkości 4 MB. Duże obciążenia ruchem mogą spowolnić proces przesyłania danych. Można zauważyć, że maksymalna przepustowość została zwiększona w NFS v.4.2.

SMB vs NFS: Tabela porównawcza

Główne różnice w naszym porównaniu NFS vs SMB można podsumować w tabeli.

SMB NFS
Środowisko Używany natywnie w systemie Windows Używany głównie w systemach Linux
Uwierzytelnianie Wygodne uwierzytelnianie oparte na użytkowniku Główną metodą jest uwierzytelnianie oparte na hoście
Używane porty TCP 445; TCP 139, UDP 137, 138 TCP 2049, UDP 2049, TCP 111 i UDP 111; TCP 1110, UDP 1110, TCP 4045, UDP 4045.
Szyfrowanie i bezpieczeństwo Tak – Kerberos, AES-256 Tak – Kerberos i TLS
Środowisko wieloplatformowe Obsługiwane Obsługiwane
Blokowanie plików Obowiązkowe Zalecane
Udostępnianie drukarek Tak Nie
Dostęp do zasobów serverdirectory1directory2 server:/directory1/directory2

Wnioski

Wybór protokołu udostępniania plików NFS lub SMB zależy przede wszystkim od systemu operacyjnego używanego na komputerach w sieci oraz od innych czynników. Oba protokoły są niezawodne i mogą być używane w różnych systemach operacyjnych oraz na urządzeniach NAS. Niezależnie od tego, co wybierzesz, ważne jest wykonywanie kopii zapasowych danych podczas korzystania z udziałów plików w sieci. NAKIVO Backup & Replication to kompleksowe rozwiązanie do ochrony danych, które może służyć do zabezpieczania danych udostępnianych przez SMB i NFS, a także danych na maszynach wirtualnych, serwerach fizycznych oraz w Microsoft 365.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

People also read