Difference between revisions of "Samba Network Neighbourhood"

From OnnoWiki
Jump to navigation Jump to search
 
(9 intermediate revisions by the same user not shown)
Line 73: Line 73:
 
Tabel: SMB Protocol Dialects
 
Tabel: SMB Protocol Dialects
  
Protocol Name
+
{| border="1" cellpadding=2 style="border-collapse: collapse"
ID String
+
! Protocol Name
Used By
+
! ID String
Core
+
|-
PC NETWORK PROGRAM 1.0
+
! Used By
 
+
!
Core Plus
+
|-
MICROSOFT NETWORKS 1.03
+
| Core
 
+
| PC NETWORK PROGRAM 1.0
LAN Manager 1.0
+
|-
LANMAN1.0
+
| Core Plus
 
+
| MICROSOFT NETWORKS 1.03
LAN Manager 2.0
+
|-
LM1.2X002
+
| DOS LAN Manager 1.0
 
+
| MICROSOFT NETWORKS 3.0
LAN Manager 2.1
+
|-
LANMAN2.1
+
| LAN Manager 1.0
 
+
| LANMAN1.0
NT LAN Manager 1.0
+
|-
NT LM 0.12
+
| LAN Manager 2.0
Windows NT 4.0
+
| LM1.2X002
Samba's NT LM 0.12
+
|-
Samba
+
| LAN Manager 2.1
Samba
+
| LANMAN2.1
Common Internet File System
+
|-
CIFS 1.0
+
| NT LAN Manager 1.0
Windows 2000
+
| NT LM 0.12
 +
|-
 +
| LAN Manager 2.1?
 +
| Windows for Workgroups 3.1a
 +
|-
 +
| NT LAN Manager 1.0?
 +
| NT LM 0.12
 +
|-
 +
| NT LAN Manager 1.0?
 +
| Samba
 +
|-
 +
| NT LAN Manager 1.0
 +
| CIFS 1.0
 +
|}
  
 
Samba menerapkan spesifikasi NT LM 0.12 untuk NT LAN Manager 1.0 compatible dengan berbagai varian smb. Spesifikasi CIFS adalah Lan manager 0.12 dengan beberapa penambahan spesifik.
 
Samba menerapkan spesifikasi NT LM 0.12 untuk NT LAN Manager 1.0 compatible dengan berbagai varian smb. Spesifikasi CIFS adalah Lan manager 0.12 dengan beberapa penambahan spesifik.
 
+
Referensi: http://samba.anu.edu.au/cifs/docs/what-is-smb.html
 
 
  
 
==Format Header SMB==
 
==Format Header SMB==
Line 109: Line 121:
 
Tabel dibawah menunjukan format header SMB. Jika clientt pertama kali mencoba menyambungkan diri (koneksi) ke server, maka client belum diberi nilai TID (tree identifier). Bila hubungan / koneksi telah berhasil dilakukan maka null TID (xFFFF) ditempatkan di header field. Field header SMB terlihat pada table berikut:
 
Tabel dibawah menunjukan format header SMB. Jika clientt pertama kali mencoba menyambungkan diri (koneksi) ke server, maka client belum diberi nilai TID (tree identifier). Bila hubungan / koneksi telah berhasil dilakukan maka null TID (xFFFF) ditempatkan di header field. Field header SMB terlihat pada table berikut:
  
 
+
{| border="1" cellpadding=2 style="border-collapse: collapse"
Field
+
! Field
Size (bytes)
+
! Size (bytes)
Description
+
! Description
0xFF 'SMB'
+
|-
1
+
| 0xFF 'SMB'
Protocol identifier
+
| 1
COM
+
| Protocol identifier
1
+
|-
Command code, from 0x00 to 0xFF
+
| COM
RCLS
+
| 1
1
+
| Command code, from 0x00 to 0xFF
Error class
+
|-
REH
+
| RCLS
1
+
| 1
Reserved
+
| Error class
ERR
+
|-
2
+
| REH
Error code
+
| 1
REB
+
| Reserved
1
+
|-
Reserved
+
| ERR
RES
+
| 2
14
+
| Error code
Reserved
+
|-
TID
+
| REB
2
+
| 1
Tree identifier; a unique ID for a resource in use by client
+
| Reserved
PID
+
|-
2
+
| RES
Caller process ID
+
| 14
UID
+
| Reserved
2
+
|-
User identifier
+
| TID
MID
+
| 2
2
+
| Tree identifier; a unique ID for a resource in use by client
Multiplex identifier; used to route requests inside a process
+
|-
 
+
| PID
 +
| 2
 +
| Caller process ID
 +
|-
 +
| UID
 +
| 2
 +
| User identifier
 +
|-
 +
| MID
 +
| 2
 +
| Multiplex identifier; used to route requests inside a process
 +
|}
  
 
==Format perintah SMB==
 
==Format perintah SMB==
Line 154: Line 177:
 
Tabel: SMB Command Contents
 
Tabel: SMB Command Contents
  
Field
+
{| border="1" cellpadding=2 style="border-collapse: collapse"
Size (Bytes)
+
! Field
Description
+
! Size (Bytes)
WCT
+
! Description
1
+
|-
Word count
+
| WCT
VWV
+
| 1
Variable
+
| Word count
Parameter words (size given by WCT)
+
|-
BCC
+
| VWV
2
+
| Variable
Parameter byte count
+
| Parameter words (size given by WCT)
DATA
+
|-
Variable
+
| BCC
Data (size given by BCC)
+
| 2
 
+
| Parameter byte count
 +
|-
 +
| DATA  
 +
| Variable
 +
| Data (size given by BCC)
 +
|}
  
  
Line 192: Line 220:
 
Sebelum kita membahas bagaimana integrasi antara Samba-Linux dengan Windows, ada baiknya kita lihat cara kerja NetBIOS. Protokol ini merupakan non-routable protokol yang bersifat broadcast based. Non-routable berarti protokol ini tidak memiliki kemampuan menyeberang ke segmen network lain, sedang broadcast based artinya komputer yang menggunakan protokol ini selalu mengirimkan pesan ke seluruh jaringan, memberitahukan jika sebuah komputer sedang online.
 
