Samba, 
2. Auflage

Samba, 2. Auflage

Von Jay Ts, Robert Eckstein, and David Collier-Brown
2. Auflage, August 2003
O'Reilly Verlag, ISBN: 3-89721-359-1
www.oreilly.de/catalog/samba2ger/

Dieses Buch ist unter der GNU Free Documentation License (FDL) erschienen. Bitte beachten Sie den Text der GNU FDL.


TOC PREV NEXT INDEX

Kapitel 7

Die Namensauflösung und das Durchsuchen

Die Namensauflösung ist für den Betrieb von Samba von entscheidender Bedeutung, weil die Namen benötigt werden, um diejenigen Server zu finden, die Dateien oder Drucker für eine gemeinsame Nutzung zur Verfügung stellen. Das Durchsuchen (Browsing) hat die Aufgabe des Auffindens der Server dergestalt verbessert, dass es einem Benutzer nun erlaubt ist, eine Hierarchie von Netzwerken, Domänen, Hosts und Diensten, die von den einzelnen Servern angeboten werden, hinabzusteigen.

Namensauflösung und Suche sind zwar eigentlich nicht schwierig zu konfigurieren, eine gewisse Komplexität ergibt sich allerdings aus der Tatsache, dass eine Vielzahl unterschiedlicher Systeme zur Namensauflösung zur Verfügung stehen. Im Laufe ihrer Entwicklung sind Unix und andere Anwender von TCP/IP von der einfachen hosts-Datei zum Domain Name System übergegangen. Auch das Network Information System stellt eine beliebte Wahl dar. Microsoft dagegen ist von einem Broadcasting-System zu einem einfachen, nur im LAN vorhandenen Namensdienst namens WINS und schließlich zum DNS gelangt.

Wir erwähnen diese quasi historischen Fakten deshalb, weil alle genannten Systeme zur Namensauflösung heute noch in Benutzung sind! Das Suchen und Finden eines Hosts ist für den Netzwerkbetrieb so wichtig, dass viele Einrichtungen weiterhin robuste (wenn auch eingeschränkte) Systeme zur Namensauflösung verwenden, auf die sie zurückgreifen können, falls die Hauptsysteme ausfallen. Das Durchsuchen wiederum wird verkompliziert, weil es häufig notwendig ist, Hosts in anderen Subnetzen zu zeigen. In diesem Kapitel erfahren Sie, wie Sie Ihr Netzwerk so konfigurieren, dass die Namensauflösung und das Durchsuchen so vonstatten gehen, wie Sie dies wünschen.

Einige der Unterschiede zwischen Unix- und Microsoft-Netzwerkimplementierungen sind das Ergebnis fundamentaler Designziele. Unter Unix waren Netzwerke ursprünglich hauptsächlich dafür vorgesehen, eine relativ formale Gruppe von Systemen zu implementieren, von denen angenommen wurde, dass es nur wenige sind, die gut gewartet werden, immer verfügbar sind, statische IP-Adressen besitzen und sich physisch nicht von der Stelle bewegen. Das Einbinden eines neuen Servers in das Netzwerk war eine arbeitsintensive Aufgabe, die jedoch nicht oft ausgeführt werden musste. Im Gegensatz dazu waren Windows-Netzwerke ursprünglich als eine Peer-to-Peer-Ansammlung kleiner PCs in einem einzigen Subnetz entwickelt worden, die keine zentrale oder hierarchische Organisationsstruktur hatten.

SMB-Netzwerkbetrieb ist dynamisch. Den Computern ist es erlaubt, das Netzwerk jederzeit zu verlassen. Manchmal geschieht das sogar ohne Warnung. Ebenso können sie dem Netzwerk jederzeit beitreten bzw. wieder beitreten. Darüber hinaus kann jeder Benutzer in einem Windows-Netzwerk dem Netzwerk eine neue freigegebene Ressource hinzufügen oder eine Ressource entfernen, die er zuvor angelegt hatte. Die Änderung in der Konfiguration des Netzwerks wird von den restlichen Elementen des Netzwerks automatisch vorgenommen, ohne dass ein Systemadministrator auf den Plan treten muss.

Namensauflösung

TCP/IP-Netzwerke identifizieren Systeme anhand ihrer IP-Adressen und verknüpfen diese Adressen immer mit normal lesbaren Namen. In den frühesten Netzwerk-Implementierungen von Microsoft (für MS-DOS und Windows for Workgroups) wurde die Übersetzung der Namen in Netzwerk-Adressen in einer Weise ausgeführt, die sehr einfach, aber auch sehr ineffizient war. Wenn ein System im Netzwerk eine IP-Adresse benötigte, die mit einem bestimmten Namen korrespondierte, schickte es den Namen als Broadcast-Nachricht an alle anderen Systeme im Netzwerk und wartete darauf, dass das System, zu dem der Name gehörte, mit seiner IP-Adresse antwortete.

Das Hauptproblem beim Ausführen der Namensauflösung mit Hilfe von Broadcast-Paketen besteht in der schlechten Leistung des Netzwerks als Ganzes, einschließlich der CPU-Zeit, die von den einzelnen Hosts im Netzwerk beansprucht wird, weil diese jedes Broadcast-Paket akzeptieren müssen und anschließend zu entscheiden haben, ob sie darauf antworten. Broadcast-Pakete werden außerdem nicht von Routern weitergeleitet, wodurch die Namensauflösung auf das lokale Subnetz beschränkt ist. Microsofts Lösung bestand darin, Windows NT um Unterstützung für WINS (Windows Internet Name Service) zu erweitern. Die Computer im Netzwerk können nun eine direkte Anfrage an den WINS-Server richten und müssen nicht mehr auf Broadcast-Pakete zurückgreifen.

Moderne Windows-Clients verwenden eine Vielzahl von Methoden für die Übersetzung von Hostnamen in IP-Adressen. Welche Methode das genau ist, hängt davon ab, welche Windows-Version der Client ausführt, wie der Client konfiguriert ist (d.h., ob DNS-Server- und/oder WINS-Server-IP-Adressen bereitgestellt werden) und ob die Anwendungssoftware auf das Netzwerk über Microsofts Winsock oder eine TCP/IP-API zugreift. Im Allgemeinen verwendet Windows einige Kombinationen der folgenden Methoden:

Die erste Methode ist praktisch selbsterklärend. Ein Hostname wird mit anderen Hostnamen verglichen, die kürzlich in IP-Adressen aufgelöst wurden und in einem Cache zwischengespeichert sind. Dies spart Zeit und Netzwerkbandbreite bei der Auflösung von Namen, die häufig eingesetzt werden.

Wenn ein Windows-System mit der IP-Adresse wenigstens eines DNS-Servers konfiguriert wird, kann es DNS benutzen, um voll qualifizierte Domain-Namen wie die im Internet benutzten aufzulösen. Die DNS-Server können entweder Windows NT/2000- oder Unix-Systeme sein. Ausführliche Informationen über das DNS und die Konfiguration von DNS-Servern finden Sie im O'Reilly-Buch DNS und BIND.

In diesem Kapitel konzentrieren wir uns vor allem auf die Namensauflösung mittels WINS, die von Samba mit dem nmbd-Daemon unterstützt wird.

WINS-Clients und Server-Interaktion

Es gibt zwei Arten der Interaktion zwischen einem WINS-Client und einem Server: Der Client sorgt dafür, dass sein eigener NetBIOS-Name1 am Server registriert ist, und fragt den Server ab, um die IP-Adresse zu erhalten, die mit dem NetBIOS-Namen eines anderen Systems korrespondiert.

Wenn ein WINS-Client dem Netzwerk beitritt, registriert er seinen NetBIOS-Namen am WINS-Server, der diesen zusammen mit der IP-Adresse des Clients in der WINS-Datenbank speichert. Dieser Eintrag wird als aktiv gekennzeichnet. Von dem Client wird nun erwartet, dass er seine Registrierung regelmäßig (üblicherweise alle vier Tage) erneuert, um den Server davon in Kenntnis zu setzen, dass er den Namen weiterhin verwendet. Diese Periode wird Time to Live (Lebenszeit) oder TTL genannt. Wenn der Client das Netzwerk verlässt, weil er ordnungsgemäß heruntergefahren wird, kennzeichnet der Server den Eintrag des Clients in seiner Datenbank als released (freigegeben).

Verlässt ein Client das Netzwerk, ohne dem WINS-Server mitzuteilen, dass sein Name freigegeben werden soll, wartet der Server den Zeitpunkt der erwarteten Erneuerung seiner Registrierung durch den Client ab und kennzeichnet den Eintrag danach als freigegeben.

