BASES sur les RESEAUX NETBIOS / SMB

Choses à savoir pour mieux comprendre SAMBA




Version 1.0

Table des matières

 Introduction

1/ NetBIOS: "the beast within"

1.1/ La couche sous le serveur SMB
1.2/ Un nom NetBIOS de 15 caractères?
1.3/ Et le seixième!
1.4/ Noms doubles sur le réseau
1.5/ ID d'étendue

2/ NetBIOS, la notion de voisinage réseau

2.1/ NetBIOS fonctionne en couche 4 de TCP/IP
2.2/ NetBIOS fonctionne par diffusion

3/ Le Maître Explorateur: Le maître du réseau.

3.1/ Fontionnement des listes d'exploration
3.2/ Election du maître explorateur: élections libres dans une république bananière.
3.3/ Lenteurs de voisinage réseau: Netbios, c'est pire que l'administration.

4/ Autres modes de résolution de nom: Wins, lmhosts - types de noeuds

4.1/ Du WINS dans votre moteur NetBIOS
4.2/ On se dépanne avec des fichiers LMHOSTS
4.3/ Types de noeuds

Conclusion

Note 1: Les différents Noms NetBIOS inscrits
Note 2: Domaine de diffusion
Note3: NetBIOS et firewalling, ports utilisés, services de session, services de datagramme.
Note 4: paramètres jouant sur les élections de maître explorateur ou permettant à un serveur SAMBA de servir des listes d'exploration
Note 5: Différence entre netbeui et netbios par dessus tcp/ip

Webographie

Bibliographie

 


Introduction

La mise en place de réseaux de types Microsoft, en se servant du protocole SMB/CIFS a une apparence de simplicité et de "ça va de soi" qui masque de réels pièges. Ceux qui ont tenté cette mise en place via Samba sur une plateforme UNIX ont touché du doigt ces nombreux pièges cachés. Une grande partie des erreurs de configuration et des problèmes de fonctionnement sont liés à une méconnaissance du système qui sous-tend ce type de réseau. Combien de fois ai-je lu:"mes machines ne se voient pas", "j'ai un nom double sur le réseau, mais lequel?", "il me parle d'elections de maître explorateur, c'est grave?"... et j'en passe. Cet article a pour but d'être assez complet tout en étant autant que possible pédagogique. Désolé si je ne sais pas tout de NetBIOS. Si jamais vous trouvez des erreurs ou des manques faites le moi savoir, je les corrigerai au plus vite.
Cet article est destiné aux administrateurs UNIX qui désirent mettre en place un réseau sous Samba mais qui connaissent mal certaines finesses des réseaux NetBIOS, ou aux néophytes qui voudraient mettre sur place un réseau NetBIOS sous Samba ou Windows mais n'ont pas lu les bases nécessaires (et trop souvent payantes). Pour une meilleure compréhension, quelques bases sur TCP/IP seront sans doute nécessaires (vous pouvez par exemple vous tourner vers le site http://www.guill.net/reseaux/tcpip/index.html). Si vous êtes débutants certaines notions risquent de vous sembler un peu obscures dans un premier temps, essayez de ne pas perdre patience, faites moi remarquer les passages mal expliqués, j'essaierai de les éclaircir dans la prochaîne version du document.
Il n'est en revanche pas du tout destiné aux administrateurs confirmés, aux personnes possédant la certification TCP/IP Microsoft, ou à ceux qui veulent monter un réseau NFS, ou un serveur web. ;-) .

Pour ceux qui ne pourraient pas comprendre que l'on implantât un protocole utilisé par les réseaux Microsoft sur nos bien aimées plateformes UNIX, je rappellerai l'adage suivant: Il faut toujours apprendre la langue de ses ennemis, et puis aussi, abondance de savoir ne nuit pas, et puis encore pierre qui roule n'amasse pas mousse.

C'est parti.

1/ NetBIOS: "the beast within"

NetBIOS n'est pas un protocole en soi. C'est une interface logicielle, et un mode de nommage. Il sous-tend tous les réseaux de type Microsoft jusqu'à Windows 2000. Il est à la base de tout le fonctionnement d'un réseau Microsoft, qu'il s'agisse d'un groupe de travail ou d'un domaine. Il comprend le nommage des machines, le nommage des groupes de travail, ou des domaines, mais aussi l'identification d'un serveur comme contrôleur de domaine ou comme simple station, il fait fonctionner ce qu'on appelle le voisinage réseau. Il a été fortement décrié pour la charge induite sur les réseaux, mais c'est aussi un système puissant et fonctionnel dès lors qu'il est paramétré avec soin sur un système stable et bien protégé.
NetBIOS, c'est le système de nommage des réseaux SMB (réseaux MS). On peut le comparer grossièrement à DNS pour le nommage internet. Par abus de language, il se peut qu'on retrouve dans ce document la mention de "protocole NetBIOS", mais vous saurez désormais à quoi vous en tenir.

 