Sebelum kita membahas bagaimana integrasi antara Samba-Linux dengan Windows, ada baiknya kita lihat cara kerja NetBIOS. Protokol ini merupakan non-routable protokol yang bersifat broadcast based. Non-routable berarti protokol ini tidak memiliki kemampuan menyeberang ke segmen network lain, sedang broadcast based artinya komputer yang menggunakan protokol ini selalu mengirimkan pesan ke seluruh jaringan, memberitahukan jika sebuah komputer sedang online.
  
Dalam skenario sederhana, saat sebuah komputer dinyalakan dalam suatu domain, maka komputer tersebut mengirim secara broadcast kepada seluruh komputer yang ada dalam jaringan dan mendeklarasikan keberadaan dirinya dengan nama dari NetBIOS. Proses ini disebut dengan name registration. Nama ini yang kemudian akan muncul bila kita browsing di network neighborhood.
+
Dalam skenario sederhana, saat sebuah komputer dinyalakan dalam suatu domain, maka komputer tersebut mengirim secara broadcast kepada seluruh [[komputer]] yang ada dalam jaringan dan mendeklarasikan keberadaan dirinya dengan nama dari [[NetBIOS]]. Proses ini disebut dengan name registration. Nama ini yang kemudian akan muncul bila kita browsing di network neighborhood.
  
Pada saat yang sama dengan name registration mesin di jaringan, komputer yang baru online tersebut juga melaksanakan name resolution. Name resolution  adalah proses menterjemahkan nama NetBIOS kedalam nomor IP tertentu. Kedua proses tersebut bekerja berdasarkan standardisasi RFC 1001 dan RFC 1002 yang dibuat oleh IETF.
+
Pada saat yang sama dengan name registration mesin di jaringan, [[komputer]] yang baru online tersebut juga melaksanakan name resolution. Name resolution  adalah proses menterjemahkan nama NetBIOS kedalam nomor IP tertentu. Kedua proses tersebut bekerja berdasarkan standardisasi RFC 1001 dan RFC 1002 yang dibuat oleh IETF.
  
Pada tahun 1987, Internet Engineering Task Force (IETF) mengeluarkan dokumen standarisasi RFC 1001 dan 1002. Dokumen RFC 1001 & 1002 berisikan garis besar tentang bagaimana NetBIOS dapat digabungkan dengan jaringan berbasis TCP/UDP. Standarisasi ini kemudian dikenal dengan NetBIOS over TCP/IP atau disingkat dengan NBT. Standarisasi tersebut yang membahas layanan jaringan sebagai berikut:
+
Pada tahun 1987, [[Internet Engineering Task Force]] ([[IETF]]) mengeluarkan dokumen standarisasi RFC 1001 dan 1002. Dokumen RFC 1001 & 1002 berisikan garis besar tentang bagaimana [[NetBIOS]] dapat digabungkan dengan jaringan berbasis [[TCP]]/[[UDP]]. Standarisasi ini kemudian dikenal dengan [[NetBIOS over TCP/IP]] atau disingkat dengan [[NBT]]. Standarisasi tersebut yang membahas layanan jaringan sebagai berikut:
  
Name service, layanan untuk penamaan group, user dan komputer ke jaringan yang dapat diterjemahkan menjadi IP address yang dikenal oleh mesin (name registration dan name resolution), seperti yang dikenal dengan DNS pada internet. Ia bertanggungjawab memastikan tidak terjadi duplikasi nama (disebut juga nama NetBIOS).
+
* Name service, layanan untuk penamaan group, user dan komputer ke jaringan yang dapat diterjemahkan menjadi [[IP address]] yang dikenal oleh mesin (name registration dan name resolution), seperti yang dikenal dengan [[DNS]] pada [[internet]]. Ia bertanggungjawab memastikan tidak terjadi duplikasi nama (disebut juga nama [[NetBIOS]]).
  
 
Data communication services, yakni:
 
Data communication services, yakni:
  
 
* Datagrams Support. Menyediakan transmisi tanpa koneksi yang tidak menjamin suksesnya pengiriman paket. Metoda datagram ini digunakan oleh Naming Service.
 
* Datagrams Support. Menyediakan transmisi tanpa koneksi yang tidak menjamin suksesnya pengiriman paket. Metoda datagram ini digunakan oleh Naming Service.
* Sessions Support. Memungkinkan pengenalan & monitoring paket dapat dilakukan yang ditransmisikan di sebuah jaringan circuit virtual. Dalam modus connection oriented (virtual circuit) yang reliabel ini, NetBIOS menjamin pengiriman pesan hingga 64Kbyte. Metoda ini digunakan sewaktu membuat koneksi jaringan di Network Neighbourhood atau lewat perintah command-line NET USE.
+
* Sessions Support. Memungkinkan pengenalan & monitoring paket dapat dilakukan yang ditransmisikan di sebuah jaringan circuit virtual. Dalam modus connection oriented (virtual circuit) yang reliabel ini, [[NetBIOS]] menjamin pengiriman pesan hingga 64Kbyte. Metoda ini digunakan sewaktu membuat koneksi jaringan di Network Neighbourhood atau lewat perintah command-line NET USE.
  
Keduanya merupakan protokol komunikasi sekunder yang digunakan untuk pengiriman dan meneruskan data antar mesin (dari NetBIOS) pada jaringan. Telah disebutkan diawal bahwa NetBIOS dikembangkan oleh IBM, NetBIOS menyediakan media transformasi tingkat rendah (pada TCP/IP) untuk berkomunikasi dengan komputer lain.
+
Keduanya merupakan protokol komunikasi sekunder yang digunakan untuk pengiriman dan meneruskan data antar mesin (dari [[NetBIOS]]) pada jaringan. Telah disebutkan diawal bahwa [[NetBIOS]] dikembangkan oleh [[IBM]], [[NetBIOS]] menyediakan media transformasi tingkat rendah (pada [[TCP/IP]]) untuk berkomunikasi dengan [[komputer]] lain.
  
 
Dalam proses file dan print sharing di NetBIOS, sebetulnya ada dua (2) proses yang berjalan, yaitu:
 