In jedem Fall steht der freigegebene Name anderen Clients zur Verfügung, die dem Netzwerk beitreten. Er kann in der WINS-Datenbank als freigegeben verbleiben und wird schließlich irgendwann gelöscht, wenn er nicht wieder registriert wird.

Weitere Informationen über WINS finden Sie im Microsoft-Whitepaper Windows Internet Naming Service (WINS) Architecture and Capacity Planning. Dieses Dokument kann von der Microsoft-Website unter http://www.microsoft.com heruntergeladen werden.

Die lmhosts-Datei

In Kapitel 3 haben wir Ihnen gezeigt, wie Sie Windows-Systeme so konfigurieren, dass diese die lmhosts-Datei als Alternative zum WINS-Server für die Namensauflösung einsetzen. Samba kann ebenfalls eine lmhosts-Datei benutzen. Standardmäßig ist dies /usr/local/samba/lib/lmhosts. Die lmhosts-Datei von Samba besitzt das gleiche Format wie die Windows-Version. Eine einfache lmhosts-Datei könnte so aussehen:

172.16.1.1    toltec
 
172.16.1.6    maya
 

Die Namen auf der rechten Seite der Einträge sind NetBIOS-Namen. Sie können diesen Ressourcentypen zuordnen und weitere Einträge für Computer hinzufügen:

172.16.1.1    toltec#20
 
172.16.1.1    metran#1b
 
172.16.1.6    maya#20
 

Hier haben wir toltec zum primären Domänen-Controller der Domäne METRAN auf der zweiten Zeile gemacht. Diese Zeile beginnt mit der IP-Adresse von toltec, gefolgt vom Namen metran und dem Ressourcentyp <1B>. Die anderen Zeilen beinhalten Einträge für toltec und maya als Standard-Workstations.

Falls Sie eine lmhosts-Datei an einer anderen als der vorgegebenen Stelle ablegen wollen, müssen Sie dies dem Prozess nmbd beim Start mitteilen. Dazu verwenden Sie die Option -H, gefolgt vom Namen Ihrer lmhosts-Datei:

# nmbd -H /etc/samba/lmhosts -D
 

Konfigurieren der Namensauflösung für die Samba-Suite

Verschiedene Daemons und Dienstprogramme in der Samba-Suite müssen eine Namensauflösung durchführen. Sie können die Reihenfolge, in der die Programme die einzelnen Methoden zur Namensauflösung nacheinander durchprobieren, mit dem Parameter name resolve order festlegen:

[global]
 
	name resolve order = wins lmhosts hosts bcast
 

Der zum Definieren des Parameters verwendete String erkennt bis zu vier Werte:

lmhosts
Verwendet die lokale lmhosts-Datei des Samba-Servers.
hosts
Verwendet die Unix-Standardmethoden zur Namensauflösung, d.h. je nach Konfiguration des lokalen Systems /etc/hosts, DNS, NIS oder eine Kombination aus diesen.
wins
Verwendet den WINS-Server.
bcast
Verwendet die Broadcast-Methode.

Die Reihenfolge, in der diese Elemente angegeben werden, ist die Reihenfolge, in der die Namensauflösung versucht wird. Im Beispiel spricht Samba zuerst seinen WINS-Server für die Namensauflösung an, gefolgt von der Datei lmhosts auf dem lokalen System. Als Nächstes weist der Wert hosts es an, die Unix-Methoden zur Namensauflösung einzusetzen. Das Wort hosts kann irreführend sein. Damit ist nicht nur die Datei /etc/hosts gemeint, sondern auch die Benutzung von DNS oder NIS (wie auf dem Unix-Host konfiguriert). Wenn diese drei nicht funktionieren, führt es schließlich eine Broadcast-Namensauflösung durch.

Samba als WINS-Server einrichten

Sie können Samba als WINS-Server einrichten, indem Sie den Parameter wins support in der Konfigurationsdatei setzen:

[global]
 
	wins support = yes
 

Ob Sie es glauben oder nicht, das ist alles! Die Option wins support macht aus Samba einen WINS-Server. Bei den meisten Installationen ist die Standardkonfiguration von Samba ausreichend.


Denken Sie daran, dass Samba mit Windows-WINS-Servern nicht kommunizieren kann. Wenn Sie Samba als Ihren WINS-Server einsetzen, müssen Sie sicherstellen, dass keine anderen Windows-Systeme oder Samba-Server in Ihrem Netzwerk als WINS-Server konfiguriert sind, da sich ansonsten ihre WINS-Datenbanken nicht synchronisieren lassen und die Namensauflösung inkonsistent wird.
Einen DNS-Proxy konfigurieren

Ein Samba-WINS-Server kann beim DNS-Server des Systems nachfragen, wenn ein angeforderter Host in seiner WINS-Datenbank nicht zu finden ist. Bei einem typischen Linux-System finden Sie die IP-Adresse des DNS-Servers beispielsweise, wenn Sie die Datei /etc/resolv.conf durchsuchen. Darin könnte ein Eintrag dieser Art stehen:

nameserver 127.0.0.1
 
nameserver 172.16.1.192
 

Dies sagt Ihnen, dass das Linux-System einen DNS-Server benutzen soll, der unter der Adresse 172.16.1.192 zu finden ist. (127.0.0.1 ist die localhost-Adresse und kann niemals eine gültige DNS-Server-Adresse sein.)

Nun ist es einfach, die Option dns proxy einzusetzen, um Samba anzuweisen, den DNS-Server zu benutzen:

[global]
 
	dns proxy = yes
 

Dies erlaubt zwar Windows-Clients, voll qualifizierte Internet-Domain-Namen über den Samba-WINS-Server aufzulösen, allerdings funktioniert dies nur für Domain-Namen, die sich an die 15-Zeichen-Beschränkung für NetBIOS-Namen halten. Aus diesem Grund empfehlen wir Ihnen, dns proxy nur als Ergänzung zu Ihrem WINS-Server einzusetzen und nicht als Ersatz für einen DNS-Server.

Samba für die Benutzung eines anderen WINS-Servers einrichten

Sie können Samba so konfigurieren, dass es einen WINS-Server irgendwo im Netzwerk benutzt. Dazu übergeben Sie ihm einfach die IP-Adresse des WINS-Servers. Sie erledigen das mit der globalen Konfigurationsoption wins server, wie hier zu sehen:

[global]
 
	wins server = 172.16.1.1
 

Ist diese Option aktiviert, leitet Samba alle WINS-Anfragen an den Server unter der Adresse 172.16.1.1 weiter. Da die Anfrage an eine einzige Maschine gerichtet ist, müssen Sie sich keine Sorgen über Probleme machen, die dem Versand von Broadcast-Nachrichten innewohnen. Allerdings wird es nicht unbedingt so sein, dass Samba den WINS-Server vor anderen Formen der Namensauflösung verwendet. Die Reihenfolge, in der Samba verschiedene Techniken zur Namensauflösung durchprobiert, wird mit der bereits vorgestellten Konfigurationsoption name resolve order vorgegeben.

Die Parameter wins support und wins server schließen sich gegenseitig aus; Sie können nicht Samba als WINS-Server anbieten und gleichzeitig ein anderes System für diesen Zweck verwenden! Üblicherweise wird ein Samba-Server mittels wins support als WINS-Server eingerichtet, und alle anderen Samba-Server werden mit dem Parameter wins server so konfiguriert, dass sie auf den Samba-WINS-Server verweisen.

Einen WINS-Proxy konfigurieren

Wenn Sie einen Samba-Server in einem Subnetz haben, das keinen WINS-Server besitzt, und der Samba-Server wurde mit einem WINS-Server in einem anderen Subnetz konfiguriert, können Sie den Samba-Server anweisen, alle Anforderungen zur Namensauflösung weiterzuleiten. Dazu dient die Option wins proxy:

[global]
 
	wins server = 172.16.200.12
 
	wins proxy = yes
 

Benutzen Sie diese Option nur, wenn sich der WINS-Server in einem anderen Subnetz befindet. Ansonsten wird die Broadcast-Nachricht den WINS-Server ungeachtet der Proxy-Einstellung erreichen.

Optionen zur Konfiguration der Namensauflösung

Die Samba-Optionen zur Namensauflösung sind Tabelle 7-1 zu entnehmen.

