Slaven en slavinnen in Windows-netwerken

1
70
Dit artikel is deel 20 van 35 in het DiskIdee dossier Netwerken ontsluierd (cursus)
DossiernavigatieNetworking the Windows wayDe wondere wereld van het Internet

NetBIOS (ook wel NetBEUI of SMB geheten) vormt de basis voor netwerk-connecties tussen Windows systemen. Daarboven draaien nog allerlei diensten: de slaven en slavinnen voor Windows netwerken.
netwerken
NetBIOS ondersteunt benamings-, sessie-, datagram- en diagnosediensten:

  • benamingsdiensten (NMP: Name Management Protocol). Namen zijn natuurlijk noodzakelijk om netwerkstations te identificeren en kunnen specifiek naar een station wijzen (unieke namen) of naar een groep van stations (groepnamen); ze kunnen ook gewijzigd worden.
  • sessiediensten (SMP: Session Management Protocol): dit zorgt voor een verbindingsgeöriënteerde, betrouwbare en full-duplex (gelijktijdig zenden en ontvangen) berichtendienst voor de gebruikersprocessen.
  • datagramdiensten (UDP: User Datagram Protocol): datagrammen (protocolspecifieke netwerkpakketten) versturen naar een specifieke naam, naar alle leden van een groep, of broadcasten naar het hele netwerk.
  • diagnosediensten (DMP: Diagnostic and Monitoring Protocol): hiermee kun je de status van netwerkstations opvragen, de functie is vergelijkbaar met die van SNMP bij tcp/ip.

Bovenop deze lagere diensten (OSI-lagen 3 t/m 5) draaien hogere, zoals SMB/CIFS (OSI-lagen 6 en 7: presentatie- en applicatielaag) en de browserdienst (applicatielaag). De benaming SMB kan hierbij enige verwarring scheppen, omdat die zowel gebruikt wordt als een synoniem van NetBIOS als voor een hogere dienst die bovenop de NetBIOS-protocollen draait. Microsoft zaait bovendien nog meer verwarring door een nieuwe versie van SMB helemaal anders te noemen, namelijk CIFS (Common Internet File System) – vooral als je weet dat NetBIOS en SMB eigenlijk helemaal niks met het internet te maken hebben! Microsoft had daar wel een reden voor, omdat de meest recente versie van CIFS rechtstreeks kan werken met tcp/ip zonder gebruik te maken van een NetBIOS-tussenlaag.

SMB/CIFS
Er bestaan natuurlijk heel wat protocollen en applicaties die gebruik kunnen maken van NetBIOS/NetBEUI of NBF, maar de allerbelangrijkste is natuurlijk SMB of ‘Server Message Block Protocol’. SMB is een applicatielaagprotocol voor het delen van bestanden, berichten en randapparaten over het onderliggende netwerk, zoals alle versies van Windows vanaf Windows for Workgroups tot en met Windows XP, maar ook OS/2 en LAN Server van IBM, NetWare 6 van Novell en de SAMBA-implementatie voor Linux en andere Unix-achtigen. Als je geïnteresseerd bent in een geschiedenis van SMB, kun je die hier vinden (de externe links in dit artikel openen een nieuw venster).
CIFS kan zoals eerder gezegd rechstreeks met tcp/ip werken zonder de NetBIOS-onderlaag en dat maakt van CIFS een echte tcp/ip-dienst zoals FTP en NFS er ook zijn. Bijgevolg heeft Microsoft CIFS voorgesteld aan de RFC-commissie om er een internetstandaard van te maken.
SMB/CIFS heeft merites boven wat er al in de internetwereld bestaat, voornamelijk omdat het alle diensten in verband met het delen van data combineert. Bij de gewone internetapplicaties moet je namelijk een heel andere applicatie gebruiken voor het delen van bestanden (FTP of NFS), voor het delen van berichten (SMTP en andere), voor het gebruiken van een genetwerkte printer (LPR) en zo meer. SMB/CIFS combineert al deze diensten.
Een netwerkapplicatie maakt gebruik van een onderliggende sessie- en transportlaag en voor SMB is dat normaal NetBIOS/NBF of NetBIOS over TCP/IP of over IPX, maar zoals reeds gezegd kan CIFS nu ook rechtstreeks over TCP/IP werken.

Dialecten
Over de jaren zijn er heel wat SMB-dialecten ontstaan en dus zitten de producten van diverse leveranciers met het probleem dat ze een soort grootste gemeenschappelijke deler van functionaliteit moeten zoeken waarmee ze onderling kunnen werken. De allereerste versie van SMB, ook wel de kernversie genoemd, ondersteunen ze allemaal. Als niets anders mogelijk is, kunnen alle producten daarop terugvallen. Er is een speciaal SMB-bevel, namelijk SMBnegprot, om systemen te laten onderhandelen over welke SMB-versie ze aan boord hebben en wat er mogelijk is en wat niet. In de netwerkpakketten die verstuurd worden tijdens deze onderhandelingsfase zit een soort van identificatiestring die aangeeft over wat voor SMB-implementatie de zender beschikt. Hier zijn een paar voorbeelden met wat uitleg:

“PC NETWORK PROGRAM 1.0”: kernversie
“MICROSOFT NETWORKS 1.03”: kern plus dialect
“MICROSOFT NETWORKS 3.0”: kern met uitbreidingen
“LANMAN1.0”: uitgebreide 1.0 kern, eerste versie van het LANMAN 1.0-protocol
“Windows for Workgroups 3.1a”
“LM1.2X002”: uitgebreide 2.0 kern, LANMAN 1.2-protocol
“LANMAN2.1”: LANMAN 2.1-protocol
“NT LM 0.12”: Windows NT 4.0
“CIFS 1.0”: Windows 2000

Omdat SMB bovenop NetBIOS draait maakt het ook gebruik van NetBIOS-adressering. Dat houdt in dat SMB-namen dus beperkt zijn tot zestien tekens. Alleen CIFS rechtstreeks via TCP/IP maakt daar een uitzondering op, omdat daar de TCP/IP-adressering gebruikt wordt en dus volwaardige domeinnamen opgegeven mogen worden als CIFS-adressen. Herinner je uit een vorig deel uit deze reeks dat het zestiende teken van een SMB-naam gebruikt wordt om aan te geven naar wat de naam verwijst: een ander netwerktoestel, een domein- of werkgroepnaam of de naam van een functie. We hebben niet de ruimte om alle parameters en commando’s van SMB uit de doeken te doen, maar die kun je wel hier vinden. In essentie komen de SMB-bevelen vrij goed overeen met de bevelen die je lokaal ook gebruikt om te werken met data: bestanden, directory’s en datablokken openen en sluiten, lezen en schrijven, aanmaken en wissen; zoeken naar bestanden en het in een spoolerwachtrij steken of er juist uithalen van printertaken.

Browserdienst
Ondanks de naam heeft deze browserdienst niets te maken met je webbrowser. Microsoft had de naam bedacht omdat deze dienst het struinen (in het Engels: to browse) doorheen het netwerk mogelijk maakt. Oorspronkelijk had Microsoft de browserdienst als een bedrijfseigen protocol ontwikkeld, maar later gaf de softwaremonopolist de browserdienst vrij voor algemeen gebruik. De bekendste toepassing van de browserdienst uit zich in de ‘netwerkomgeving’ van je Windows desktop: als je die opent, zie je immers allerlei gedeelde netwerkbronnen in je NetBIOS-netwerk. De browserdienst maakt een lijst aan van SMB-namen in het netwerk en elke naam die de dienst tegenkomt wordt dynamisch aan de lijst toegevoegd. Andere netwerkstations kunnen dan die SMB-namenlijst weer opvragen en er gebruik van maken. Verwissel overigens de browserdienst niet met de NBNS-dienst (NBNS = NetBIOS Name Service), want die laatste dient om NetBIOS-namen te vertalen naar ip-adressen en heeft dus niks met de browserdienst te maken. In feite houdt de browserdienst niet àlle SMB-namen bij: alleen maar die van systemen die iets deelbaar hebben gezet. Ieder NetBIOS-netwerkstation kan iets delen en dus is ieder aangesloten station ook een potentiële server. Zo kan iedere NetBIOS-server dus ook een browserdienst draaien.
Om het netwerkverkeer zoveel mogelijk in te perken, spreekt de browserdienst tussen alle NetBIOS-servers een masterbrowser af en die zal dan zorgen voor de hoofdlijst en die lijst bezorgen aan iedereen die erom vraagt. In feite kunnen de diverse browserservers verschillende rollen aannemen: zo zijn er masterbrowsers op domeinniveau en lokaal, er zijn back-upbrowsers en zelfs potentiële browsers (systemen die een browserserver zouden kunnen worden). Een NetBIOS-server zal gewoon het rijtje aflopen en eerst de masterbrowser of diens back-up proberen en als dat niet lukt organiseren de overblijvende browserservers een ‘verkiezing’ wie de nieuwe master wordt. Browserclients houden gewoonlijk zelf een lijst bij van meerdere browserservers om genoeg keuze te hebben over wie ze gaan raadplegen. Voor meer informatie kun je de officiële beschijving van het CIFS Browser Protocol vinden in dit document

Vorig artikelDe wondere wereld van het Internet
Volgend artikelNetworking the Windows way

1 REACTIE

Reacties zijn gesloten.