Dalam proses file dan print sharing di NetBIOS, sebetulnya ada dua (2) proses yang berjalan, yaitu:
Line 214: Line 242:
 
Mailslot adalah proses unidirectional communication, yang memungkinkan setiap kita membuka icon Network Neighborhood di Desktop, kita dapat melihat komputer mana saja yang sedang on-line. Analogi untuk keadaan ini sama seperti kalau satu komputer on-line dia akan terus mengabarkan berita ke teman-temannya dalam satu domain, "Halo saya Workstation satu, di node 5. Hubungi saya, ya?"
 
Mailslot adalah proses unidirectional communication, yang memungkinkan setiap kita membuka icon Network Neighborhood di Desktop, kita dapat melihat komputer mana saja yang sedang on-line. Analogi untuk keadaan ini sama seperti kalau satu komputer on-line dia akan terus mengabarkan berita ke teman-temannya dalam satu domain, "Halo saya Workstation satu, di node 5. Hubungi saya, ya?"
  
Sedang Named Pipes adalah proses komunikasi dua arah (bidirectional communication). Proses ini terjadi pada saat kita mengakses sebuah komputer, kemudian kita melihat resource apa yang bisa dibuka di komputer tersebut. Pada saat kita berhasil masuk ke komputer tersebut dan menggunakan resource-nya, maka terjadilah Named Pipes.
+
Sedang Named Pipes adalah proses komunikasi dua arah (bidirectional communication). Proses ini terjadi pada saat kita mengakses sebuah [[komputer]], kemudian kita melihat resource apa yang bisa dibuka di [[komputer]] tersebut. Pada saat kita berhasil masuk ke komputer tersebut dan menggunakan resource-nya, maka terjadilah Named Pipes.
  
Ke dua proses ini mampu dilakukan juga dengan sangat baik oleh Samba. Sebuah Samba server dapat memberi akses pada sebuah komputer yang menjalankan Windows atau LAN Manager, atau MS-DOS Client untuk menggunakan filenya, atau sebaliknya. Samba juga dapat mengakses direktori yang di-share pada mesin Windows.
+
Ke dua proses ini mampu dilakukan juga dengan sangat baik oleh [[Samba]]. Sebuah Samba server dapat memberi akses pada sebuah komputer yang menjalankan Windows atau LAN Manager, atau MS-DOS Client untuk menggunakan filenya, atau sebaliknya. [[Samba]] juga dapat mengakses direktori yang di-share pada mesin Windows.
  
Dengan penambahan beberapa feature baru, NetBIOS berubah menjadi NetBIOS Extended User Interface (NetBEUI), yang di rancang untuk local area networks (LAN) skala kecil, dan masing-masing komputer mempunyai sebutan /nama sendiri (max. 15 karakter).
+
Dengan penambahan beberapa feature baru, [[NetBIOS]] berubah menjadi [[NetBIOS Extended User Interface]] ([[NetBEUI]]), yang di rancang untuk [[local area networks]] ([[LAN]]) skala kecil, dan masing-masing [[komputer]] mempunyai sebutan /nama sendiri (max. 15 karakter).
  
Protokol NetBEUI sangat terkenal dengan aplikasi jaringannya, termasuk yang bekerja pada Workgroups di Windows dan Novell. Karena protokol jaringan yang merupakan pilihan untuk mengembangkan komunitas Internet menggunakan TCP/IP dan UDP/IP, maka implementasi NetBEUI pada protokol TCP/IP menjadi penting.
+
Protokol [[NetBEUI]] sangat terkenal dengan aplikasi jaringannya, termasuk yang bekerja pada Workgroups di Windows dan Novell. Karena protokol jaringan yang merupakan pilihan untuk mengembangkan komunitas [[Internet]] menggunakan [[TCP/IP]] dan [[UDP]]/[[IP]], maka implementasi [[NetBEUI]] pada protokol [[TCP/IP]] menjadi penting.
  
Dengan berkembangnya TCP/IP, maka NT 4.0 menambahkan satu feature yang disebut Windows Socket (Winsock.dll). Gunanya agar protokol NetBEUI yang tidak bisa routing, bisa dijalankan di atas protokol yang bisa melakukan routing seperti TCP/IP.  Para pengguna Novell Netware tentu familiar dengan istilah "IPX encapsulated with TCP/IP", seperti itulah proses NetBEUI yang berjalan di atas TCP/IP. Feature ini yang kemudian hari di standarkan oleh RFC 1001, yang disebut sebagai NBT. Kemudian ada juga penambahan feature berupa WINS (Windows Internet Name Service).
+
Dengan berkembangnya [[TCP/IP]], maka NT 4.0 menambahkan satu feature yang disebut Windows Socket (Winsock.dll). Gunanya agar protokol NetBEUI yang tidak bisa routing, bisa dijalankan di atas protokol yang bisa melakukan routing seperti TCP/IP.  Para pengguna Novell Netware tentu familiar dengan istilah "IPX encapsulated with TCP/IP", seperti itulah proses NetBEUI yang berjalan di atas [[TCP/IP]]. Feature ini yang kemudian hari di standarkan oleh RFC 1001, yang disebut sebagai NBT. Kemudian ada juga penambahan feature berupa WINS (Windows Internet Name Service).
 
  
 
==WINS (Windows Internet Name Service)==
 
==WINS (Windows Internet Name Service)==
Line 246: Line 273:
  
 
Tabel: Tipe NetBIOS Node
 
Tabel: Tipe NetBIOS Node
Role
 
Value
 
b-node
 
menggunakan registrasi broadcast dan resolusi saja.
 