Tabelle 7-1
Optionen zur Namensauflösung 
Option
Parameter
Funktion
Vorgabewert
Geltungsbereich
wins support
Boolescher Wert
Auf yes gesetzt, darf Samba als WINS-Server arbeiten.
no
global
wins server
String (IP-Adresse oder DNS-Name)
Identifiziert einen WINS-Server, den Samba für die Namensregistrierung und -auflösung verwendet.
keiner
global
wins proxy
Boolescher Wert
Erlaubt es Samba, als Proxy für einen WINS-Server in einem anderen Subnetz zu arbeiten.
no
global
wins hook
String
Befehl, der ausgeführt wird, wenn sich die WINS-Datenbank ändert.
keiner
global
dns proxy
Boolescher Wert
Auf yes gesetzt, wird einem Samba-WINS-Server erlaubt, auf das DNS zurückzugreifen, wenn er einen Namen im WINS nicht finden kann.
no
global
name resolve order
String
Die Reihenfolge der Methoden zum Auflösen von NetBIOS-Namen.
lmhosts hosts wins bcast
global
max ttl
numerischer Wert
Maximale TTL in Sekunden für einen angeforderten NetBIOS-Namen.
259200
( 3 Tage)
global
max wins ttl
numerischer Wert
Maximale TTL in Sekunden für NetBIOS-Namen, die Samba als WINS-Server ausgegeben hat.
518400
(6 Tage)
global
min wins ttl
numerischer Wert
Minimale TTL in Sekunden für NetBIOS-Namen, die Samba als WINS-Server ausgegeben hat.
21600
(6 Stunden)
global

wins support

Samba stellt allen Maschinen im Netzwerk den WINS-Namensdienst zur Verfügung, wenn Sie im Abschnitt [global] der Datei smb.conf Folgendes einstellen:

[global]
 
    wins support = yes
 

Der Vorgabewert ist no. Dieser Vorgabewert wird üblicherweise verwendet, um einem Windows NT/2000-Server oder einem anderen Samba-Server zu erlauben, der WINS-Server zu sein. Wenn Sie diese Option aktivieren, denken Sie daran, dass ein Samba-WINS-Server zur gleichen Zeit keine Daten mit anderen WINS-Servern austauschen kann. Sie dürfen also keine anderen WINS-Server im Netzwerk zulassen. Auf yes gesetzt, schließen sich diese Option und der Parameter wins server gegenseitig aus.

wins server

Samba verwendet einen existierenden WINS-Server im Netzwerk, wenn Sie die globale Option wins server in Ihrer Konfigurationsdatei aktivieren. Der Wert dieser Option ist entweder die IP-Adresse oder der DNS-Name (nicht der NetBIOS-Name) des WINS-Servers, zum Beispiel:

[global]
 
    wins server = 172.16.220.110
 

oder:

[global]
 
    wins server = wins.metran.cx
 

Damit diese Option funktioniert, muss die Option wins support auf no (das ist der Vorgabewert) gesetzt werden. Ansonsten gibt Samba einen Fehler aus. Sie können mit dieser Option nur einen WINS-Server festlegen.

wins proxy

Diese Option erlaubt es Samba, als Proxy für einen anderen WINS-Server zu agieren und auf diese Weise die Anfragen zur Namensregistrierung und -auflösung von sich selbst an den echten WINS-Server weiterzuleiten, der sich häufig außerhalb des aktuellen Subnetzes befindet. Der WINS-Server kann durch die Option wins server gekennzeichnet werden. Der Proxy liefert dann die WINS-Antwort zurück an den Client. Sie aktivieren diese Option über folgenden Eintrag im Abschnitt [global]:

[global]
 
    wins proxy = yes
 
wins hook

Diese Option ermöglicht es Ihnen, ein Skript oder ein anderes Programm auszuführen, wenn die WINS-Datenbank geändert wurde. Eine Anwendungsmöglichkeit könnte die Einrichtung eines weiteren Samba-Servers sein, der als Sicherung für einen anderen Samba-WINS-Server dient. Dies erreicht man, indem man mit dem wins hook-Skriptaufruf rsync die WINS-Datenbanken (/usr/local/samba/var/locks/wins.dat) auf den beiden Systemen synchronisiert, wenn ein Eintrag hinzugefügt oder entfernt wird. Das Skript würde auf folgende Weise in der Samba-Konfigurationsdatei angegeben werden:

[global]
 
    wins hook = /usr/local/bin/sync_wins
 
dns proxy

Wenn Sie wollen, dass auf das DNS zurückgegriffen wird, wenn ein NetBIOS-Name im WINS nicht zu finden ist, können Sie die folgende Option setzen:

[global]
 
    dns proxy = yes
 

Dies erlaubt es dem nmbd, das Standard-DNS des Servers abzufragen. Möglicherweise wollen Sie diese Option deaktivieren, falls keine permanente Verbindung zu Ihrem DNS-Server besteht. Diese Option darf nicht an Stelle eines DNS-Servers in Ihrem Netzwerk verwendet werden. Sie ist dazu gedacht, NetBIOS-Namen aufzulösen und keine vollqualifizierten Internet-Domain-Namen.

name resolve order

Die globale Option name resolve order gibt die Reihenfolge der Dienste an, die Samba zur Durchführung der Namensauflösung verwendet. Die vorgegebene Reihenfolge sieht so aus: zuerst die lmhosts-Datei, gefolgt von den Unix-Standardmethoden zur Namensauflösung (eine Kombination aus /etc/hosts, DNS und NIS), anschließend wird ein WINS-Server abgefragt, und schließlich werden Broadcast-Nachrichten verschickt, um die Adresse eines NetBIOS-Namens zu ermitteln. Sie können diese Option außer Kraft setzen, indem Sie beispielsweise Folgendes angeben:

[global]
 
    name resolve order = lmhosts wins hosts bcast
 

Dies sorgt dafür, dass bei der Auflösung zuerst die lmhosts-Datei verwendet wird, gefolgt von der Abfrage eines WINS-Servers und dann der /etc/hosts-Datei. Zum Schluss werden Broadcast-Nachrichten versendet. Sie müssen nicht alle vier Optionen verwenden. Diese Option wird im Abschnitt »Samba als WINS-Server einrichten« weiter oben in diesem Kapitel näher erläutert.

max ttl

Diese Option wird eingesetzt, wenn Samba nicht als WINS-Server arbeitet, sondern ein anderes System im Netzwerk als seinen WINS-Server verwendet. Sie setzt die maximale T T L für NetBIOS-Namen, die vom Samba-Server am WINS-Server registriert sind. Es sollte nicht notwendig sein, diesen Wert zu ändern.

max wins ttl

Diese Option wird verwendet, wenn Samba den WINS-Namensdienst zur Verfügung stellt. Sie setzt die maximale T T L für NetBIOS-Namen, die bei Samba registriert sind. Es sollte nicht notwendig sein, diesen Wert zu ändern.

min wins ttl

Diese Option wird verwendet, wenn Samba den WINS-Namensdienst zur Verfügung stellt. Sie setzt die minimale T T L für NetBIOS-Namen, die bei Samba registriert sind. Es sollte nicht notwendig sein, diesen Wert zu ändern.

Das Durchsuchen

Das Durchsuchen ist von Microsoft entwickelt worden, um den Benutzern beim Auffinden von freigegebenen Ressourcen im Netzwerk zu helfen. In einer Umgebung mit vernetzten Computern, in der Benutzer jederzeit Freigaben hinzufügen oder entfernen können, ist es wichtig, eine automatisierte Methode zu haben, mit der die freigegebenen Ressourcen überwacht werden können und die es Benutzern erlaubt, sie zu »durchsuchen«, um die gewünschten Freigaben zu finden.

Bevor das Durchsuchen in SMB-Netzwerken eingeführt wurde, musste jeder, der eine neue Ressource freigab, diejenigen, für die er sie freigeben wollte, darüber informieren. Die UNC der Freigabe wurde auf relativ primitive Weise weitergegeben, entweder persönlich oder telefonisch oder auch per E-Mail. In großen Organisationen war das natürlich sehr unbequem. Um die Dinge noch etwas komplizierter zu machen, mussten die Benutzer an den Client-Computern die UNC der Freigabe eintippen, um eine Verbindung dazu herzustellen. Die einzige Möglichkeit, das andauernde Eintippen der UNC zu umgehen, bestand darin, ein Netzlaufwerk mit der Freigabe zu verbinden. Bei sehr vielen Freigaben im Netzwerk konnte dies leicht aus dem Ruder laufen.

Ein Windows-Netzwerk durchsuchen

Wir fangen erst mal einfach an und beschreiben zunächst das Durchsuchen eines Netzwerks, das nur Windows-Systeme enthält. Anschließend zeigen wir Ihnen, wie Sie einen Samba-Server hinzufügen.