1.1/ La couche sous le serveur SMB

    Pour identifier les éléments des réseaux Microsoft on utilise NetBIOS. Sans NetBIOS, pas de partage de fichiers et d'imprimantes, pas de Samba.
    Sous Windows 9x, il faut avoir activé soit le client pour les réseaux Microsoft (qui permet d'inscrire la station dans un domaine), soit le partage de fichiers et d'imprimantes (qui permet de partager des ressources au sein d'un groupe de travail).
    Ne pas installer ces services, revient à rendre la machine sourde et muette sur un réseau SMB TCP/IP. S'il y a un très bon conseil à donner aux novices en matière d'internet c'est de commencer par ne pas installer ces deux services, ou à les désactiver (la procédure n'est pas l'objet de cette doc) pour l'interface réseau qui fait le lien avec Internet. L'installation automatique du client MS et du partage de fichiers a été un trou de sécurité terrible sur les réseaux câblés avant que ceux-ci ne fonctionnent avec le protocole pppoe comme l'ADSL, n'importe qui entrait sur les machines pour pouvoir y faire n'importe quoi et le fournisseur d'accès Wanadoo sur Bordeaux en a notoirement fait les frais. La partie sur les diffusions explique pourquoi.

    Sur une machine Unix, il faut installer Samba... avec Samba on installe donc les démons SMBD et NMBD.
    Au moins on se rend compte que l'on installe un protocole réseau...
     
     

1.2/ Un nom NetBIOS de 15 caractères?

    Le nom NetBIOS c'est en premier lieu un nom de 15 caractères maximum plus un seixième.
    Attachons nous aux 15 premiers.
    Celui auquel tout le monde pense de prime abord est le nom de la machine. Quel que soit le système d'exploitation utilisé, dès lors qu'on installe la couche NetBIOS, on déclare un nom de machine, et c'est ce nom que l'on verra apparaître dans le voisinage réseau avec une icône d'écran d'ordinateur.
    Sur Samba il s'agit par défaut du nom de l'hôte UNIX de la machine ou celui défini par la chaîne:
    NetBIOS name = ZORRO.

    Le deuxième nom, le moins évident c'est le nom du groupe de travail ou workgroup.
    Dans le voisinage réseau, le groupe de travail est matérialisé par les 3 écrans reliés qui contiennent des icônes d'ordinateur. A noter que la notion de domaine et de groupe de travail est d'abord une notion de groupe de sécurité, et pas une question de nom NetBIOS. Pour vous le confirmer, si deux machines ont respectivement pour nom de domaine et pour groupe de travail la même chaîne "SANTAFE", vous les verrez au même emplacement. (Par commodité on parle de nom du groupe de travail, plutôt que de nom du groupe d'ordinateurs). D'ailleurs avec Samba, les deux se paramètrent avec "workgroup = SANTAFE" .
    (Note: Un domaine est un système d'authentification centralisée, au contraire du groupe de travail, où il faut reproduire manuellement les comptes utilisateurs sur chacune des machines.)



     

1.3/ Et le seizième!

    Là, c'est moins évident.
    Le seizième caractère du nom NetBIOS est un caractère caché. Il s'agit d'un hexadécimal qui caractérise le nom NetBIOS. Imaginons un instant qu'une machine arrive dans un groupe de travail, elle demande à ses voisines: "je suis la machine 192.168.0.3, j'ai pour noms NetBIOS PAMELA et ANDERSON, et vous?" et là réponse tout aussi curieuse : "hello, je suis 192.168.0.12 j'ai pour noms NetBIOS ROBERT et REDFORD". Vous ne trouvez pas qu'il manque quelque chose? A chaque fois la machine a donné deux noms NetBIOS et à aucun moment elle n'a dit le quel est le nom de la machine et lequel est le nom du groupe de travail. Le seizième caractère sert à ça! Il caractérise le nom NetBIOS.

    Pour y voir plus clair, dans une console dos exécutez la commande c:\nbtstat -A 192.168.0.1 (192.168.0.1 est l'adresse IP de la carte réseau de votre machine)

           
    C:\>nbtstat -A 192.168.0.1

    Connexion au réseau local:
    Adresse IP du noeud : [192.168.0.1] ID d'étendue : []

    Table de noms NetBIOS des ordinateurs distants

    Nom Type État
    ---------------------------------------------
    ZORRO <00> UNIQUE Inscrit
    SANTAFE <00> Groupe Inscrit
    ZORRO <20> UNIQUE Inscrit
    ZORRO <03> UNIQUE Inscrit
    SANTAFE <1E> Groupe Inscrit

    Adresse MAC = 00-D0-B7-1B-C8-3D




    On remarque en face des noms des caractères: <00>, <20> .
    On remarque que ZORRO et SANTAFE ont tous les deux <00> Il s'agit des noms attachés au service Station de Travail. C'est l'identification de l'ordinateur sur le réseau.
    On remarque aussi que SANTAFE, par exemple, a à la fois les caractères <00>, et <1E>. En fait,  <1E> est l'identifiant d'un groupe d'ordinateurs. Pour le redire autrement, <00> définit qu'il s'agit "du" nom NetBIOS (nom de la machine ou du groupe d'ordinateurs), et tous les autres définissent la  ou les  fonctions exactes de ce nom NetBIOS (groupe d'ordinateurs, serveur d'impression, service messagerie...). On sait donc maintenant que l'ordinateur ZORRO a annoncé aux autres machines qu'il s'appelle ZORRO, et qu'il est dans le groupe d'ordinateur SANTAFE. On sait aussi qu'il exécute le service serveur <20> et qu'il exécute le service messagerie (qui permet d'envoyer des messages pop-up - un "man smbclient" vous expliquera comment envoyer des messages pop-up sous Samba) <03>. La commande nbtstat permet d'obtenir des informations très précieuses sur un réseau distant, que les intentions soient honnêtes ou non. Nous verrons plus loin pourquoi.

Sans NetBIOS, pas de domaine NT. Attention! La notion de domaine NT est une notion de groupe de sécurité, pas réellement une notion NetBIOS. Par conséquent je ne parle pas du fonctionnement d'un domaine NT/W2000. Il n'en demeure pas moins que pour joindre un domaine de sécurité (le domaine NT/2000, quoi), les clients et les serveurs ont besoin de savoir quels sont les ordinateurs contrôleurs du domaine:
Quand on indique à un client SMB (Samba, win9x, NT, XP) de joindre un domaine, à aucun moment on ne lui indique la machine contrôleur de domaine. Il est même tout à fait possible qu'on ne la connaisse pas. Sur Samba on va utiliser les paramètres SECURITY = DOMAIN, WORKGROUP = SANTAFE, PASSWORD SERVER = * (Il est possible de mettre un nom à password server, mais avec "*" le client va s'authentifier sur le premier contrôleur qui répond).
Donc, comment fait notre client pour savoir qui est "le chef" du réseau? Hé bien tout bêtement, il va demander s'il existe un nom NetBIOS se finissant par <1C>.  On peut presque dire que le seixième caractère c'est un peu comme un système qui permettrait de reconnaitre la fonction de chacun au milieu d'une foule, grâce à la couleur de ses vêtements.

Par exemple la commande nbtstat sur mes contrôleurs de domaine me donne systématiquement une inscription de type:

		SANTAFE		<1C> Groupe Inscrit 

Qui va indiquer que la machine renvoyant le <1C> est un contrôleur de domaine sur le domaine SANTAFE

Pour information, voici la liste des noms uniques possibles. Vous pouvez la retrouver à l'adresse suivante:
http://www.Microsoft.com/ntserver/techresources/commnet/WINS/WINSwp98/WINS10-12.asp

Maintenant, la grande question existentielle est: Mais comment une machine fait-elle pour "demander" qui est le contrôleur de domaine?
Réponse au chapitre suivant: ça fonctionne par diffusion !(vous connaissez certainement le terme anglais broadcast).

 

1.4/ Noms doubles sur le réseau

C'est l'un des problèmes des débutants et parfois des non-débutants. Le plus courant, c'est d'avoir un groupe d'ordinateurs qui s'appelle PATRIIICK, et d'essayer d'installer un ordinateur dont le nom serait PATRIIICK. Et là, au premier redémarrage de la machine, vlan!! Ce nom NetBIOS est déjà utilisé sur le réseau. Le premier réflexe, est de regarder si on a pas une autre machine qui s'appellerait PATRIIICK. Et on cherche jusqu'à ce qu'un bonne âme ou un éclair de génie nous fasse regarder du côté du nom du groupe et qu'on s'aperçoive que c'est le même.
On appelle donc notre ordinateur BRUEL, et là miracle, ça marche direct.

Pourquoi NetBIOS est-il si méchant? Parce que.

Revenons à notre seizième caractère. On a peut-être l'impression que le nom du groupe d'ordinateurs et le nom de l'ordinateur sont deux choses distinctes, mais en y regardant de plus près si on fait un nbtstat sur un nom de machine que va-t-on voir?

    BRUEL	       	<00>  UNIQUE      Inscrit
PATRIIICK <00> Groupe Inscrit

Imaginons maintenant que je mette

    PATRIIICK	   	<00>  UNIQUE      Inscrit
PATRIIICK <00> Groupe Inscrit

Comment pensez vous que les autres ordinateurs et lui même vont faire la différence entre le nom de la machine et le nom du groupe d'ordinateurs. Et quand l'ordinateur va recevoir une demande de session pour le nom de PATRIIICK, cette demande sera-t-elle adressée au groupe ou au nom unique? On aura le même problème que si deux cartes réseau sont paramétrées avec la même adresse IP sur un même segment physique.

 

1.5/ ID d'étendue

Ce paramètre est très peu utilisé, et pour cause, c'est plus une source d'ennuis qu'une véritable utilité. Il peut être la source de soucis de communication insolubles pour des machines mal paramétrées avec des ID d'étendue NetBIOS. Microsoft n'en fait pas réellement la publicité, et la documentation de Samba déconseille franchement de s'en servir.

L'ID d'étendue NetBIOS est un système qui permet de segmenter un réseau NetBIOS en plusieurs parties suivant l'ID d'étendue à laquelle une machine appartient. L'idée est qu'on peut vouloir segmenter son réseau au point de vue NetBIOS, sans vouloir le segmenter d'un point de vue IP. Deux ordinateurs ne se verront (en termes NetBIOS) que si ils ont le même ID d'étendue. Ce qui ne les empêchera pas de communiquer d'un point de vue IP. On comprend dès lors qu'un clic de travers ou un caractère en trop puisse donner des cheveux blancs même à un administrateur compétent.

L'ID est une chaîne de caractères dont la longueur ajoutée à celle du nom NetBIOS (16ième caractère inclus) ne doit pas dépasser 256 caractères.

Exemple: si je définis pour la machine OBIWAN une étendue "502starwars", et aucune étendue à la machine YODA et que toutes les deux appartiennent au groupe d'ordinateur STARWARS, on aura bien un groupe STARWARS contenant deux machines OBIWAN.502starwars et YODA, mais elles ne communiqueront pas entre elles au niveau NetBIOS.


 

 


2/ NetBIOS, la notion de voisinage réseau



2.1/ NetBIOS fonctionne en couche 4 de TCP/IP

    Dans TCP/IP, NetBIOS est un protocole de niveau 4 donc de la couche application qui fonctionne principalement sur les ports 137 138 et 139. C'est tout particulièrement important lorsque l'on souhaite mettre en réseau des machines utilisant un petit firewall intégré.

    Une autre chose très importante est le fait que NetBIOS fonctionne sur le principe des diffusions (broadcast): pour se parler, les machines diffusent leurs requêtes sur le réseau IP qui est le leur. Cela veut dire que si deux machines utilisent le protocole NetBIOS sur un même réseau IP, à moins de faire en sorte du contraire, elles finiront forcément par se voir.

    Il s'agit principalement d'un protocole (de niveau 4, ça veut dire que d'un point de vue tcp/ip, il se trouve au sommet de la pile). Pour rappel:

    Couche 4: la couche application, avec en vrac http, ftp, dns (et d'autres) l'interface NetBIOS, et les applications NetBIOS (voisinage réseau, explorer, ...)
    Couche 3: la couche transport avec tcp et udp, et NetBT (NetBT est l'intercouche qui établit la correspondance nom NetBIOS <--> adresse IP.)
    Couche 2: la couche réseaux avec IP pour décider de l'adresse de la machine, du routage....
    Couche 1: la couche physique avec l'adresse mac de la carte réseau, c'est là que les 0 et les 1 sont transformés en signaux électriques.

    Allez voir la note 5 pour voir la différence entre NetBIOS/NetBEUI et NetBIOS/NEtBT (tcp/ip)

    Qu'est-ce que ça veut dire tout ça? Ca veut dire que dans un premier temps, et avant même de se demander si c'est au niveau NetBIOS que ça coince, il faut regarder si tout fonctionne au niveau physique (voir si les diodes du hub et des cartes réseau sont allumées), puis vérifier à nouveau que du côté IP ça tourne bien (peut-on pinguer les machines, sont-elles sur un même réseau IP?) (192.168.0.5/255.255.255.0 et 192.168.0.8/255.255.255.0 communiquent entre elles et "se voient" mais ne "voient" pas 10.0.0.5/255.255.255.0), les machines sont-elles séparées par des équipements qui filtreraient les ports (sockets) de communication NetBIOS en tcp ou en udp, par un routeur?

     NB.: On écrit aussi 192.168.0.5/24 ou 192.168.0.8/24


     

2.2/ NetBIOS fonctionne par diffusion

    2.2.1/ Au commencement...

    NetBIOS a été créé à une époque où les réseaux internes des entreprises étaient soit de très grands réseaux équipés de main-frames avec des terminaux, ou de machines UNIX avec aussi des terminaux, ou bien de petits réseaux non-routés. Les machines se "découvraient" en hurlant à la cantonade : "je suis la machine ZORRO j'ai l'adresse 192.168.0.5, y a quelqu'un?" et la machine SGTGARCIA de répondre: "Oui, oui!! je suis le SGTGARCIA, j'ai l'adresse IP 192.168.0.8". Et ça gueulait à tout va! En langage technique, on dira que ça fonctionne par diffusion. Pour une autre explication des diffusions, vous pouvez aller voir sur guill.net

    2.2.2/ Les routeurs

    Le problème des diffusions, c'est qu'elles ne passent pas les routeurs. Je vous le fais en language MS: "ce n'est pas un bug, c'est une fonctionnalité". Bon, pour les routeurs, c'est bien une fonctionnalité, puisque les routeurs sont aussi faits pour fractionner les réseaux et limiter les diffusions. Pourquoi? Hé bien c'est rigolo des machines qui s'appellent à la cantonade, mais il faut bien comprendre que celà engendre tout de même un trafic important! Imaginez que dans une pièce, 3 personnes se hèlent. Maintenant, imaginez la même chose avec 600 personnes dans une salle des fêtes, et réfléchissez à la quantité d'informations effectivement partagée dans cette cohue. Pour résoudre ce problème, d'un point de vue tcp/ip, on a segmenté la salle des fêtes en multiples pièces, ce sont les routeurs qui font office de cloisons.

    Donc, les diffusions ne passent pas les routeurs, ce qui fait que SGTGARCIA ne pourra jamais voir (à moins d'utiliser un artifice) la machine DONDIEGO 10.0.0.5. (en élargissant un peu, c'est la même raison pour laquelle, les paquets DHCP ne passent pas les routeurs, ce sont des paquets de diffusion (broadcast)

    2.2.3/ Notion de voisinage réseau
    Cette notion de diffusion et de domaine de diffusion a donné la notion de "voisinage réseau". Le voisinage réseau, c'est l'ensemble des machines faisant tourner le protocole NetBIOS dans un même réseau IP; pour mon exemple, il s'agit de tous les ordinateurs ayant une adresse comprise entre 192.168.0.1 et 192.168.0.254. et pas plus.
    C'est un artifice visuel bien pratique qui permet de savoir presque immédiatement si un service est disponible: Imaginons une imprimante partagée sur un ordinateur: Si on ne voit pas l'ordinateur, c'est que vraisemblablement, on ne pourra pas imprimer sur cette machine. C'est aussi une bonne indication de la "santé" d'une machine: ne pas la voir dans le voisinage réseau, signifie trop souvent qu'elle est mal paramétrée.

    Sur Samba, on a un utilitaire qui rend un peu le même service que le voisinage réseau de Windows, c'est findsmb.

    Exemple:

    toto:/usr/local/Samba/bin# ./findsmb

    IP ADDR NetBIOS NAME WORKGROUP/OS/VERSION
    ---------------------------------------------------------------------


    175.0.2.36 LUKE [FLORA-PARTNER] [Windows 5.0] [Windows 2000 LAN Manager]
    175.0.2.39 LEIA [FLORA-PARTNER] [Windows NT 4.0] [NT LAN Manager 4.0]
    175.0.2.41 CHEWBAKA [FLORA-PARTNER] [Windows 5.0] [Windows 2000 LAN Manager]
    175.0.2.128 BOBAFET *[FLORA-PARTNER] [Windows 5.0] [Windows 2000 LAN Manager]
    175.0.2.130 JARJAR [FLORA-PARTNER] [Windows NT 4.0] [NT LAN Manager 4.0]
    175.0.2.133 R2D2 [FLORA-PARTNER] [Unix] [Samba 2.0.6]
    175.0.2.134 C3PO [FLORA-PARTNER] [Unix] [Samba 2.2.3a-7 for Debian]

    Sur une machine Microsoft, lorsqu'on veut trouver un ordinateur executant NetBIOS qui est derrière un routeur, on peut utiliser la fonction rechercher pour essayer de le retrouver, mais cette recherche se fait sur l'adresse IP, et pas sur le nom NetBIOS

    2.2.4/ Où nous revenons à notre seizième caractère

    Nous avons vu au premier épisode que pour joindre un domaine la machine demande un enregistrement [1Ch] . Hé bien il va le faire par diffusion. C'est pourquoi il est absolument capital qu'une machine qui rejoint un domaine NT ou un domaine Samba se trouve sur le même domaine de diffusion. De la même manière, pour demander qui est le chef du réseau, le maître explorateur, ou pour s'affirmer maître explorateur, un ordinateur fera une annonce par diffusion (on verra plus loin ce qu'est le "master browser").

    Dans l'exemple ci-dessus, on voit que LUKE est une simple station Windows 2000, que LEIA est une station Windows 2000, mais qu'aux yeux de findsmb, il n'y a pas de différence entre JARJAR et LEIA alors que JARJAR est un contrôleur de domaine NT4.0. L'astérisque (*)sur BOBAFET désigne, le Contrôleur Principal de Domaine. Cette information a été obtenue, grâce à une diffusion et au seizième caractère NetBIOS.

    2.2.5/ NetBIOS sur internet, NetBIOS via ppp, NetBIOS sur les réseaux câblés...

    "Mais... mais... comment se fait-il que...? On vient de dire que les NetBIOS ne passe pas les routeurs et à la fin du paragraphe sur le voisinage réseau, on me dit qu'avec la fonction rechercher sur l'adresse IP on peut quand même se connecter à un serveur NetBIOS derrière un routeur? Faudrait savoir!?"

    En fait, ce n'est pas NetBIOS lui même qui ne passe pas les routeurs, mais les diffusions NetBIOS. On a vu plus haut que NetBIOS est un service/démon qui tourne sur les ports 137 et 139. quand on utilise la fonction rechercher sous Windows, et qu'on recherche une machine par son adresse IP, on ne fait que demander à notre client NetBIOS de se connecter au port 139 de la machine Windows. Une fois la connexion de socket établie, on peut accéder aux partages de la machine distante, comme si celle-ci était en local. C'est la raison pour laquelle les machines Windows 9x ou les serveurs Samba qui ont des partages mal protégés sont tout particulièrement vulnérables. Une commande nbtstat -A sur l'adresse IP d'une machine située au Népal fera une connexion sur le port 139 de la machine distante et renverra des informations plutôt intéressantes. Il en va de même avec le logiciel smbclient pour Samba (ex: smbclient -L nomdemachine) où il n'est pas forcément nécessaire de donner un mot de passe pour avoir la liste de tous les partages.

    En fait, ce à quoi il faut faire attention, c'est au fait que les fonctions requérant des demandes de diffusion ne pourront pas fonctionner dans ces conditions. Ce point sera détaillé plus tard.
    En attendant, comme mentionné plus haut, les réseaux câblés de la fin des années 1990 auront été un véritable laboratoire pour les pirates en herbe: Ces réseaux sont bâtis comme un gigantesque LAN segmenté artificiellement en 2 ou 3 grandes classes d'adresses IP. Ces MAN (Metropolitan Access Network) étaient comme un gros hub (rien de tel qu'un sniffer pour l'explorer), et un néophyte allant voir dans le voisinage réseau de son petit PC pouvait y découvrir une bonne quinzaine de groupes de travail et une bonne vingtaine de machines, tout simplement, parce que l'architecture du site laissait passer toutes les diffusions. J'ai même le souvenir d'avoir imprimé un message sur l'imprimante d'une personne ayant essayé de rentrer sur mon serveur, et des petits malins avaient imprimé sur des imprimantes du FAI.

     



3/ Le Maître Explorateur: Le maître du réseau

L'explorateur réseau est le service qui rassemble et organise la liste des ordinateurs et des domaines que l'on voit dans le voisinage réseau Windows ou en faisant smbfind sous Samba. En dehors de l'aspect visuel rassurant qui donne cette satisfaction béate du "tout va bien, mes petits sont tous là", l'explorateur réseau permet par exemple à une machine de savoir à tout moment quels sont les ordinateurs executant NetBIOS sur le même réseau IP, sans avoir à envoyer en permanence des diffusions. C'est en quelque sorte un carnet d'adresses qui évite de consulter l'annuaire chaque fois qu'on a besoin d'appeler sa mère, ou qui évite de hurler dans le voisinage: "j'ai perdu le numéro de ma mère est-ce que quelqu'un a le numéro de Frenégonde?". Pour 2-3 ordinateurs, ça passe, mais imaginez le résultat pour 1000 machines.

Ce qu'il faut bien se figurer aussi, c'est qu'un réseau (un bon gros réseau de plusieurs centaines de machines), c'est comme une pièce de théatre avec des centaines d'acteurs et de figurants, qui entrent qui sortent qui se parlent, sortent, s'évanouissent, reviennent à eux, parlent, sortent... Dans ces conditions là si chaque acteur devait avoir sa propre liste des autres personnes présente à un instant T sur la scène, le résultat serait pitoyable. On a donc décidé qu'il y aurait une personne, en l'occurence un ordinateur qui tiendrait une liste la plus à jour possible, de tout ce qui est présent, une sorte de concierge.... Sur le réseau, on l'appelle "Maître Explorateur" (master browser). Les machines présentes (executant NetBIOS) lui demanderont la liste d'exploration à afficher dans le voisinage réseau. (Allez courage, il paraît que c'est le passage le plus ennuyeux de cette doc, m'a dit un relecteur; c'est aussi le plus complexe.)

 

3.1/ Fontionnement des listes d'exploration

3.1.1/Enregistrement des noms

Et voilà... toutes les 12 minutes, les ordinateurs annoncent leur présence au nom NetBIOS <domaine>[1D] (cf note1), c'est à dire au maître explorateur.
A partir de ces diffusions, le maître explorateur créé donc une liste d'exploration. Dans le même temps, il s'attribue l'enregistrement __MSBROWSE__.[01], et l'annonce au réseau. Grâce à ce système les maîtres explorateurs des autres groupes ou domaines (oui, on peut avoir plusieurs groupes d'ordinateurs sur un même réseau IP) savent quels sont les ordinateurs des autres groupes à qui demander la liste d'exploration pour ces groupes d'ordinateurs.

A supposer que sur un même segment IP on ait 3 domaines TOTO TATA TUTU, on aura 3 machines enregistrées <TOTO>[1D], <TATA>[1D], <TUTU>[1D], et chacun ayant un enregistrement __MSBROWSE__.[01]. (!!Attention!! je parle de domaine, mais il faut bien comprendre que la terminologie est ambiguê: On n'est pas en train de parler de domaine de sécurité, mais de groupe de machine, qui peut être soit un groupe de travail (WorkGroup), soit un domaine NT/Windows 2000. Il se trouve qu'au niveau des noms NetBIOS les deux ont l'appelation <domaine>[00h] (cf note 1).)
Donc chaque maître explorateur sur chaque groupe de machine d'un même réseau IP possède aussi la liste d'exploration des autres groupes d'ordinateurs de ce même réseau IP.

Si jamais le nombre d'ordinateurs croît, le maître explorateur commence à répliquer sa liste sur des explorateurs de secours (Backup Browsers). Seuls les serveurs NT peuvent être explorateurs de secours, pas les stations ou les machines Windows9x. Cette notion est importante quand on paramètre Samba, si on veut absolument que celui-ci puisse servir de maître explorateur, il ne faut surtout pas lui donner un statut de Station de travail. Les explorateurs de secours contactent le maître explorateur pour mettre leur liste à jour toutes les 15 minutes.

3.1.2/ Réponse aux requêtes des clients

Lorsqu'une demande d'exploration est faite par un client, celle-ci est faite directement auprès du Maître Explorateur, qui retourne la liste des ordinateurs du réseau. Le service d'exploration du client garde pour un usage futur les noms de 3 explorateurs du réseau, et lors des demandes d'exploration futures contacte l'un de ces 3 serveurs.

Sous Windows, lorsqu'un client explore le voisinage réseau, il commence par demander la liste des enregistrements __MSBROWSE__.[01], il récupère donc la liste des groupes d'ordinateurs disponibles sur son réseau, ainsi que le nom des maîtres explorateur pour chaque groupe, puis quand l'utilisateur entre dans le groupe de son choix, le client fait sa demande auprès du maître explorateur de son propre groupe d'ordinateur (enregistrement de type <domaine>[1D] ) et si celui-ci ne répond pas, il fait la même requête auprès du maître explorateur du groupe qu'il souhaite explorer.

3.1.3/ Le Boss du niveau: Le maître explorateur du Domaine

Il y a un dernier larron qu'on n'avait pas mentionné jusqu'ici, c'est le maître explorateur du Domaine. Pour ce coup ci, on parle vraiment d'un domaine de sécurité. Je n'en ai pas parlé, mais il est tout à fait possible qu'un domaine de sécurité NT/Samba soit à cheval sur plusieurs réseaux IP. Ca veut simplement dire que certains ordinateurs du domaine sont derrière un routeur (Il n'est pas possible (a priori) de leur faire joindre le domaine s'ils sont derrière un routeur, mais rien n'empêche de les déplacer après la jonction au domaine.). Puisque les maîtres explorateurs n'ont la liste que des machines de leur propre réseau IP, mais qu'on peut avoir besoin d'accéder aux ressources d'un serveur de fichier Samba (au hasard ;-)) derrière un routeur, il faut bien qu'on sache que cette machine est disponible, pour que le service d'exploration (donc le voisinage réseau) renvoie l'information du Samba, hé bien il existe un super maître explorateur: Le maître explorateur du Domaine, le boss des boss. Ce rôle est dévolu au Contrôleur Principal de Domaine.

Le maître explorateur du Domaine fusionne les listes d'exploration locale en une seule grande liste, et les redistribue à chaque maître explorateur local, qui à son tour les réplique sur les explorateurs de secours. De cette manière, les clients d'un domaine peuvent accéder à TOUTES les machines d'un domaine.

Il y a donc deux possibilités: soit le Contrôleur Principal de domaine est multi-résident (il est à cheval sur plusieurs réseaux) soit on utilise un serveur WINS. (cf plus bas)

 

3.2/ Election du maître explorateur: élections libres dans une république bananière

Et maintenant, la question que vous vous posez tous, je l'ai lu sur vos regards effarés: "Mais comment un ordinateur fait-il pour être élu maître explorateur? Il cogne plus fort que les autres, ou il "couche"?" La réponse, vous vous en doutez, est qu'il faut "coucher".

3.2.1/ Les ordinateurs éligibles

Si vous pensiez que les américains ont introduit la démocratie dans les réseaux NetBIOS, retournez à vos bouquins, c'est comme pour le reste, il y a un ordre: Il y a ceux qui ont toutes les chances, et ceux qui n'en ont aucune.

-Parmi ceux qui ont toutes les chances, on trouve les Contrôleurs Principaux de Domaine. Ils ont 100% de chances d'être élus "Maître Explorateur du Domaine".
-Ensuite on trouve tous les serveurs NT, qui vont obligatoirement devenir soit des maîtres explorateurs soit des explorateurs de secours.
-Les Stations, les Windows 9x, les serveurs Samba paramétrés avec les pieds ont moins de chances que tous les autres d'être des maîtres explorateurs

3.2.2/ Les élections

Il faut déjà bien comprendre que dès qu'il y a un réseau NetBIOS, il y a un maître explorateur. Donc la première machine du réseau toute seule sur son étendue IP est maître explorateur. Jusque là, ce n'est pas trop dur, c'est une élection du style: "je suis tout seul sur mon île, je m'auto-proclame chef du monde de mes 2m² de sable"

Il y a élections quand:
-un client ne trouve pas de maître explorateur au démarrage
-un client détecte la disparition d'une maître explorateur
-un serveur NT démarre.

Ensuite, plusieurs paramètres entrent en compte, et il va s'établir des ordres de supériorité:
Un serveur l'emporte sur une station, un contrôleur de domaine l'emporte sur un serveur membre. Un serveur Windows 2000 l'emporte sur un serveur NT4.0, une station NT4.0 l'emporte sur un Windows 98, etc.

Sur un ordinateur Microsoft, il n'y a aucun moyen de modifier le rôle et le niveau d'OS attribué à l'ordinateur. On ne peut pas faire croire aux autres ordinateurs qu'une station NT est un serveur Windows 2000. Un serveur Samba, au contraire est paramétré par défaut comme un serveur Windows NT4.2, mais on peut tout à fait modifier ses chances d'élections.

De manière simplifiée, une élection ressemble au dialogue imaginaire suivant:

-Je suis SGTGARCIA, je suis maître explorateur sur mon réseau, tranquilou. Je suis une machine Windows NT Station 4.0.
Survient sur le réseau un ordinateur surgi de laaaaaaaa nuiiiiiiiiit. Il s'agit de ZORRO: un serveur NT 4.0, qui tout d'un coup arrive faisant le beau avec sa cape en criant,
-C'est moi le maître explo, c'est moi qui vais centraliser toutes les listes d'exploration de ce groupe d'ordinateurs perdu dans la pampa.
-Halte la ZORRO, le maître explo, ici, c'est moi!!
-Mouaaaaarfff! tu rigoles toi, le maître explorateur? Bon, attends, on va faire une élection.
ZORRO dégaine son OS level de 33, et le rôle qu'il souhaite jouer sur le réseau, à savoir maître explorateur.
SGTGARCIA blêmit:
-Je me rends ZORRO!! Mon OS level n'est que de 16. C'est toi le nouveau maître explorateur. Je m'auto-rétrograde au rang d'explorateur de secours. Je serai ton servant.
ZORRO de faire une annonce par diffusion sur les haut-parleurs du réseau: Attention Attention!! Le nouveau maître explorateur, c'est moi!! Et les autres machines de lui envoyer de manière aléatoire une reconnaissance de son nouveau statut.

 

3.2.3/ Rendre un ordinateur inéligible... "...ha ben pourquoi?"

Parce que. Imaginons un réseau, un groupe de travail -pas de Contrôleur Principal de Domaine, donc- avec 4 ou 5 serveurs NT 4.0 ou Windows 2000, mais tous les mêmes. Les autres ordinateurs sont des versions Windows 98. Hé bien ces ordinateurs vont passer leur temps à provoquer des élections, et cela va engendrer des problèmes bizarres de types, voisinage réseau qui plante, ordinateurs qu'on ne voit pas, etc. L'administrateur va donc décider qu'une seule marchine sera maître explorateur, et pour les autres il va paramétrer qu'elles ne se présenteront pas aux élections.

Un mauvais paramétrage de la variable OS LEVEL dans Samba peut avoir des conséquences tout à fait inattendues sur le réseau! C'est la raison pour laquelle la valeur par défaut se situe au dessus de celle des serveurs NT4.0 (cf note 4) . Un moyen pour être absolument certain de voir son serveur Samba gagner les élections, est de mettre OS LEVEL=99. Si on ne veut surtout pas le voir participer aux élections, on met 1 (comme pour les Windows 9x ou WfWg).

 

3.3/ Lenteurs de voisinage réseau: NetBIOS, c'est pire que l'administration

Vous aurez forcément remarqué qu'une machine allumée n'apparaît pas immédiatement dans le voisinage réseau, et qu'une machine qu'on éteint ne disparaît pas immédiatement non plus. Il y a plusieurs explications.
-La première, ça peut-être qu'une élection de maître explorateur a eu lieu, et que toutes les listes d'explorations sont à refaire. Le temps à attendre n'est pas trop long.
-La deuxième peut-être que les ordinateurs viennent tous d'envoyer leur nom NetBIOS au maître explorateur, et que l'explorateur de sauvegarde vient juste de recevoir la mise à jour de la liste. Il va donc s'écouler 12 minutes avant qu'il ne reçoive la mise à jour comportant l'allumage de la machine.
-La troisième, c'est qu'avant de considérer un ordinateur comme éteint et avant de le supprimer de la liste d'exploration, le maître explorateur attend 3 mises jours de cette liste (elles ont lieu en moyenne toutes les 12  minutes). Ceci peut faire qu'une machine peut mettre presque 1/2 d'heure à disparaître du voisinage réseau. 
Note: éteindre proprement l'odinateur n'accélère pas les choses. Il n'y a que dans le cas où la résolution se fait par WINS que l'ordinateur notifie son serveur WINS qu'il va se déconnecter. Voir plus bas.

 



4/ Autres modes de résolution de nom: Wins, lmhosts - types de noeuds

Comme vu plus haut, NetBIOS a été conçu au départ pour fonctionner sur de petits réseaux avec un petit nombre de machines. Puis avec les années, Microsoft a développé des serveurs prévus pour fonctionner en environnement routé et/ou avec un grand nombre de machines. on a donc cherché des méthodes pour palier aux limitations du fonctionnement par diffusions. Au niveau de l'internet, la résolution de nom se fait avec DNS, qui est un système éprouvé. Microsoft a donc cherché à faire la même chose que DNS, mais pour des environnements de type PME, il n'était pas possible d'avoir quelque chose d'aussi rigide que DNS. Il fallait un système compatible avec NetBIOS et capable de mettre automatiquement à jour la base de données de noms de machines. Aucune RFC ne parlait alors de mise à jour dynamique de DNS (il y plus de 7 ans). Ils ont donc créé WINS.

 

4.1/Du WINS dans votre moteur NetBIOS

WINS: Windows Internet Name Service a été implanté sur Windows NT 3.5 (ça ne nous rajeunit pas). C'est un système de centralisation dynamique des listes des noms des machines: On dit aux ordinateurs du réseau d'aller inscrire leur nom au serveur Wins, et lorsqu'on a besoin de résoudre un nom NetBIOS en adresse IP, on demande au serveur WINS. C'est un système qui permet de limiter grandement les diffusions et permet en plus de fonctionner en environnement routé.

En effet. Au niveau du paramétrage, on indique au client de s'adresser à une adresse IP (celle du serveur WINS), or IP sait parfaitement passer les routeurs. Cela fait que si on a deux réseaux A et B avec le client sur le réseau A et le serveur WINS sur le réseau B, le client va aller demander au serveur WINS sur le réseau B la liste des ordinateurs inscrits chez lui. (je mettrai bientôt un schéma). On peut avoir un seul serveur WINS qui centralise les requêtes de plusieurs réseaux IP différents, sans aucun problème. C'est pour cela que d'un certain point de vue, WINS s'apparente à DNS.

Voici comment cela se passe:
L'ordinateur s'initialise, et va enregistrer son nom et son adresse dans la base du serveur WINS. Tous les ordinateurs paramétrés pour s'inscrire sur ce serveur font de même. Le serveur WINS construit sa liste et quand une machine inscrite a besoin de résoudre un nom NetBIOS, il lui donne. Lorsque l'ordinateur s'éteint, il se désinscrit pour permettre à un autre ordinateur d'utiliser éventuellement le même nom avec une adresse IP différente.

Oui, mais comment cela se passe-t-il pour les ordinateurs qui n'ont pas l'adresse du serveur WINS paramétré?
- Si le client est sur le même réseau IP que le serveur WINS, celui-ci va recevoir tôt ou tard les noms et adresse de l'ordinateur par diffusion, et les inscrira dans sa base. Le client ne pourra pas interroger la base WINS, mais les autres ordinateurs pourront tout de même passer par WINS pour résoudre le nom du client non-inscrit.
- Si le client est sur un autre réseau IP on peut installer un proxy-WINS, qui est un ordinateur qui va intercepter les diffusions, et les transmettre au serveur WINS. C'est le proxy WINS qui inscrira auprès de WINS les machines qui s'allument, et c'est le proxy-WINS qui demandera à WINS et transmettra la réponse quand un ordinateur non-inscrit fera une diffusion pour résoudre le nom d'un autre ordinateur -le fonctionnement d'un proxy, quoi :-) .

Il est tout à fait possible d'avoir deux serveurs WINS Microsoft qui vont répliquer leurs bases, de manière à répondre tout de même aux clients si l'une des deux est en panne, mais il n'est pas possible de faire la même chose avec Samba au moment où je tape ces lignes (version 2.2.5)

WINS peut-être très utile quand on veut faire joindre un domaine à un ordinateur qui est sur un réseau IP différent de celui du contrôleur de domaine. Il est aussi très utile parce qu'il réduit grandement les diffusions NetBIOS sur un réseau. Sur un réseau de plusieurs centaines de machines, les diffusions peuvent provoquer un trafic vraiment important.

 

4.2/ On se dépanne avec des fichiers LMHOSTS

Que faire quand on a vraiment pas de chance?... que faire quand on est derrière un routeur, et qu'on a pas de serveur WINS? Tout n'est pas perdu. Il est encore possible d'utiliser l'équivalent du fichier /etc/hosts sur unix: le fichier LMHOSTS: Il faut surtout éviter de l'utiliser pour un grand nombre de machines, mais si on a besoin de faire joindre un domaine à une machine derrière un routeur.

exemple (celui du fichier lmhosts.sam (fichier exemple) que l'on trouve dans C:\WINDOWS\system32\drivers\etc:

 102.54.94.97     rhino         #PRE #DOM:santafe  #DC du groupe santafe

On établit une correspondance entre l'ordinateur 102.54.94.97 avec le nom NetBIOS RHINO, on indique avec le paramètre #PRE qu'il faut charger le nom dans le cache NetBIOS (visible avec la commande nbtstat, sous Windows), et on indique que c'est un contrôleur du domaine SANTAFE avec le paramètre #DOM.

On peut même indiquer à un ordinateur d'utiliser le fichier lmhosts d'un autre ordinateur...

 

4.3/ Types de noeuds

L'ordinateur va savoir dans quel ordre utiliser les ressources qu'il a à sa disposion grâce au type de noeud paramétré. Par type de noeud, on entend ordre de résolution de nom: Faut-il commencer par résoudre les noms grâce aux diffusions, ou grâce à WINS, et le fichier LMHOSTS, va-t-il servir.

Il y a 4 types de noeuds (node):

B node : Broadcast - la résolution de nom se fait uniquement par diffusion
P node : Point à Point - la résolution de nom se fait uniquement avec le serveur WINS
H node: Hybride - la résolution se fait d'abord avec WINS, puis par diffusion, si WINS n'a pas donné de réponse.
M node: Mixte - la résolution de nom se fait d'abord par diffusion, puis avec WINS.

Sur les ordinateurs Microsoft si la carte réseau est configurée manuellement (pas avec DHCP), le type de noeud est automatiquement configuré en Hybride. Si la carte réseau est configurée automatiquement via DHCP, il faut renseigner le type de noeud dans les options DHCP lorsqu'on paramètre le serveur DHCP. Reportez vous à la page de manuel de votre serveur dhcp pour savoir comment le faire

 


Conclusion

Il est important de ne pas mélanger NetBIOS et SMB. Mais à présent ça devrait aller mieux. Pour ma part j'avoue humblement avoir beaucoup appris à l'écriture de ce document. Je pensais assez bien connaitre NetBIOS, mais en relisant les documents de la Webographie et de la bibliographie, je me suis rendu compte de certaines erreurs, et de certaines confusions. J'espère que pour vous ce sera plus clair. Vous me direz si j'ai réussi à concilier les exigence de facilité de lecture, d'accessibilité pour les débutants, et de précisions pour les gens confirmés. Il ne m'a pas été possible de tout détailler, parce que tout n'est pas forcément utile au quotidien. La Webographie devrait permettre aux acharnés de se projeter dans les détails.

 





Notes

Note 1: Les différents Noms NetBIOS inscrits

Les noms uniques

machine <00> Service station de travail
machine <03> Service Messagerie (net send)
machine <06> Serveur d'accès distant (RAS)
machine <1F> Service NetDDE
machine <20> Client WINS
machine <21> Client RAS
machine <BE> Agent du moniteur réseau (SMS)
machine <BF> Serveur SMS

nom_de_domaine <1B> Cette machine est Maître Explorateur du Domaine.
nom_de_domaine <1D> Maître Explorateur du réseau ou serveur WINS

utilisateur <03> utilisateur connecté localement  

Les noms de groupes

nom_de_domaine <00> nom du groupe d'ordinateurs au quel la machine appartient(groupe de travail ou domaine)
nom_de_domaine <1C> Cette machine est un des contrôleurs du domaine
nom_de_domaine <1E> Cette machine est éligible au rang de maître explorateur
..__MSBROWSE__.<01> utilisé par le maître explorateur pour dire qu'il est LE maître explorateur sur le réseau.

En fait, les noms inscrits (c'est comme ça qu'on les appelle) se finissent toujours par h : SANTAFE [1Ch]
J'ai volontairement omis le "h" à chaque fois, que les puristes me pardonnent.

Retour à l'article



Note 2: Domaine de diffusion

On appelle domaine de diffusion l'espace contigu au sein duquel des ordinateurs peuvent communiquer sans passer par un routeur.

exemple:

une machine dont la carte réseau est paramétrée 175.135.0.16/255.255.255.0 pourra échanger des données avec toutes les machines auxquelles elle est reliée directement (par un switch ou un hub) dont la carte réseau a pour adresse IP 175.135.0.1 à 175.135.0.254 et un masque de 255.255.255.0. Ici, le domaine de diffusion sera composé de toutes ces machines.

Mais un ordinateur ayant pour adresse 175.135.1.1/255.255.255.0 ne fera pas partie de ce domaine de diffusion, mais de celui allant de 175.135.1.1 à 175.135.1.254.

Pour mieux comprendre le fonctionnement des masques de sous réseau allez jeter un coup d'oeil sur guil.net

Retour à l'article

 

Note 3: NetBIOS et firewalling, ports utilisés, services de session, services de datagramme

Le Service de Sessions NetBIOS utilise le port TCP 139. Une session NetBIOS s'établit comme suit:

- Résolution du nom NetBIOS en adresse IP
- Résolution de l'adresse IP en adresse MAC
- Etablissement d'une session TCP de la station au serveur sur le port 139
- La station fait une demande d'établissement de session NetBIOS sur le nom du serveur, par dessus la connexion TCP. Si le serveur est effectivement à l'écoute sur ce nom, il répond par une affirmative et la session s'établit.

Une fois que la session est établie, le client et la station SMB négocient le niveau de protocole SMB qu'ils vont utiliser, par dessus NetBIOS. Toute nouvelle activité SMB se fera par dessus cette même session NetBIOS. Attention cependant, il y a une limite de 254 sessions NetBIOS établies par machine.
Si jamais la station utilise un fichier lmhosts pour la résolution de nom et qu'il y a une différence de correspondance nom<->adresse_IP entre le fichier lmhosts et le nom NetBIOS effectif du serveur, la station contactera le serveur, mais celui-ci refusera l'établissement d'une session et retournera une erreur 51 "remote computer not listening"

Le Service de datagramme NetBIOS fonctionne sur le port UDP 138

Le service de datagramme NetBIOS permet d'envoyer un message à un nom de groupe ou à un nom unique (cf note 1).

exemple1 : net send luke "c'est l'heure de l'apéro" enverrait à la personne connectée à la machine LUKE une invitation à lever le coude.
Attention à ne pas faire net send /domain: "quelle bande d'abrutis dans cette entreprise" comme avait fait un de mes collègues; ça envoit le message à toutes les machines du domaine NT auquel la machine émettrice appartient.

exemple2: Sous linux ce sera plutôt

jabbah@r2d2:/$ smbclient -M leia
added interface ip=192.0.2.134 bcast=192.0.2.255 nmask=255.255.255.0
Connected. Type your message, ending it with a Control-D
Aaaaaaa Taaaaable
sent 19 bytes
jabbah@r2d2:/$

Net send permet plus de choses que smbclient. Il n'empêche que le principe est le même. La machine émettrice va envoyer un paquet unicast (pour un nom unique) ou de broadcast pour un (nom de groupe) sur le nom de groupe ou le nom unique se finissant par le seizième caractère [03h]

Note 4: paramètres jouant sur les élections de maître explorateur ou permettant à un serveur Samba de servir des listes d'exploration

Les néophites devraient lire le reste de la documentation avant d'utiliser ces paramètres sans en comprendre vraiment l'utilité. Ces paramètres sont susceptibles de changer et je vous conseille plus que vivement de vous reporter à la page man de smb.conf pour vérifier leur sens et usage.

On peut utiliser les paramètres:
announce version =
Par défaut, c'est 4.2, mais Windows 2000 s'annonce comme un 5.0, on peut donc avoir besoin de le rendre supérieur.
local master=
permet de rendre Samba éligible. Yes par défaut.
os level=
Windows NT serveur utilise 32, Windows NT Station utilise 16, Windows 9x et WfWg utilisent 1. La valeur par défaut est 33
prefered master =
La valeur par défaut est No. La positionner à Yes provoquera une élection à chaque démarrage du démon smbd.
domain master =
Par défaut c'est no. à positionner en Yes UNIQUEMENT si votre serveur Samba est un Contrôleur Principal de Domaine, et qu'il doit donc aussi être le maître explorateur du domaine. à Absolument Eviter si vous avez déjà un autre CPD sur le domaine.
browse list =
par défaut, c'est Yes. Permet à Samba de distribuer des listes d'exploration.

retour à l'article

 

Note 5: Différence entre netbeui et netbios par dessus tcp/ip


Grosso-modo, NetBEUI apporte les mêmes fonctionalités que NetBIOS par dessus tcp/ip, puisqu'il supporte les fonctions de voisinage réseau, et qu'il permet de joindre une machine sur un réseau local en l'appelant par son nom.
Le grosse différence est dans le fait que NetBEUI se place directement au dessus de la couche matérielle et qu'il établit une correspondance nom NetBIOS <==> adresse Mac. Comme il n'existe pas d'adresses uniques NetBEUI, ce protocole n'est pas routable non plus.
Pour bien montrer la différence de manière graphique, je me suis permis de pomper le joli tableau suivant de l'adresse suivante:
http://duffet.com/technique/reseaums/resms.htm

L'empilement des couches est donc le suivant :

Application

Applications NetBIOS
(voisinage réseau, explorer,...)
Interface NetBIOS
(netbios.dll)

Transport


NetBIOS sur TCP/IP
(NetBT)

Réseau

NetBEUI

TCP/IP

Matériel

NDIS

Ca explique mieux ;-)

retour à l'article



Webographie

Documentation de l'implantation Microsoft tcp/ip. Il y a toute une partie sur NetBIOS. Très détaillé sur certain points, moins sur d'autres.
http://www.Microsoft.com/ntserver/zipdocs/tcpip.exe

Implantation tcp/ip Microsoft Windows 2000 (détaillé)
http://herve-pc.cnrs-orleans.fr/Security/Win2k/TCPIP/Win2k_TCPIP4.htm

La doc de Bruno Duffet qui m'a permis de récupérer le tableau ci-dessus. C'est expliqué de manière différente, et c'est pour ça que c'est bien!
http://duffet.com/technique/reseaums/resms.htm

La doc de Stéphane Pinard, formateur Microsoft à Bordeaux. (c'est lui qui m'a donné toutes mes bases sur NetBIOS, mais promis, si j'ai oublié des choses, ce n'est pas de sa faute.). Doc très pointue, et très pédagogique.
http://perso.club-internet.fr/spinard/rezo.htm

La partie réseau du site de Jean Claude Bellamy
http://www.bellamyjc.net/fr/reseau.html


Bibliographie

Samba, Chez Campus Press, collection l'intro, par Gerald Carter et Richard Sharpe. Gerald Carter est le responsable de la documentation du projet Samba.
Certains passages très pointus et très bien expliqués concernant NetBIOS. A lire si possible. Environ 20 Euros.  Attention à lire la version anglaise, la traduction a été retirée très vite des librairies et comporte de grosses erreurs.

Samba Pocket Reference. chez O' Reilly, par Robert Eckstein, David Collier-Brown, Peter Kelly. C'est un précis des paramètres pour les démons smbd et nmbd, et le ficheir smb.conf. Pas cher. Très bien. A laisser trainer sur le bureau.

TCP/IP - préparation à l'examen MCP chez ENI, par José Dordoigne- Bien meilleur que le bouquin Microsoft Press. Très bien pour avoir une bonne approche de NetBIOS et des réseaux TCP/IP Microsoft. Assez cher, entre 38 et 45 Euros (à mon souvenir). Un très bon complément au bouquin de chez Campus Press

Vous pouvez m'envoyer un message pour me signaler d'autres bons ouvrages à consulter traitant pour tout ou partie de NetBIOS. Vous pouvez aussi m'indiquer des ouvrages à éviter absolument. Il en va de même pour la Webographie.

 

Remerciements

A mes chats, mon clavier, ma souris, et mon écran pour leur toujours indéfectible soutien.

Aux membres de l'ABUL pour leurs encouragements.

Aux relecteurs et correcteurs de ce topo:  Raymond Gimilio, Olivier Parisy, Antoine Beck, Pierre Jarillon, Alexandra Beaufort.
Traduction anglaise en cours par Alexandra Beaufort.


Fabrice Clerc