p-node
 
menggunakan registrasi poin-to-point dan resolusi saja.
 
m-node
 
menggunakan registrasi broadcast,jika berhasil akan memberitahukan ke server NBNS. Menggunakan broadcast untuk resolusinya; menggunakan NBNS server jika broadcast gagal.
 
h-node (hybrid)
 
menggunakan NBNS server untuk registrasi dan resolusi; menggunakan broadcast jika NBNS server tidak merespon atau tidak beroperasi.
 
  
 +
{| border="1" cellpadding=2 style="border-collapse: collapse"
 +
! Role
 +
! Value
 +
|-
 +
| b-node
 +
| menggunakan registrasi broadcast dan resolusi saja.
 +
|-
 +
| p-node
 +
| menggunakan registrasi poin-to-point dan resolusi saja.
 +
|-
 +
| m-node
 +
| menggunakan registrasi broadcast,jika berhasil akan memberitahukan ke server NBNS. Menggunakan broadcast untuk resolusinya; | menggunakan NBNS server jika broadcast gagal.
 +
|-
 +
| h-node (hybrid)
 +
| menggunakan NBNS server untuk registrasi dan resolusi; menggunakan broadcast jika NBNS server tidak merespon atau tidak beroperasi.
 +
|}
  
  
Line 279: Line 312:
 
* Berbagai software client, seperti, smbmount, smbumount, smbclient dan masih banyak lagi adalah berbagai tool yang dapat digunakan sebagai client jaringan.
 
* Berbagai software client, seperti, smbmount, smbumount, smbclient dan masih banyak lagi adalah berbagai tool yang dapat digunakan sebagai client jaringan.
  
Di  Fedora Core 4, instalasi samba dapat secara automatis dilakukan melalui “Add Remove Applications” di bagian System Settings masuk ke kategori Server Windows Networking.
+
Di  Fedora Core 4, instalasi samba dapat secara automatis dilakukan melalui “Add Remove Applications” di bagian System Settings masuk ke kategori Server > Windows Networking.
  
 
==Konfigurasi Samba==
 
==Konfigurasi Samba==
Line 342: Line 375:
  
  
 +
 +
==Referensi==
 +
 +
* http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ServerType.html - Tipe Server & Keamanan
 +
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html
  
 
==Pranala Menarik==
 
==Pranala Menarik==
Line 348: Line 386:
 
* [[Samba Network Neighbourhood]]
 
* [[Samba Network Neighbourhood]]
 
* [[Instalasi Samba]]
 
* [[Instalasi Samba]]
 +
* [[SAMBA: mount versi 1.0]]
 +
* [[SAMBA: Permission Problem waktu Create Folder Share]]
 +
* [[SAMBA: Menempelkan share directory remote ke folder lokal]]
 +
* [[SAMBA: Primary Domain Controller]]
 
* [[Linux Howto]]
 
* [[Linux Howto]]
 
* [[Teknologi Internet]]
 
* [[Teknologi Internet]]

Latest revision as of 08:07, 30 September 2018

Bagi mereka yang mengunakan jaringan lokal, salah satu aplikasi yang sangat bermanfaat adalah Neighbourhood yang memungkinkan pengguna untuk share file, share printer, share resource komputer dengan komputer lain yang ada di jaringan lokal. Bagian ini akan membahas lebih dalam tentang mekanisme / protocol komunikasi yang digunakan di network neighbourhood.


Sejarah Singkat

Diawali oleh IBM dan Sytee yang mengembangkan sebuah sistem NetBIOS (Network Basic Input/Output System). NetBIOS ini merupakan perangkat lunak yang menjadi perantara antara program dan perangkat keras network. Pengalamatan dalam NetBIOS menggunakan nama 16 bit yang sekarang dikenal dengan NetBIOS Name. Di dalam lingkungan Windows NT, disebut dengan Computer Name.

Microsoft kemudian menambahkan sebuah feature berupa I/O redirection, sehingga sebuah sumber daya lokal (printer, harddisk) dapat diakses oleh komputer lain, yang masih berada dalam satu jaringan lokal. Bagi pengguna LAN manager atau MS-DOS Client, tentu anda kenal dekat dengan perintah

Net use drive:\\computer name\share name

atau pengguna Windows dengan perintah

Map Network Drive

Kedua perintah ini akan membuat sebuah sumber daya remote di komputer lain seolah-olah berada di komputer kita.