Im Prinzip funktioniert das Durchsuchen so, dass ein Computer im Netzwerk die Rolle des Hauptsuchdiensts übernimmt (auch als lokaler Hauptsuchdienst, Browse-Master oder Browse-Server bezeichnet) und eine Liste aller Computer im lokalen Subnetz führt, die als SMB-Server agieren. Die Liste der Computer wird Suchliste genannt und enthält alle Samba-Server, Windows NT/2000/XP-Systeme sowie alle Windows 95/98/Me-Systeme, bei denen die Netzwerkkomponente »Datei- und Druckerfreigabe für Microsoft-Netzwerke« installiert ist. Die Suchliste enthält außerdem die Namen aller Arbeitsgruppen und Domänen. Auf dieser Stufe ist das Durchsuchen auf das lokale Subnetz beschränkt, da das Suchprotokoll von Broadcast-Paketen abhängt, die von den Routern üblicherweise nicht in andere Subnetze weitergeleitet werden.

Ein Benutzer eines beliebigen Windows-Systems kann sich die Suchliste anschauen, indem er die Netzwerkumgebung öffnet, wie wir in Kapitel 1 gezeigt haben. Es ist aber auch möglich, den Befehl net view in einer Windows-Eingabeaufforderung einzusetzen:

C:\>net view
 
Server Name            Remark
 

 
-------------------------------------------------------------------------------
 
\\MAYA                 Windows 98
 
\\MIXTEC               Samba 2.2.5
 
\\OLMEC                Windows XP Pro on Pentium/ASUS
 
\\TOLTEC               Samba 2.2.5
 
\\YAQUI                Windows 95 on mixtec/VMware
 
\\ZAPOTEC
 
The command completed successfully.
 

Anschließend kann net view ein Computername als Argument übergeben werden, um einen Server direkt anzusprechen und die Ressourcen auszugeben, die dieser freigibt:

C:\>net view \\maya
 
Shared resources at \\maya
 

 
Windows 98
 

 
Share name   Type         Used as  Comment
 

 
-------------------------------------------------------------------------------
 
D            Disk
 
E            Disk
 
HP           Print
 
The command completed successfully.
 

Am Durchsuchen sind nicht nur der Hauptsuchdienst und seine Clients beteiligt. Es gibt außerdem Sicherungssuchdienste, die Kopien der Suchliste verwalten und auf Client-Anfragen danach antworten. Sicherungssuchdienste sind daher in der Lage, nahtlos die Rolle des Hauptsuchdiensts zu übernehmen, falls dieser ausfällt. Normalerweise liefert der Hauptsuchdienst die Suchliste nicht direkt an die Clients. Stattdessen besteht seine Aufgabe hauptsächlich darin, die Suchliste auf dem neuesten Stand zu halten und regelmäßig die Sicherungssuchdienste zu aktualisieren. Die Clients sollen ihre Kopien der Suchliste von den Sicherungssuchdiensten erhalten. Sie wählen zufällig einen Sicherungssuchdienst aus und helfen somit, die Last gleichmäßig auf sie zu verteilen. Idealerweise beschränkt sich die Interaktion zwischen einem Client und dem Hauptsuchdienst darauf, dass der Client ankündigt, wenn er dem Netzwerk beitritt oder es verlässt (falls es sich um einen Server handelt), und dass er eine Liste der Sicherungssuchdienste anfordert.

Es kann mehr als einen Sicherungssuchdienst geben. Eine Arbeitsgruppe besitzt einen Sicherungssuchdienst, falls zwei oder mehr Computer im Subnetz Windows 95/98/Me oder Windows NT Workstation (oder eine andere Nicht-Server-Version von Windows NT/2000/XP) ausführen. Für jeweils 32 weitere Computer wird ein neuer Sicherungssuchdienst hinzugefügt.

In einer Windows NT-Domäne ist der primäre Domänen-Controller immer der lokale Hauptsuchdienst. Fällt dieser aus, übernimmt ein anderer Windows NT/2000-Server (so es einen gibt) die Rolle des lokalen Hauptsuchdiensts. Andere Versionen von Windows können als Sicherungssuchdienste fungieren, werden allerdings niemals zum Hauptsuchdienst, wenn ein Windows NT/2000-Server zur Verfügung steht.

Zusätzlich zur Funktion als lokaler Hauptsuchdienst kann der primäre Domänen-Controller auch als Domänen-Hauptsuchdienst auftreten, der Subnetze verbindet und die gemeinsame Nutzung von Suchlisten zwischen Haupt- und Sicherungssuchdiensten in getrennten Subnetzen erlaubt. Folgendermaßen wird das Durchsuchen so erweitert, dass es über das lokale Subnetz hinaus funktioniert. Jedes Subnetz funktioniert als separate Sucheinheit. Der Domänen-Hauptsuchdienst synchronisiert die Hauptsuchdienste der einzelnen Subnetze. In einem reinen Windows-Netzwerk funktioniert die Suche über Subnetzgrenzen hinaus nicht, es sei denn, es gibt einen Windows NT/2000-PDC in dem Netzwerk. Samba kann als Domänen-Hauptsuchdienst agieren und diese Aufgabe sogar in einem Arbeitsgruppen-Netzwerk ausführen. Das bedeutet, dass der Windows-PDC für diese Aufgabe nicht erforderlich ist. (Es ist auch möglich, mit dem Parameter remote browse sync einen Samba-Server so zu konfigurieren, dass er seine Suchliste mit einem Samba-Server in einem anderen Subnetz synchronisiert. In diesem Fall muss jeder der beiden Server in seinem Subnetz der lokale Hauptsuchdienst sein.)

Solange ein Computer im Subnetz nicht gerade so konfiguriert ist, dass er nie als Suchdienst arbeitet, wird er als potenzieller Suchdienst betrachtet und kann vom Hauptsuchdienst zum Sicherungssuchdienst gemacht werden oder kann sich selbst als Sicherungssuchdienst bezeichnen und die Rolle annehmen.

Suchdienstwahlen

Wenn im Subnetz kein Hauptsuchdienst läuft, wählen potenzielle Suchdienste unter sich einen neuen Hauptsuchdienst. Dieser Vorgang wird als Wahl bezeichnet. Eine Wahl wird von einem Computer im Subnetz gestartet, wenn dieser feststellt, dass gerade kein Hauptsuchdienst läuft. Wurde ein Hauptsuchdienst ordnungsgemäß heruntergefahren, sendet er eine Broadcast-Nachricht mit einem Datagramm, das eine Wahl anfordert. Dadurch wird durch die verbleibenden Computer eine Suchdienstwahl initiiert. Stürzt der Hauptsuchdienst ab, kann die Wahl von einem Client-Computer gestartet werden, der eine Liste mit Sicherungssuchdiensten vom Hauptsuchdienst anfordert, oder von einem Sicherungssuchdienst, der seine Suchliste vom Hauptsuchdienst aktualisieren lassen will. In jedem Fall erhält das System keine Antwort vom Hauptsuchdienst und löst dadurch eine Suchdienstwahl aus.

Suchdienstwahlen werden in mehreren Runden des Selbstausschlusses entschieden. In jeder Runde schicken potenzielle Suchdienste per Broadcast Datagramme zur Wahlanforderung, um andere potenzielle Suchdienste davon in Kenntnis zu setzen, dass eine Suchdienstwahl stattfindet. Besitzt der Empfänger eine höhere Qualifikation, sollte er ebenfalls eine Bewerbung schicken. Wenn ein potenzieller Suchdienst ein Wahlanforderungsdatagramm von einem höher qualifizierten Gegenspieler empfängt, schließt er sich selbst von der Wahl zum Hauptsuchdienst aus. Ansonsten antwortet er mit seinem eigenen Wahlanforderungsdatagramm. Nach einigen Runden ist nur noch ein potenzieller Suchdienst an der Wahl beteiligt. Nach vier weiteren Runden, in denen ein Wahlanforderungsdatagramm ausgesendet und keine Antwort empfangen wurde, wird er zum Hauptsuchdienst und verschickt ein Broadcast-Datagramm, in dem er sich selbst als lokaler Hauptsuchdienst für dieses Subnetz bekannt macht. Anschließend weist er bei Bedarf den Nächstplatzierten in der Suchdienstwahl Aufgaben als Sicherungssuchdienste zu.

Zu den Qualifikationen eines potenziellen Suchdiensts gehört unter anderem Folgendes:

