Samba consiste en deux programmes-clés, et une série d'autres logiciels dont nous reparlerons plus tard. Les deux programmes fondamentaux sont smbd et nmbd. Leur mission consiste à mettre en oeuvre les quatre services de base de CIFS dans sa version moderne, c'est-à-dire:
Le système Windows
NT Domain fournit un niveau supplémentaire
en terme d'authentification pour CIFS. L'idée de base est qu'un utilisateur
ne devrait pouvoir se connecter qu'une seule fois pour accéder à tous
les services sur le réseau. Le système NT
Domain gère ceci avec un serveur d'authentification
appelé contrôleur de domaine (Domain
Controller). Un domaine
NT (qui ne devrait pas être confondu avec
un DomainNameSystem-DNS) est un groupe de machines qui partage
le même Contrôleur de
domaine.
Le système domaineNT mérite
une remarque parce qu'avant la version 2 de Samba, Microsoft possédait
le code des protocoles d'authentification du domaineNT.
Avec la version 2, Samba a introduit son premier code propre d'authentification
de domaine NT,
non-dérivé de Microsoft. Bien sûr, le but est de mimer complètement
un contrôleur de domaine Windows NT.
Les deux autres composantes de CIFS, la résolution de nom et la navigation, sont gérés par nmbd. Ces deux services impliquent fondamentalement la gestion et la distribution des listes de noms de NetBIOS.
La résolution de noms prend deux formes: la diffusion (broadcast) et le point-à-point. Une machine peut utiliser l'une ou l'autre méthode ou les deux, selon sa configuration. La résolution par diffusion est la plus proche du mécanisme originel de NetBIOS. Un client cherchant un service nommé Trillian appele: ``Hé, Trillian! Ou êtes-vous?'', et attend que lui réponde la machine ayant ce nom, en lui fournissant son adresse IP. Cette technique peut engendrer un certain volume de trafic réseau (comme c'est le cas avec de nombreux cris dans la rue), toutefois comme ceci est restreint au réseau LAN, il n'en résulte pas une forte gêne.
L'autre méthode de résolution comprend l'usage d'un serveur
NBNS (acronyme pour NetBIOS
Name Service).
(L'implémentation NBNS de Microsoft s'appelle WINS, pour Windows Internet
Name Service; cet acronyme est couramment utilisé de nos jours.) Le
serveur NBNS fonctionne un peu à la manière des murs d'un ancienne
cabine téléphonique [...]. Les machines peuvent laisser aux autres
le soin de voir leur nom et leur numéro IP.
Bonjour, je suis Voomba. Appelez-moi au 192.168.100.101
Voici comment cela fonctionne: les clients envoient leur nom
NetBIOS et leur adresse IP au serveur NBNS qui conserve l'information
dans une base de données. Quand un client veut entrer en communication
avec un autre, il envoie le nom de ce dernier au serveur NBNS. Si
ce nom est dans la base, le serveur NBNS renvoie une adresse IP.
Les clients situés sur divers sous-réseaux peuvent aussi partager
le serveur NBNS; aussi, sans diffusion, le mécanisme point-à-point
n'est-il pas restreint au réseau local LAN. Par de nombreux aspects,
le serveur NBNS présente des similitudes avec un DNS. Toutefois, la
liste de noms de NBNS est presque totalement dynamique et, il y a
peu de contrôle quant au fait que seuls les clients autorisés peuvent
s'enregistrer. Des conflits peuvent -et, de fait, doivent inévitablement-
se produire.
Enfin, il y a la navigation (browsing).
[...] Samba gère cet aspect. Naturellement, il ne s'agit pas de
la navigation web que nous connaissons bien, mais d'une liste de services
(fichiers et imprimantes) qui peut être parcourue, et qui est fournie
par les ordinateurs sur le réseau.
Sur un réseau local (LAN), les ordinateurs participants sont
l'objet d'une élection pour déterminer lequel sera le navigateur-maître,
Local Master Browser (LMB). L'élu s'identifie en indiquant aux autres
un nom de NetBIOS spécial (en plus d'autres noms qu'il peut éventuellement
avoir). Le travail de ce LMB est de conserver une liste des services
disponibles. C'est cette liste qui apparaît lorsqu'on clique sur l'icône
de Windows appelée ``Network Neighborhood'' (voisinage réseau).
En plus du LMB, il y a des navigateurs-maîtres de domaine, Domain Master Browsers (DMBs). Les DMBs coordonnent les listes de navigateur dans les domaines NT, même sur des réseaux avec routage. En utilisant les DMBs, le LMB localise son DMB pour échanger et combiner les listes de navigateurs. Donc, la liste se propage sur tous les hôtes du domaine NT. Malheureusement, les durées de synchronisation sont critiques. Il arrive que cela prenne plus d'une heure pour qu'une modifiaction sur un sous-réseau distant soit prise en considération dans le ``voisinage réseau''.