Microsoft menyebut penambahan feature ini sebagai NetBEUI. Hal ini kemudian disalahartikan bahwa NetBEUI merupakan protokol standar dalam lingkungan jaringan Microsoft. Padahal nama dari I/O Redirection dari NetBEUI adalah SMB (Server Message Block) atau menurut istilah Microsoft CIFS (Common Internet File System). Keterangan lengkap mengenai protokol SMB ini bisa dibaca di RFC 1001 (ftp://ftp.rfc-editor.org/in-notes/rfc1001.txt) dan 1002 (ftp://ftp.rfc-editor.org/in-notes/rfc1002.txt).

Dalam protokol standar LAN Manager dan Windows (NetBUI atau SMB atau CIFS), hal terpenting yang menjadi urat nadinya adalah kemampuan file atau print sharing, serta kemampuan browsing. Dengan munculnya NT, ditambahkan dua feature tambahan yakni authentication dan authorization untuk setiap servis yang akan diakses. Jadi jika kita bicara tentang NetBEUI, sebenarnya ada 2 komponen yang terdapat didalamnya yakni:

  • NetBIOS sebagai penggenal komputer yang satu dengan lainnya.
  • I/O Redirection sebagai fasilitas untuk memberikan share dan mengakses shared resource komputer lain.

Di Linux, dikembangkan Samba untuk menjalankan dua proses tersebut di atas transport protocol TCP/IP. Di jaringan berbasis TCP/IP, semua mekanisme aplikasi jaringan harus berjalan di atas TCP/IP. Mekanisme protokol NetBIOS di atas TCP/IP di dokumentasikan dalam dua RFC, yaitu, RFC 1001 dan 1002. Hal ini sering di sebut sebagai NetBIOS yang berjalan di atas TCP/IP, atau NBT (NetBIOS over TCP/IP).

Perangkat lunak Samba sendiri merupakan kumpulan program yang mengimplementasikan protokol Server Message Block (SMB) untuk UNIX. Protokol ini juga kerap disebut Common Internet File System (CIFS), LanManager atau protokol NetBIOS.

Samba dikembangkan pertama kali oleh Andrew Tridgell, yang kini menjadi kepala pengembangan tim Samba. Semua berawal ketika pada 1991 ia mendapat sebuah utilitas bernama Digital Pathworks, yang merupakan satu utilitas MS-DOS untuk melakukan mounting ke server Digital UNIX. Sayangnya saat itu Tridgell tidak bisa melakukan hal yang sama ke mesin Solaris. Kemudian ia berpikir untuk mengembangkan sebuah protokol yang bisa melakukan fungsi SMB di UNIX. Ia melihat bahwa dokumentasi dari IBM tentang SMB cukup lengkap, dan mulai mengembangkan SMB untuk UNIX.

Andrew Tridgell mengawali idenya dari upaya untuk mencoba mengakses file dimesin Windows istrinya dari mesin UNIX miliknya tahun 1991. Pada 1992, Tridgell pun menemukan satu varian baru dari UNIX yang dikembangkan seorang Finlandia, Linus Torvalds, dan bernama Linux. Varian ini memiliki kelebihan dalam keterbukaan kode asal (source code), serta dikembangkan oleh ribuan orang, maka Tridgell memilih untuk menggunakan Linux. Masih di tahun yang sama, pada saat Torvalds bersama dengan Tridgell inilah terjadi satu 'Tragedi Penguin', kejadian yang menyebabkan logo dari Linux adalah Penguin. Yaitu saat Torvalds dikejar dan dipatuk oleh seekor Penguin di sebuah Kebun Binatang di Canberra. Pada saat itu Torvalds tengah mengunjungi Tridgell.

Perkembangan Samba selanjutnya dibentuk Tim Samba yang bekerja di rumah Tridgell di Canberra, dan disponsori oleh Australia National Univerity, tempat ia mendapatkan gelar Ph.D. Saat ini Samba dikembangkan sebagai bagian dari Open Source Software (OSS) dan didistribusikan di bawah lisensi GNU General Public License (GPL) (http://www.gnu.org).

Samba dapat menjembatani kompleksitas berbagai platform sistem operasi Linux (UNIX) dengan mesin Windows yang dijalankan dalam suatu jaringan. Samba memungkinkan server Unix ataupun Linux untuk berkomunikasi dengan protokol dari produk Microsoft Windows dalam satu jaringan, sehingga dapat:

  • Menghubungkan setiap mesin Linux(Unix) dengan mesin Windows
  • Menempatkan mesin Linux/Unix sebagai PDC (Primary Domain Controller) sebagaimana yang dilakukan NT dalam jaringan Microsoft Windows.

Oleh sebab itu kita dapat menggunakan client Windows dalam server Linux/Unix dengan layanan seperti:

  • Dapat saling berbagi satu atau lebih filesistem (file sharing).
  • Berbagi fasilitas seperti printer yang terinstal baik pada server maupun client-nya (printer sharing).
  • Membantu clients browsing di Network Neighborhood.
  • Membantu otorisasi tiap clients untuk dapat logging ke Windows domain.
  • Membantu atau memberikan dengan WINS name server resolution.

Untuk mengikuti perkembangan terakhir Samba, dapat dilihat di http://www.Samba.org. Mailing list Samba terbuka bagi setiap orang yang ingin bergabung dengan Tim Samba.


Mengenal SMB/CIFS dan NetBIOS

Sebetulnya jaringan yang dibangun dengan SMB tidak berbeda jauh dengan jaringan yang dibangun dengan TCP/IP lainnya. SMB/CIFS merupakan protokol yang digunakan mesin Windows untuk berkomunikasi dengan server Samba dan begitu sebaliknya. SMB protokol digunakan untuk operasi file & printer seperti:

  • membuka dan menutup file.
  • membuat dan menghapus direktori.
  • membaca dan menghapus file.
  • mencari file.
  • proses antrian file dalam print spool.

Tiap operasi tersebut dapat diencode ke dalam pesan SMB dan ditransmisikan ke dan dari server.


SMB Format

Richard sharpe, anggota team SAMBA mendefinisikan SMB sebagai protokol "request-response". Client mengirim SMB request ke server, dan server mengirim SMB response ke client. Informasi lebih jauh lainnya dapat dilihat pada alamat http://www.samba.org/cifs/docs/what-is-smb.html. Pada dasarnya, format SMB terdiri dari string header dan command (perintah). Mari kita lihat lebih dekat format tersebut.


Variasi SMB

Protokol SMB selalu bertambah dengan perintah-perintah baru. Setiap versi baru yang muncul selalu kompatibel dengan versi sebelumnya. Ini memungkinkan suatu LAN untuk memiliki berbagai client dan server yang menjalankan berbagai versi SMB pada suatu waktu. Tabel dibawah memberikan gambaran beberapa versi protokol SMB. ID string digunakan sebagai pendefinisian level protokol yang digunakan untuk berkomunikasi oleh client server.

Tabel: SMB Protocol Dialects

Protocol Name ID String
Used By
Core PC NETWORK PROGRAM 1.0
Core Plus MICROSOFT NETWORKS 1.03
DOS LAN Manager 1.0 MICROSOFT NETWORKS 3.0
LAN Manager 1.0 LANMAN1.0
LAN Manager 2.0 LM1.2X002
LAN Manager 2.1 LANMAN2.1
NT LAN Manager 1.0 NT LM 0.12
LAN Manager 2.1? Windows for Workgroups 3.1a
NT LAN Manager 1.0? NT LM 0.12
NT LAN Manager 1.0? Samba
NT LAN Manager 1.0 CIFS 1.0

Samba menerapkan spesifikasi NT LM 0.12 untuk NT LAN Manager 1.0 compatible dengan berbagai varian smb. Spesifikasi CIFS adalah Lan manager 0.12 dengan beberapa penambahan spesifik. Referensi: http://samba.anu.edu.au/cifs/docs/what-is-smb.html

Format Header SMB

Tabel dibawah menunjukan format header SMB. Jika clientt pertama kali mencoba menyambungkan diri (koneksi) ke server, maka client belum diberi nilai TID (tree identifier). Bila hubungan / koneksi telah berhasil dilakukan maka null TID (xFFFF) ditempatkan di header field. Field header SMB terlihat pada table berikut:

Field Size (bytes) Description
0xFF 'SMB' 1 Protocol identifier
COM 1 Command code, from 0x00 to 0xFF
RCLS 1 Error class
REH 1 Reserved
ERR 2 Error code
REB 1 Reserved
RES 14 Reserved
TID 2 Tree identifier; a unique ID for a resource in use by client
PID 2 Caller process ID
UID 2 User identifier
MID 2 Multiplex identifier; used to route requests inside a process

Format perintah SMB

Header berisi byte-byte yang merupakan perintah SMB atau balasan. Masing-masing perintah, seperti untuk Open File (SMBopen) atau Get Print Queue (SMBsplretq), mempunyai paremeter dan data sendiri. Seperti SMB header fields, tidak semua perintah perlu digunakan, tergantung pada perintah yang dibutuhkan. Contohnya perintah Get Server Attributes (SMBdskattr) akan menset WCT dan BCC menjadi nol. Segmen perintah tersebut dapat dilihat pada tabel berikut.

Tabel: SMB Command Contents

Field Size (Bytes) Description
WCT 1 Word count
VWV Variable Parameter words (size given by WCT)
BCC 2 Parameter byte count
DATA Variable Data (size given by BCC)


Interaksi SMB client dan server

SMB digunakan dalam interaksi request dan responds antara client server. Pada dasarnya format protocol yang digunakan baik untuk request maupun responds adalah sama / tidak berbeda jauh. Setiap message akan terdiri dari bagian header yang besarnya tetap, di ikuti oleh bagian parameter dan data yang besarnya bervariasi.

Sesudah terhubung pada level NetBIOS, client siap untuk mengirimkan request ke server. Akan tetapi client dan server harus saling mengidentifikasi varian protocol mana yang mereka saling mengerti & akan digunakan.

Client mengirimkan negprot SMB ke server, berisi daftar protocol dialek yang dimengerti client. Server akan meresponds dengan index dari dialek yang akan dia gunakan, atau 0xFFFF jika tidak ada dialek yang dapat di terima.

Dialek yang lebih baru dari protokol Core dan CorePlus akan membutuhkan informasi tambahan dalam negprot response untuk menunjukan kemampuan mereka (besar buffer max, canonical file names, etc).

Jika protokol SMB telah terhubung, client akan meneruskan untuk login ke server jika dibutuhkan. Client dapat melakukannya menggunakan sesssetupX SMB. Responds dari server akan memberitahukan apakah username / password yang dimasukan telah benar atau salah. Aspek / hal yang paling penting dari responds adalah UID dari login user. UID ini harus dikirimkan dengan semua transaksi SMB yang di lakukan terhadap server tersebut. Jika client telah logon, maka client dalam melanjutkan untuk melihat tree dari folder.

Client mengirim tcon or tconX SMB untuk memberitahukan nama share yang akan di hubungi. Server akan meresponds dengan TID yang akan digunakan oleh client untuk hubungan selanjutnya dengan share tersebut.

Setelah tersambung ke tree, client sekarang dapat membuka file dengan open SMB, di lanjurkan dengan membaca-nya dengan read SMB, menulis-nya dengan write SMB, dan menutupnya dengan close SMB.

Mengenal Lebih Lanjut NetBIOS dan WINS

Sebelum kita membahas bagaimana integrasi antara Samba-Linux dengan Windows, ada baiknya kita lihat cara kerja NetBIOS. Protokol ini merupakan non-routable protokol yang bersifat broadcast based. Non-routable berarti protokol ini tidak memiliki kemampuan menyeberang ke segmen network lain, sedang broadcast based artinya komputer yang menggunakan protokol ini selalu mengirimkan pesan ke seluruh jaringan, memberitahukan jika sebuah komputer sedang online.

Dalam skenario sederhana, saat sebuah komputer dinyalakan dalam suatu domain, maka komputer tersebut mengirim secara broadcast kepada seluruh komputer yang ada dalam jaringan dan mendeklarasikan keberadaan dirinya dengan nama dari NetBIOS. Proses ini disebut dengan name registration. Nama ini yang kemudian akan muncul bila kita browsing di network neighborhood.

Pada saat yang sama dengan name registration mesin di jaringan, komputer yang baru online tersebut juga melaksanakan name resolution. Name resolution adalah proses menterjemahkan nama NetBIOS kedalam nomor IP tertentu. Kedua proses tersebut bekerja berdasarkan standardisasi RFC 1001 dan RFC 1002 yang dibuat oleh IETF.

Pada tahun 1987, Internet Engineering Task Force (IETF) mengeluarkan dokumen standarisasi RFC 1001 dan 1002. Dokumen RFC 1001 & 1002 berisikan garis besar tentang bagaimana NetBIOS dapat digabungkan dengan jaringan berbasis TCP/UDP. Standarisasi ini kemudian dikenal dengan NetBIOS over TCP/IP atau disingkat dengan NBT. Standarisasi tersebut yang membahas layanan jaringan sebagai berikut:

  • Name service, layanan untuk penamaan group, user dan komputer ke jaringan yang dapat diterjemahkan menjadi IP address yang dikenal oleh mesin (name registration dan name resolution), seperti yang dikenal dengan DNS pada internet. Ia bertanggungjawab memastikan tidak terjadi duplikasi nama (disebut juga nama NetBIOS).

Data communication services, yakni:

  • Datagrams Support. Menyediakan transmisi tanpa koneksi yang tidak menjamin suksesnya pengiriman paket. Metoda datagram ini digunakan oleh Naming Service.
  • Sessions Support. Memungkinkan pengenalan & monitoring paket dapat dilakukan yang ditransmisikan di sebuah jaringan circuit virtual. Dalam modus connection oriented (virtual circuit) yang reliabel ini, NetBIOS menjamin pengiriman pesan hingga 64Kbyte. Metoda ini digunakan sewaktu membuat koneksi jaringan di Network Neighbourhood atau lewat perintah command-line NET USE.

Keduanya merupakan protokol komunikasi sekunder yang digunakan untuk pengiriman dan meneruskan data antar mesin (dari NetBIOS) pada jaringan. Telah disebutkan diawal bahwa NetBIOS dikembangkan oleh IBM, NetBIOS menyediakan media transformasi tingkat rendah (pada TCP/IP) untuk berkomunikasi dengan komputer lain.

Dalam proses file dan print sharing di NetBIOS, sebetulnya ada dua (2) proses yang berjalan, yaitu:

  • Mailslots
  • Named Pipes

Mailslot adalah proses unidirectional communication, yang memungkinkan setiap kita membuka icon Network Neighborhood di Desktop, kita dapat melihat komputer mana saja yang sedang on-line. Analogi untuk keadaan ini sama seperti kalau satu komputer on-line dia akan terus mengabarkan berita ke teman-temannya dalam satu domain, "Halo saya Workstation satu, di node 5. Hubungi saya, ya?"

Sedang Named Pipes adalah proses komunikasi dua arah (bidirectional communication). Proses ini terjadi pada saat kita mengakses sebuah komputer, kemudian kita melihat resource apa yang bisa dibuka di komputer tersebut. Pada saat kita berhasil masuk ke komputer tersebut dan menggunakan resource-nya, maka terjadilah Named Pipes.

Ke dua proses ini mampu dilakukan juga dengan sangat baik oleh Samba. Sebuah Samba server dapat memberi akses pada sebuah komputer yang menjalankan Windows atau LAN Manager, atau MS-DOS Client untuk menggunakan filenya, atau sebaliknya. Samba juga dapat mengakses direktori yang di-share pada mesin Windows.

Dengan penambahan beberapa feature baru, NetBIOS berubah menjadi NetBIOS Extended User Interface (NetBEUI), yang di rancang untuk local area networks (LAN) skala kecil, dan masing-masing komputer mempunyai sebutan /nama sendiri (max. 15 karakter).

Protokol NetBEUI sangat terkenal dengan aplikasi jaringannya, termasuk yang bekerja pada Workgroups di Windows dan Novell. Karena protokol jaringan yang merupakan pilihan untuk mengembangkan komunitas Internet menggunakan TCP/IP dan UDP/IP, maka implementasi NetBEUI pada protokol TCP/IP menjadi penting.

Dengan berkembangnya TCP/IP, maka NT 4.0 menambahkan satu feature yang disebut Windows Socket (Winsock.dll). Gunanya agar protokol NetBEUI yang tidak bisa routing, bisa dijalankan di atas protokol yang bisa melakukan routing seperti TCP/IP. Para pengguna Novell Netware tentu familiar dengan istilah "IPX encapsulated with TCP/IP", seperti itulah proses NetBEUI yang berjalan di atas TCP/IP. Feature ini yang kemudian hari di standarkan oleh RFC 1001, yang disebut sebagai NBT. Kemudian ada juga penambahan feature berupa WINS (Windows Internet Name Service).

WINS (Windows Internet Name Service)

Mempunyai banyak server di jaringan tidak akan bermanfaat banyak jika pengguna tidak dapat menemukan server tersebut. Tentunya kita dapat saja mengkonfigurasi client untuk mengetahui server di lingkungannya, tapi ini tidak menolong jika ada server baru atau jika server lama di non-aktifkan.

Untuk memecahkan masalah ini, mekanisme browsing di usulkan. Sebuah server membroadcast informasi tentang keberadaannya. Client akan memonitor broadcast ini dan membuat browse list. Dalam lingkungan NetBEUI hal tersebut sebetulnya cukup, akan tetapi di lingkungan TCP/IP akan menjadi masalah jika tidak dalam satu subnet.

Microsoft mengusulkan browse servers dan Windows Internet Name Service (WINS) untuk menjawab hal ini. WINS itu sendiri tidak lain adalah penerapan NetBIOS Name Service (NBNS) oleh Microsoft, yang melakukan proses Name Resolution dan Browsing. Kedua proses ini dalam Samba dijalankan oleh nmbd. Memang, WINS = NBNS, merupakan servis di mana NetBIOS Name dipetakan ke IP address, mirip seperti proses DNS (Domain Name Service) yang memetakan IP adress ke hostname di Internet.

Jika dalam domain ada server WINS, maka semua komputer dalam domain tersebut tidak menerima atau mengirim pesan secara broadcast. Tiap komputer yang akan online, dia harus melaporkan hostname, address dan workgroup atau mendaftarkan nama NetBIOS-nya ke server WINS. Server WINS akan menyimpan nama semua mesin yang telah mendaftarkan namanya dan membantu user saat browsing di network neighborhood.

WINS server yang sedang aktif disebut primary WINS Server. Kita dapat menginstal primary dan sekondary WINS Server, sebagai backup bagi primary WINS server bila mati atau gagal beroperasi/tidak dapat diakses.

Dalam keluarga sistem operasi Windows, hanya Windows NT yang dapat menyediakan server WINS, baik itu NT Workstation maupun NT Server. Samba hanya akan berfungsi sebagai primary WINS Server, bukan sebagai secondary WINS Server. Jadi dengan mengaktifkan WINS di Samba, kita sudah menjalankan proses NBNS.


Tipe Node

Strategi apa yang anda gunakan pada client dari jaringan anda pada saat melakukan dan menyelesaikan masalah name registration? masing-masing mesin pada jaringan NBT mempunyai cara untuk mengatasi masalah tersebut dengan beberapa metode seperti : b-node, p-node, m-node dan h-node.


Tabel: Tipe NetBIOS Node

Role Value
b-node menggunakan registrasi broadcast dan resolusi saja.
p-node menggunakan registrasi poin-to-point dan resolusi saja.
m-node menggunakan NBNS server jika broadcast gagal.
h-node (hybrid) menggunakan NBNS server untuk registrasi dan resolusi; menggunakan broadcast jika NBNS server tidak merespon atau tidak beroperasi.


Share, Universal Naming Convention (UNC) dan IP Addressing

SMB memberikan satu level hirarki dari resource yang di share atau “share” setiap komputer di jaringan. Nama komputer dan nama share dibutuhkan untuk mengakses resource yang di share. Share name kira-kira equivalen dengan direktori tempat file. Nama komputer di samba dapat berupa NetBIOS name, IP address atau hostname yang dapat di resolve menjadi IP address.

smbd memberikan akses ke directory dan printer yang di share. Akses ke directory & printer yang di share melalui smbd dapat di kontrol menggunakan username & password. nmbd digunakan untuk browse network neighborhood.

nmbd digunakan untuk membroadcast informasi nama NetBIOS ke semua komputer yang ada di jarngan. Program nmbd akan bekerja sama dengan server Windows Internet Naming Service (WINS) yang biasanya jalan di komputer Windows NT. Untuk jaringan yang kecil, sebetulnya tidak terlalu dibutuhkan nmbd.

Universal Naming Convention (UNC) adalah konvensi nama yang digunakan oleh Microsoft. UNC memungkinkan sebuah nama file dengan informasi komputer tempat fil tersebut berada bersama subdirektori-nya. Path di Windows akan berbentuk \dir1\dir2\filename.txt. Dengan UNC, maka akan bentuk \\computer1\share1\dir1\dir2\filename.txt. Di samba, penulisan slash berbeda, menjadi //computer1/share1/dir1/dir2/filename.txt. Memang tidak akan berjalan di Windows, tapi samba dapat mengakses resource yang ada di Windows.


Penggunaan Samba di Linux

Samba seperti juga open source project yang lain seperti Apache Web Server, dapat di peroleh di CD-ROM distribusi Linux. Versi terbaru Samba dapat di ambil / di download dari Web Samba http://www.samba.org.

Pada dasarnya ada beberapa komponen / software di Samba, yaitu:

  • smbd & nmbd yang berupa server.
  • Berbagai software client, seperti, smbmount, smbumount, smbclient dan masih banyak lagi adalah berbagai tool yang dapat digunakan sebagai client jaringan.

Di Fedora Core 4, instalasi samba dapat secara automatis dilakukan melalui “Add Remove Applications” di bagian System Settings masuk ke kategori Server > Windows Networking.

Konfigurasi Samba

File konfigurasi samba terdapat di /etc/samba/smb.conf. Tidak banyak yang perlu di set untuk memperkenalkan mesin SERVER di workgroup TEST ke jaringan lokal. Yang perlu di set hanya:

[global]
# workgroup = NT-Domain-Name or Workgroup-Name
  workgroup = TEST
# server string is the equivalent of the NT Description field
  server string = Samba Server
  netbios name = SERVER

Biasanya di bagian bawah dari file konfigurasi terdapat contoh teknik men-share sebuah folder. Sebagai contoh, kita akan menshare folder /home/public menjadi share PUBLIC di jaringan dan menginginkan semua orang agar dapat menulis di folder tersebut. Konfigurasinya adalah:

[public]
   path = /home/public
   public = yes
   only guest = no
   writable = yes
   printable = no

Agar pengguna dapat mengakses dengan mudah jangan lupa mengubah owner dari folder /home/public/ tersebut menjadi nobody.nobody melalui perintah

# chown nobody.nobody /home/public/

Akan lebih aman lagi jika semua file di folder /home/public di set agar milik nobody.nobody melalui

# chown –Rf nobody.nobody /home/public/

Bagi anda yang sulit untuk mengkonfigurasi file konfigurasi, dapat menggunakan interface grafis dari SWAT atau Webmin.

Menggunakan Samba

Menggunakan samba untuk network neighborhood juga tidak terlalu sukar. Sebetulnya, ada beberapa client software yang grafis, seperti, LinNeighborhood, Gnomba, dsb. Berikut ini, contoh software client di shell / text yang saya sering gunakan.

Mengkaitkan sebuah folder “share1” di “komputer1” ke folder /mnt/data di komputer samba dapat dilakukan menggunakan perintah:

smbmount //komputer1/share1 /mnt/data -o username=admin,password=pass

atau

mount -t cifs //komputer1/share1 /mnt/data -o username=admin,password=pass

atau

mount -t smbfs //komputer1/share1 /mnt/data -o username=admin,password=pass

dengan memasukan username (contoh admin) dan password (contoh pass), maka folder share1 sekarang dapat diakse secara lokal di folder /mnt/data komputer kita. Tentunya folder /mnt/data harus kita buat dulu sebelum proses sharing ini dilakukan. Proses mengcopy file seperti hal-nya kita mengcopy file di sistem operasi.

Bagi mereka yang terbiasa menggunakan FTP, dapat menggunakan perintah smbclient untuk mengakses folder “share1” di “komputer”

smbclient  //komputer1/share1
Password:

Hasilnya kira-kira

Domain=[TEST] OS=[Unix] Server=[Samba 3.0.14a-2]
smb: \>

Selanjutnya kita dapat menggunakan perintah FTP biasa, seperti, put, dir, get dsb., untuk melakukan operasi tranfer file dll.


Referensi

Pranala Menarik