Hat der potenzielle Suchdienst erst kürzlich eine Wahl verloren, disqualifiziert er sich auf der Stelle selbst. Die Version des ausgeführten Wahlprotokolls wird zwar geprüft, allerdings verwenden bisher alle Windows-Systeme (und Samba) das gleiche Wahlprotokoll. Diese Prüfung ist also nicht sehr sinnvoll. Durch die Auswahlkriterien wird festgestellt, welcher Computer zum lokalen Hauptsuchdienst wird. Die Auswahlkriterien bestehen aus zwei Teilen, wie in den Tabellen 7-2 und 7-3 gezeigt wird.

Tabelle 7-2
Betriebssystemwerte in einer Wahl
Betriebssystem
Wert
Windows NT/2000-Server, als PDC betrieben
32
Windows NT/2000/XP, nicht als PDC betrieben
16
Windows 95/98/Me
1
Windows for Workgroups
1

Tabelle 7-3
Werte für die Rolle des Computers bei einer Wahl
Rolle
Wert
Domänen-Hauptsuchdienst
128
WINS-Client
32
Bevorzugter Hauptsuchdienst
8
Laufender Hauptsuchdienst
4
Aktueller Sicherungssuchdienst
2
Sicherungssuchdienst
1

Zuerst wird der Betriebssystemtyp verglichen. Das System mit dem höchsten Wert gewinnt. Die Werte wurden gewählt, um den primären Domänen-Controller - falls es einen gibt - zu veranlassen, zum lokalen Hauptsuchdienst zu werden. Ansonsten sticht ein Windows NT/2000/XP-System ein Windows for Workgroups- oder Windows 95/98/Me-System aus.

Ergibt der Vergleich der Betriebssystemtypen einen Gleichstand, wird die Rolle des Computers verglichen. Ein Computer kann mehr als einen der Werte aus Tabelle 7-3 besitzen. In diesem Fall werden die Werte addiert.

Ein Domänen-Hauptsuchdienst hat einen Rollenwert von 128, um die Wahl so stark zu seinen Gunsten zu beeinflussen, dass er in seinem eigenen Subnetz zum lokalen Hauptsuchdienst wird. Zwar würde der primäre Domänen-Controller (der immer der Domänen-Hauptsuchdienst ist) die Suchdienstwahl bereits auf der Grundlage seines Betriebssystemtyps gewinnen, allerdings gibt es manchmal keinen primären Domänen-Controller im Netzwerk, und der Domänen-Hauptsuchdienst könnte ansonsten nicht von den anderen potenziellen Suchdiensten unterschieden werden.

Systeme, die einen WINS-Server für die Namensauflösung verwenden, werden mit einem Rollenwert von 32 viel stärker gewichtet als andere, die die Broadcast-Namensauflösung nutzen.

Ein bevorzugter Hauptsuchdienst ist ein Computer, der manuell von einem Systemadministrator ausgewählt und konfiguriert wurde. Wenn ein bevorzugter Hauptsuchdienst startet, erzwingt er eine Suchdienstwahl, selbst wenn ein existierender Hauptsuchdienst noch aktiv ist. Ein bevorzugter Hauptsuchdienst besitzt einen Rollenwert von 8, während der existierende Hauptsuchdienst den Rollenwert 4 hat.

Ein Sicherungssuchdienst, der kürzlich Hauptsuchdienst war und immer noch eine aktuelle Suchliste besitzt, erhält den Rollenwert 2. Ein potenzieller Suchdienst, der als Sicherungssuchdienst betrieben wurde, bekommt den Wert 1.

Ergeben die Vergleiche des Betriebssystemtyps und der Rolle einen Gleichstand, gewinnt der Computer, der am längsten läuft. Im unwahrscheinlichen Fall, dass zwei Computer genau gleich lang laufen, gewinnt der Computer, dessen NetBIOS-Name bei der alphabetischen Sortierung weiter vorn steht.

Sie können feststellen, ob eine Maschine ein lokaler Hauptsuchdienst ist, indem Sie den Windows-Befehl nbtstat benutzen. Setzen Sie den NetBIOS-Namen der Maschine, die Sie prüfen wollen, hinter die Option -a:

C:\>nbtstat -a toltec
 

 
Local Area Connection:
 
Node IpAddress: [172.16.1.4] Scope Id: []
 

 
           NetBIOS Remote Machine Name Table
 

 
       Name               Type         Status
 
    ---------------------------------------------
 
    TOLTEC         <00>  UNIQUE      Registered
 
    TOLTEC         <03>  UNIQUE      Registered
 
    TOLTEC         <20>  UNIQUE      Registered
 
    .._  _MSBROWSE_ _.<01>    GROUP       Registered
 
    METRAN         <00>  GROUP       Registered
 
    METRAN         <1B>  UNIQUE      Registered
 
    METRAN         <1C>  GROUP       Registered
 
    METRAN         <1D>  UNIQUE      Registered
 
    METRAN         <1E>  GROUP       Registered
 

 
    MAC Address = 00-00-00-00-00-00
 

Der Ressourceneintrag, nach dem Sie suchen, lautet .._   _MSBROWSE_   _.<01>. Dieser gibt an, dass der Server momentan als lokaler Hauptsuchdienst für das aktuelle Subnetz arbeitet. Ist die Maschine ein Samba-Server, können Sie in der Samba-Protokolldatei des nmbd nach einem solchen Eintrag suchen:

nmbd/nmbd_become_lmb.c:become_local_master_stage2(406)
 
*****
 
Samba name server TOLTEC is now a local master browser for
 
workgroup METRAN on subnet 172.16.1.0
 

Oder Sie verwenden auf einem beliebigen Samba-Server den Befehl nmblookup mit der Option -M und dem Arbeitsgruppen- oder Domänen-Namen, um die IP-Adresse des lokalen Hauptsuchdiensts zu ermitteln:

$ nmblookup -M metran
 
querying metran on 172.16.1.255
 
172.16.1.1 metran<1d> 
 

Server-Ankündigungen

Wenn die Wahl des Hauptsuchdiensts entschieden ist, machen die Server im Netzwerk sich selbst dem Netzwerk bekannt, damit der Hauptsuchdienst und die Sicherungssuchdienste ihre Suchlisten aufbauen können. Zuerst finden die Server-Ankündigungen einmal pro Minute statt, der Abstand wird dann schrittweise auf 12 Minuten erhöht. Wenn ein Server ordnungsgemäß heruntergefahren wird, sendet er die Mitteilung, dass er offline geht, um es dem Hauptsuchdienst und den Sicherungssuchdiensten zu erlauben, ihn von der Suchliste zu entfernen. Geht ein Server jedoch offline, weil er abstürzt oder ein anderer Fehler auftritt, bemerkt der Hauptsuchdienst sein Verschwinden nur, weil er keine Server-Ankündigungen mehr empfängt. Der Hauptsuchdienst wartet drei Ankündigungsperioden des Servers ab, bevor er entscheidet, dass dieser Server offline ist. Das heißt, dieser Vorgang kann bis zu 36 Minuten dauern. Da die Sicherungssuchdienste ihre Suchlisten beim Hauptsuchdienst nur einmal in 15 Minuten aktualisieren, kann es bis zu 51 Minuten dauern, bis die Clients über einen ausgefallenen Server informiert worden sind.

Ausführlichere Informationen über die Suchprotokolle von Microsoft finden Sie in den Microsoft-Dokumenten Browsing and Windows 95 Networking und CIFS/E Browser Protocol. Sie finden diese Dokumente, indem Sie nach den Titeln auf der Microsoft-Website unter http://www.microsoft.com suchen.

Nähere Informationen über die Konfiguration von Samba für das Durchsuchen finden Sie in den Dateien BROWSING.txt und BROWSING-Config.txt im Verzeichnis docs/textdocs der Samba-Distribution.

Samba für das Durchsuchen konfigurieren

Samba bietet volle Unterstützung für das Durchsuchen und kann als Hauptsuchdienst, als Sicherungssuchdienst, als Domänen-Hauptsuchdienst, als potenzieller Suchdienst oder als einfacher Server, der nicht an Suchdienstwahlen teilnimmt, auftreten. Falls Sie sicherstellen wollen, dass Ihr Samba-Server niemals zum Haupt- oder Sicherungssuchdienst wird, setzen Sie einfach Folgendes:

[global]
 
	local master = no
 

Normalerweise werden Sie wollen, dass Samba als lokaler Hauptsuchdienst oder wenigstens als Sicherungssuchdienst zur Verfügung steht. Im einfachsten Fall müssen Sie überhaupt nichts tun, da Samba per Voreinstellung an Suchdienstwahlen teilnimmt. Sein Betriebssystemwert von 20 schlägt dabei jedes Windows-System, das nicht wenigstens ein primärer Domänen-Controller mit Windows NT/2000 ist (siehe Tabelle 7-2). Der Betriebssystemwert, den Samba selbst bei Suchdienstwahlen bekannt gibt, kann mit dem Parameter os level eingestellt werden:

[global]
 
	os level = 33
 

Der eben gezeigte Wert erlaubt es Samba, sogar einen primären Domänen-Controller mit Windows 2000 Advanced Server auszustechen. Wie wir jedoch im nächsten Abschnitt zeigen, empfiehlt es sich nicht, Samba auf diese Weise zum Sieg zu zwingen.

Falls Sie ein Windows XP Professional-System zum Hauptsuchdienst machen wollen, müssten Sie den Samba-Wert verringern:

[global]
 
	os level = 8
 

Der Maximalwert für os level ist 255, da dies als vorzeichenloser 8-Bit-Integer-Wert behandelt wird. Angenommen, Sie wollten absolut sichergehen, dass Ihr Samba-Server für immer zum lokalen Hauptsuchdienst wird, müssten Sie Folgendes einstellen:

[global]
 
	local master = yes
 
	os level = 255
 
	preferred master = yes
 

Der zusätzliche Parameter preferred master veranlasst Samba, sofort nach dem Start eine Suchdienstwahl zu beginnen. Der Wert des Parameters os level von 255 erlaubt es Samba, jedes andere System im Netzwerk zu schlagen. Dies schließt andere Samba-Server ein, vorausgesetzt, diese sind richtig konfiguriert! Verwendet ein anderer Server eine ähnliche Konfigurationsdatei (mit os level = 255 und preferred master = yes), kämpfen diese beiden um die Rolle des Hauptsuchdiensts. Der Gewinn der Wahl hängt in diesem Fall von so einfachen Kriterien wie der Laufzeit oder der aktuellen Rolle des Systems ab. Um dies zu verhindern, sollten andere Samba-Server einen niedrigeren os level-Wert haben und nicht dazu konfiguriert werden, der bevorzugte Hauptsuchdienst zu sein.

Samba als Domänen-Hauptsuchdienst

Wir erwähnten bereits, dass ein System die Rolle des Domänen-Hauptsuchdiensts übernehmen muss, damit eine Windows-Arbeitsgruppe oder -Domäne sich über mehrere Subnetze erstrecken kann. Der Domänen-Hauptsuchdienst macht die Suchlisten in allen Subnetzen der Arbeitsgruppe bekannt. Das funktioniert, weil alle lokalen Hauptsuchdienste ihre Suchlisten regelmäßig mit dem Domänen-Hauptsuchdienst synchronisieren. Während dieser Synchronisierung übergibt der lokale Hauptsuchdienst die Namen aller Server, die der Domänen-Hauptsuchdienst nicht in seiner Suchliste hat und umgekehrt. Schließlich besitzt jeder lokale Hauptsuchdienst die Suchliste für die gesamte Domäne.

Es gibt keine Wahl zur Festlegung, welche Maschine die Rolle des Domänen-Hauptsuchdiensts übernimmt. Stattdessen muss der Administrator dies von Hand einstellen. Auf Grund des Microsoft-Designs jedoch registrieren sich der Domänen-Hauptsuchdienst und der PDC mit dem Ressourcentyp <1B>, die Rollen - und die Maschinen - sind also untrennbar.

Wenn Sie in dem Netzwerk einen Windows NT-Server als PDC einsetzen, empfehlen wir Ihnen, darauf zu verzichten, Samba zum Domänen-Hauptsuchdienst zu machen. Das Gleiche gilt umgekehrt: Wenn Samba die Pflichten eines PDC übernimmt, sollten Sie es auch zum Domänen-Hauptsuchdienst machen. Es ist zwar möglich, die Rollen bei Samba aufzuteilen, allerdings ist das keine gute Idee. Wenn Sie zwei unterschiedliche Maschinen für die Aufgaben des PDC und des Domänen-Hauptsuchdiensts einsetzen, können in einer Windows-Arbeitsgruppe willkürlich Fehler auftreten.

Mit den folgenden Optionen kann Samba die Rolle des Domänen-Hauptsuchdiensts für alle Subnetze in der Arbeitsgruppe übernehmen:

[global]
 
	domain master = yes
 
	preferred master = yes
 
	local master = yes
 
	os level = 255
 

Die letzten drei Parameter stellen sicher, dass der Server auch der lokale Hauptsuchdienst ist. Das ist wichtig, damit er richtig als Domänen-Hauptsuchdienst fungieren kann. Sie können überprüfen, ob eine Samba-Maschine tatsächlich der Domänen-Hauptsuchdienst ist, indem Sie in der Protokolldatei des nmbd nachsehen:

nmbd/nmbd_become_dmb.c:become_domain_master_stage2(118)
 
*****
 
Samba name server TOLTEC is now a domain master browser for
 
workgroup METRAN on subnet 172.16.1.0
 

Oder Sie verwenden den Befehl nmblookup, der in der Samba-Distribution enthalten ist, um einen eindeutigen Ressourcentyp <1B> in der Arbeitsgruppe abzufragen:

# nmblookup METRAN#1B
 
Sending queries to 172.16.1.255
 
172.16.1.1 METRAN<1b>
 
Mehrere Subnetze

Sie müssen drei Regeln beherzigen, wenn Sie eine Arbeitsgruppe/Domäne schaffen, die mehr als ein Subnetz umfasst:

Samba besitzt einige zusätzliche Funktionen, die Sie einsetzen können, falls Sie keinen Domänen-Hauptsuchdienst in Ihrem Netzwerk haben oder wünschen und trotzdem über Subnetzgrenzen hinaus suchen wollen. Betrachten Sie die Subnetze in Abbildung 7-1.
Abbildung 7-1
Mehrere Subnetze mit Samba-Servern

Erstens, ein Samba-Server, der lokaler Hauptsuchdienst ist, kann die Konfigurationsoption remote announce verwenden, um sicherzustellen, dass den Computern in den verschiedenen Subnetzen Broadcast-Ankündigungen über den Server geschickt werden. Dies hat zur Folge, dass der Samba-Server in den Suchlisten der fremden Subnetze auftaucht. Um das zu erreichen, müssen die gerichteten Broadcast-Nachrichten jedoch den lokalen Hauptsuchdienst im anderen Subnetz erreichen. Bedenken Sie, dass viele Router standardmäßig keine Weiterleitung von gerichteten Broadcasts erlauben; Sie müssten diese Einstellung des Routers ändern, damit die gerichteten Broadcasts durch den Router in das andere Subnetz gelangen.

Mit der Option remote announce listen Sie die Subnetze und die Arbeitsgruppe auf, die die Broadcast-Nachricht empfangen sollen. Um beispielsweise sicherzustellen, dass den Maschinen in den Subnetzen 172.16.2 und 172.16.3 sowie in der Arbeitsgruppe METRAN Broadcast-Informationen von Ihrem Samba-Server geschickt werden, könnten Sie Folgendes festlegen:

[global]
 
	remote announce = 172.16.2.255/METRAN \
 
		172.16.3.255/METRAN
 

Anstatt eine Broadcast-Adresse des entfernten Subnetzes anzugeben, dürfen Sie die genaue Adresse festlegen, an die Broadcasts geschickt werden sollen, falls der lokale Hauptsuchdienst des entfernten Subnetzes garantiert immer die gleiche IP-Adresse besitzt.

Ein lokaler Samba-Hauptsuchdienst kann seine Suchliste direkt mit einem oder mehreren Samba-Servern synchronisieren, die jeweils als lokale Hauptsuchdienste in anderen Subnetzen agieren. Dies ist eine andere Möglichkeit, das Suchen über Subnetzgrenzen hinweg zu implementieren. Nehmen Sie zum Beispiel an, dass Samba als lokaler Hauptsuchdienst konfiguriert ist und lokale Samba-Hauptsuchdienste unter 172.16.2.130 und 172.16.3.120 existieren. Sie können die Option remote browse sync einsetzen, um direkt mit den Samba-Servern zu synchronisieren:

[global]
 
	remote browse sync = 172.16.2.130 172.16.3.120
 

Damit dies funktioniert, müssen auch die anderen Samba-Maschinen lokale Hauptsuchdienste sein. Sie können mit dieser Option ebenfalls gerichtete Broadcasts einsetzen, falls Sie die speziellen IP-Adressen der lokalen Hauptsuchdienste nicht kennen.

Eine Freigabe unsichtbar machen

Mit der Option browsable können Sie festlegen, ob eine Freigabe in der Suchliste auftaucht. Diese Boolesche Option verhindert, dass eine Freigabe in der Netzwerkumgebung zu sehen ist. Um beispielsweise dafür zu sorgen, dass die Freigabe [data] unsichtbar ist, könnten Sie Folgendes schreiben:
[data]
 
	path = /export/samba/userdata
 
	browsable = no
 

Mit einer normalen Verzeichnisfreigabe werden Sie zwar vermutlich nicht so umgehen wollen, die Option browsable ist jedoch in solchen Fällen ganz nützlich, in denen Sie eine Freigabe erzeugen, deren Inhalt andere nicht sehen sollen, wie etwa bei der Freigabe [netlogon] zum Ablegen von Anmeldeskripten für die Windows-Domänensteuerung (siehe Kapitel 4 für weitere Informationen über Anmeldeskripten).

Ein anderes Beispiel ist die Freigabe [homes]. Diese Freigabe wird häufig als nicht durchsuchbar gekennzeichnet, so dass eine Freigabe mit dem Namen [homes] nicht auftaucht, wenn die Ressourcen ihrer Maschine durchsucht werden. Meldet sich jedoch der Benutzer alice an und betrachtet die Freigaben der Maschine, erscheint dort eine Freigabe mit der Bezeichnung [alice].

Was jedoch, wenn wir sicherstellen wollen, dass die Freigabe von alice für alle zu sehen ist, bevor sie sich anmeldet? Dies erreichen Sie mit der globalen Option auto services. Diese Option lädt Freigaben in die Suchliste, um sicherzustellen, dass sie immer sichtbar sind:

[global]
 
	auto services = alice
 

Suchoptionen

Tabelle 7-4 zeigt Optionen, die definieren, wie Samba Suchaufgaben erledigt.

Tabelle 7-4
Optionen zur Konfiguration des Durchsuchens 
Option
Parameter
Funktion
Vorgabewert
Geltungsbereich
announce as
String
Betriebssystem, als das Samba sich bekannt macht.
N T Server
global
announce version
numerischer Wert
Version des Betriebssystems, als das Samba sich bekannt macht.
4.5
global
browsable (browseable)
Boolescher Wert
Erlaubt, dass die Freigabe in der Liste der Maschinenressourcen angezeigt wird.
yes
Freigabe
browse list
Boolescher Wert
Wenn yes, wird Samba erlaubt, eine Suchliste auf diesem Server bereitzustellen.
yes
global
auto services (preload)
String
(Freigabeliste)
Liste der Freigaben, die immer in der Suchliste auftauchen.
keiner
global
default service (default)
String
(Freigabename)
Name einer Freigabe (Dienst), die angegeben wird, wenn der Client eine Freigabe anfordert, die nicht in smb.conf aufgeführt ist.
keiner
global
local master
Boolescher Wert
Wenn yes, wird Samba erlaubt, an Suchdienstwahlen teilzunehmen.
yes
global
lm announce
yes, no
oder auto
Aktiviert oder deaktiviert LAN Manager-artige Host-Ankündigungen.
auto
global
lm interval
numerischer Wert
Häufigkeit in Sekunden, mit der LAN Manager-Ankündigungen durchgeführt werden, falls diese aktiviert worden sind.
60
global
preferred master (prefered master)
Boolescher Wert
Wenn yes, darf Samba das Bevorzugter-Hauptsuchdienst-Bit verwenden, um zu versuchen, zum lokalen Hauptsuchdienst zu werden.
no
global
domain master
Boolescher Wert
Wenn yes, darf Samba zum Domänen-Hauptsuchdienst für die Arbeitsgruppe oder Domäne werden.
no
global
os level
numerischer Wert
Betriebssystemwert von Samba bei einer Wahl zum lokalen Hauptsuchdienst.
0
global
remote browse sync
String (Liste von IP-Adressen)
Samba-Server, mit denen Suchlisten synchronisiert werden.
keiner
global
remote announce
String (IP-Adresse/Arbeitsgruppe-Paare)
Subnetze und Arbeitsgruppen, an die gerichtete Broadcast-Pakete geschickt werden, damit Samba in deren Suchlisten auftauchen kann.
keiner
global

announce as

Diese globale Konfigurationsoption gibt den Typ des Betriebssystems an, den Samba anderen Maschinen im Netzwerk bekannt macht. Der Vorgabewert für diese Option lautet N T Server, wodurch Samba sich als das Betriebssystem Windows NT Server ausgeben kann. Andere mögliche Werte sind NT, NT Workstation, Win95 und W f W für Windows for Workgroups. Sie können den Vorgabewert folgendermaßen außer Kraft setzen:

[global]
 
	announce as = Win95
 

Wir empfehlen Ihnen, den Vorgabewert dieser Konfigurationsoption nicht zu ändern.

announce version

Diese globale Option wird häufig zusammen mit der Konfigurationsoption announce as verwendet. Sie gibt die Version des Betriebssystems an, das Samba den anderen Maschinen im Netzwerk bekannt macht. Der Vorgabewert dieser Option lautet 4.5, wodurch Samba über Windows NT Version 4.0, aber unter Windows 2000 landet. Sie können mit einem solchen globalen Eintrag einen neuen Wert festlegen:

[global]
 
	announce version = 4.3
 

Wir empfehlen Ihnen, den Vorgabewert dieser Konfigurationsoption nicht zu ändern.

browsable

Die Option browsable (auch browseable geschrieben) zeigt an, ob die angegebene Freigabe in der Liste der verfügbaren Ressourcen des Systems, auf dem sie sich befindet, auftauchen soll. Diese Option ist standardmäßig immer auf yes gesetzt. Falls Sie verhindern wollen, dass die Freigabe im Suchfenster eines Clients zu sehen ist, können Sie diese Option auf no setzen.

Beachten Sie, dass dies nicht den Zugriff auf die Freigabe mit anderen Methoden verhindert, etwa durch die Angabe einer UNC (z.B. \\server\buchhaltung) im Windows-Explorer. Die Freigabe wird lediglich beim Durchsuchen der Ressourcen des Systems nicht mit aufgeführt.

browse list

Es sollte eigentlich niemals notwendig sein, den Vorgabewert yes dieses Parameters zu ändern. Arbeitet Ihr Samba-Server als lokaler Hauptsuchdienst (d.h., hat er die Suchdienstwahl gewonnen), können Sie Samba mit Hilfe der globalen Option browse list anweisen, seine Suchlisten allen Clients zur Verfügung zu stellen oder sie zurückzuhalten. Standardmäßig liefert Samba immer eine Suchliste. Sie können diese Informationen zurückhalten, indem Sie Folgendes festlegen:

[global]
 
	browse list = no
 

Wenn Sie die Suchliste deaktivieren, können Clients die Namen anderer Maschinen, deren Dienste und andere Domänen, die gerade im Netzwerk verfügbar sind, nicht suchen. Beachten Sie, dass dies nicht den Zugriff auf einen bestimmten Rechner verhindert; wenn jemand einen gültigen Maschinennamen oder eine gültige Adresse sowie eine Freigabe auf dieser Maschine kennt, kann er sich immer noch dort anmelden, indem er den Windows-Befehl net use verwendet oder im Windows-Explorer einen Laufwerkbuchstaben damit verbindet. Es werden lediglich den Clients, die eine Suchliste anfordern, Informationen vorenthalten.

auto services

Die globale Option auto services, auch als preload  bezeichnet, stellt sicher, dass die angegebenen Freigaben immer in der Suchliste zu sehen sind. Ein gebräuchlicher Anwendungsfall für diese Option ist die Bekanntgabe bestimmter Benutzer oder Drucker, die durch die Freigaben [homes] oder [printers] erzeugt wurden, anders aber nicht suchbar gemacht werden können.

Diese Option funktioniert am besten mit Plattenfreigaben. Wenn Sie jeden Ihrer Systemdrucker (d.h. diejenigen Drucker, die in der printcap-Datei aufgeführt sind) zwingen wollen, in der Suchliste aufzutauchen, empfehlen wir Ihnen, stattdessen die Option load printers zu verwenden.

Freigaben, die mit der Option auto services aufgeführt werden, werden nicht angezeigt, wenn die Option browse list auf no gesetzt ist.

default service

Die globale Option default service (manchmal auch als default bezeichnet) benennt eine Freigabe, die quasi als Ersatz verwendet wird. Der Wert wird auf einen existierenden Freigabenamen ohne die einschließenden eckigen Klammern gesetzt. Fordert ein Client eine nicht-existierende Platten- oder Druckerfreigabe an, versucht Samba, den Benutzer stattdessen mit der durch diese Option bezeichneten Freigabe zu verbinden. Die Option wird folgendermaßen festgelegt:

[global]
 
	default service = helpshare
 

Wenn Samba den angeforderten, nicht-existierenden Dienst an den durch default service festgelegten Dienst weiterleitet, übernimmt die Option %S den Wert des angeforderten Diensts, wobei alle Unterstriche ( _ ) im angeforderten Dienst durch Schrägstriche (/) ersetzt werden.

local master

Diese globale Option gibt an, ob Samba beim Start versucht, lokaler Hauptsuchdienst des Subnetzes zu werden. Ist die Option auf yes gesetzt, nimmt Samba an den Wahlen teil. Das Setzen dieser Option ist jedoch noch keine Garantie für den Sieg. (Andere Parameter, wie preferred master und os level, helfen Samba, die Suchdienstwahlen zu gewinnen.) Ist diese Option auf no gesetzt, verliert Samba alle Suchdienstwahlen, unabhängig davon, welche Werte durch die anderen Konfigurationsoptionen vorgegeben wurden. Der Standardwert ist yes.

lm announce

Die globale Option lm announce teilt Sambas nmbd mit, ob im Namen des Servers LAN Manager-Host-Ankündigungen verschickt werden sollen. Diese Host-Ankündigungen werden von älteren Clients erwartet, wie etwa dem IBM-Betriebssystem OS/2. Die Ankündigung erlaubt das Aufnehmen des Servers in die Suchlisten des Clients. Ist die Option aktiviert, macht Samba sich selbst wiederholt in dem durch die Option lm interval angegebenen Intervall bekannt.

Sie können die Option folgendermaßen angeben:

[global]
 
	lm announce = yes
 

Diese Konfigurationsoption erwartet die normalen Booleschen Werte yes und no, die die LAN Manager-Ankündigungen entsprechend aktivieren bzw. deaktivieren. Darüber hinaus veranlasst eine dritte Option namens auto den nmbd, passiv auf LAN Manager-Ankündigungen zu warten, selbst zunächst aber keine zu verschicken. Werden für eine andere Maschine im Netzwerk LAN Manager-Ankündigungen entdeckt, beginnt nmbd damit, seine eigenen LAN Manager-Ankündigungen zu verschicken, um sicherzugehen, dass er sichtbar ist. Der Vorgabewert ist auto. Vermutlich müssen Sie diesen Wert gar nicht ändern.

lm interval

Diese Option, die zusammen mit lm announce verwendet wird, gibt in Sekunden an, wie lange nmbd wartet, bevor er wiederholt LAN Manager-artige Ankündigungen als Broadcast zu verschicken. Damit diese Option funktioniert, müssen LAN Manager-Ankündigungen aktiviert sein. Der Vorgabewert sind 60 Sekunden. Setzen Sie diesen Wert auf 0, sendet Samba unabhängig vom Wert der Option lm announce keine LAN Manager-Host-Ankündigungen. Folgendermaßen können Sie den Wert dieser Option zurücksetzen:

[global]
 
	lm interval = 90
 
preferred master

Die Option preferred master veranlasst, dass Samba das Bevorzugter-Hauptsuchdienst-Bit setzt, wenn es an einer Wahl teilnimmt. Dadurch erhält der Server einen höheren Status in der Arbeitsgruppe als andere Maschinen mit dem gleichen Betriebssystemwert. Konfigurieren Sie Ihre Samba-Maschine so, dass sie lokaler Hauptsuchdienst wird, sollten Sie den folgenden Wert einstellen:

[global]
 
	preferred master = yes
 

Anderenfalls lassen Sie den Vorgabewert no stehen. Ist Samba so konfiguriert, dass es ein bevorzugter Hauptsuchdienst ist, erzwingt es nach dem Start sofort eine Wahl.

domain master

Wenn Samba der primäre Domänen-Controller Ihrer Arbeitsgruppe oder NT-Domäne ist, sollte es auch zum Domänen-Hauptsuchdienst gemacht werden. Beim Domänen-Hauptsuchdienst handelt es sich um eine besondere Maschine, die den NetBIOS-Ressourcentyp <1B> trägt und dazu verwendet wird, die Suchlisten zwischen den einzelnen lokalen Hauptsuchdiensten in den einzelnen Subnetzen innerhalb der Domäne bekannt zu machen. Damit Samba zum Domänen-Hauptsuchdienst wird, geben Sie Folgendes im Abschnitt [global] der Datei smb.conf an:

[global]
 
	domain master = yes
 

Haben Sie in Ihrem Netzwerk einen Windows NT-Server als primären Domänen-Controller (PDC), empfehlen wir Ihnen, Samba nicht zum Domänen-Hauptsuchdienst zu machen. Das gilt auch umgekehrt: Wenn Samba die Aufgaben eines PDC übernimmt, sollten Sie es auch zum Domänen-Hauptsuchdienst machen. Das Aufteilen der Aufgaben des PDC und des Domänen-Hauptsuchdiensts auf zwei verschiedene Rechner kann unvorhersehbare Fehler im Netzwerk zur Folge haben.

os level

Die globale Option os level definiert den Betriebssystemwert, den Samba während einer Suchdienstwahl verwendet. Wenn Sie wollen, dass Samba eine Wahl gewinnt und zum Hauptsuchdienst wird, setzen Sie die Option os level höher als die anderen Systeme im Subnetz. Die Werte sind in Tabelle 7-2 zu sehen. Der Vorgabewert ist 20, was bedeutet, dass Samba alle Windows-Versionen aussticht, mit Ausnahme von Windows NT/2000, falls dies als PDC arbeitet. Wenn Samba alle Wahlen gewinnen soll, können Sie seinen Betriebssystemwert folgendermaßen einstellen:

[global]
 
	os level = 255
 
remote browse sync

Die globale Option remote browse sync gibt an, dass Samba seine Suchlisten mit den lokalen Hauptsuchdiensten in anderen Subnetzen synchronisieren soll. Die Synchronisierung kann jedoch nur mit anderen Samba-Servern erfolgen und nicht mit Windows-Computern. Wenn Ihr Samba-Server zum Beispiel im Subnetz 172.16.235 ein Hauptsuchdienst wäre und in anderen Subnetzen unter 172.16.234.92 und 172.16.236.2 lokale Samba-Hauptsuchdienste existieren würden, müssten Sie Folgendes festlegen:

[global]
 
	remote browse sync = 172.16.234.92 172.16.236.2 
 

Der Samba-Server würde direkt die anderen Maschinen auf der Adressliste kontaktieren und die Suchlisten synchronisieren. Sie können auch sagen:

[global]
 
	remote browse sync = 172.16.234.255 172.16.236.255
 

Dies zwingt Samba, Anfragen per Broadcast zu verschicken, um die IP-Adressen der lokalen Hauptsuchdienste in den einzelnen Subnetzen zu ermitteln, mit denen es dann wiederum die Suchlisten synchronisieren würde. Das funktioniert allerdings nur, wenn Ihr Router gerichtete Broadcast-Anfragen, die auf 255 enden, nicht blockiert.

remote announce

Samba-Server sind in der Lage, mit der Option remote announce fremden Subnetzen Suchlisten zur Verfügung zu stellen. Diese werden üblicherweise an den lokalen Hauptsuchdienst des fraglichen fremden Subnetzes geschickt. Falls Sie jedoch die Adresse des lokalen Hauptsuchdiensts nicht kennen, können Sie folgendermaßen vorgehen:

[global]
 
    remote announce = 172.16.234.255/ACCOUNTING \       
 
						172.16.236.255/ACCOUNTING
 

Damit sendet Samba Broadcast-Nachrichten mit Host-Ankündigungen an alle Maschinen in den Subnetzen 172.16.234 und 172.16.236, die hoffentlich den lokalen Hauptsuchdienst des Subnetzes erreichen.

Sie können auch die genauen IP-Adressen angeben, falls diese bekannt sind. Das funktioniert aber nur, wenn diese Systeme garantiert die Rolle des Hauptsuchdiensts in ihren Subnetzen innehaben. Durch Anhängen eines Arbeitsgruppen- oder Domänennamens an die IP-Adresse gibt Samba bekannt, dass es in dieser Arbeitsgruppe oder Domäne liegt. Fehlt diese Angabe, wird die Arbeitsgruppe verwendet, die durch den Parameter workgroup festgelegt wurde.

1Wie wir in Kapitel 1 erläutert haben, kann ein System sich unter mehr als einem NetBIOS-Namen registrieren. Wir verwenden hier den Singular nur deshalb, damit unsere Erklärungen nicht zu verwirrend werden.

TOC PREV NEXT INDEX

Copyright © 2003 by O'Reilly Verlag GmbH & Co.KG