HELIOS EtherShare 2.6 Benutzerhandbuch


8 Das EtherShare-System
8.1 Generelle Bemerkungen
Die EtherShare-Software kann in acht Funktionsmodule unterteilt werden:
Der AppleTalk-Protokollstapel bildet das zentrale Kernstück des EtherShare-Systems. Es stellt elementare Dienste für das AppleTalk-Netzwerk bereit und ist das Rückgrat für die verschiedenen EtherShare-Serverprogramme. Der Schriftenserver ist als ein Teil des Druckservers implementiert - weitere Informationen zu dieser Eigenschaft finden Sie im Abschnitt Schriften einbinden in 11.4 "Der Druckserver im Betrieb".
8.2 Systemkonfiguration
Die zentrale Konfigurationsdatei "$ESDIR/conf/atalk.conf" ist die wichtigste Konfigurationsdatei im EtherShare-System. Sie enthält Konfigurationsparameter für alle EtherShare-Programme, die bei jedem Start auf diese Datei zugreifen, um ihre Konfiguration auszulesen.
Das "install"-Programm erstellt diese Datei automatisch mit vorgegebenen Werten für die Parameter. Diese können mit einem Editor wie vi verändert werden. Wir empfehlen Ihnen jedoch, stattdessen EtherShare Admin und die Option für die Netzwerkkonfiguration des "install"-Programms zu verwenden.
Ein gültiger Eintrag in der Datei "atalk.conf" hat folgende Struktur:
program:parameter {, parameter}
program ist der Name des Programms oder eines bestimmten Platzhalterbereichs (beispielsweise "zones" oder "if") für den die Konfiguration bestimmt ist. parameter definiert unterschiedliche Konfigurationsoptionen, die sich von Programm zu Programm unterscheiden (siehe unten). Beachten Sie bitte, dass alle Parameter für ein Programm in einer einzigen Zeile festgelegt werden können. Um die Darstellung zu verdeutlichen, sollten lange Zeilen aber durch Kommata getrennt und in der nächsten Zeile fortgeführt werden. Optional können Sie diese Zeilen auch mit Leerstellen einrücken, z.B.:
program: parm1,
parm2, parm3
Wiederholen Sie in mehrzeiligen Befehlen nicht den Programmnamen (außer für "papsrv", alle anderen Namen dürfen nur einmal auftreten).
Die Syntax für parameter hat zwei Formen:
parametername=value
parametername
Die erste Form weist einer Parametervariablen einen Wert zu. Dieser kann in Anführungszeichen gesetzt werden (" "), um die Eingabe von Leerzeichen zu ermöglichen. Die zweite Form ist ein so genannter "Schalter". Er wird benutzt, um bestimmte Eigenschaften in einem Programm zu aktivieren oder zu deaktivieren. Darum existiert jeder Schalter normalerweise einmal in der negativen und einmal in der positiven Form. Negative Formen ergeben sich aus der positiven durch den vorangestellten Ausdruck "no". Die negative Form des Schalters "clientmessages" heißt also beispielsweise "noclientmessages" (siehe auch clientmessages in 11.6 "Manuelle Druckerkonfiguration").
Die Konfigurationsdatei kann auch Kommentare enthalten, wobei die jeweilige Zeile mit einem "#"-Zeichen beginnen muss. Diese Möglichkeit kann verwendet werden, um zusätzliche Informationen, beispielsweise erklärende Anmerkungen, einzugeben.
8.3 Der AppleTalk-Protokollstapel
atalkd
Der EtherShare AppleTalk-Protokollstapel ist entweder in einem zuladbaren UNIX-Modul, welches bei Bedarf zum laufenden Bertriebssystem hinzugeladen wird, oder in einem Treiber enthalten, der während der EtherShare Installation in den UNIX-Kernel eingebaut wird.

Hinweis: Unter dem Mac OS X Server gibt es kein "atalkd".
Alle Parameter werden im Konfigurationsfenster Netzwerk eingestellt.

Der AppleTalk-Protokollstapel ist eng mit dem Programm "atalkd" (AppleTalk Daemon) verbunden. Der Protokollstapel und "atalkd" stellen wichtige Basisfunktionen für AppleTalk-Netzwerke bereit. Die EtherShare-Server (Druckserver, Terminalserver, usw.) sind um dieses Basissystem herumgebaut.
Das Programm "atalkd" implementiert permanente
Dienste für das AppleTalk-Netzwerk, die für den Betrieb von EtherShare benötigt werden. Beispielsweise sind alle EtherShare-Server abhängig von den Funktionen dieses Programms, um mit dem Netzwerk kommunizieren zu können. Keiner der Server wird starten, bevor nicht das Programm "atalkd" läuft (Sie erhalten die Fehlermeldung "cannot register-"). Der Host ist normalerweise so konfiguriert, dass das Programm "atalkd" automatisch gestartet wird, wenn das UNIX-Betriebssystem hochfährt.
Das Programm "atalkd" ist auch dafür verantwortlich, dass dem AppleTalk-Netzwerk die Namen aller AppleTalk-Dienste bekannt sind, die auf dem UNIX Host verfügbar sind (d.h. der EtherShare Dateiserver, Druckserver, Administrationsserver, Terminalserver, Mailserver und der Zeitserver).
Wenn Sie ein EtherShare-Servermodul starten, wird der für das Modul gewählte AppleTalk-Name (wie er in der zentralen Konfigurationsdatei "atalk.conf" definiert ist) an das Programm "atalkd" weitergegeben. Das Programm erhält auch eine entsprechende Nachricht vom Server, wenn das Servermodul beendet wurde. Das Programm "atalkd" überprüft immer, dass der gewählte Name in der Netzwerkzone nur einmal vorkommt. Wenn der Name bereits verwendet wird, schaltet es den Server sofort mit der Fehlermeldung "Duplicate name exists already" ab. Dann müssen Sie den Namen in der zentralen Konfigurationsdatei ändern.
Das Programm "atalkd" ist auch für die Pflege der AppleTalk Routing-Tabelle verantwortlich, damit die Kernel-Module zwischen allen aktiven Netzwerkadaptern routen können.
Netzwerk-
Administration
Eine weitere Aufgabe des Programms "atalkd" ist die Verwaltung aller Informationen über angeschlossene AppleTalk-Netzwerke. Bei der Verwendung von AppleTalk werden verschiedene logische Netzwerke in Zonen gruppiert. Das Programm "atalkd" pflegt automatisch eine interne Routing-Tabelle, um Änderungen in der Netzwerkkonfiguration zu protokollieren. Diese Tabelle erlaubt bei Bedarf das Routen von Diensten und Informationen durch unterschiedliche Segmente des Netzwerks.
Änderungen in der Routing-Tabelle werden ebenfalls an das AppleTalk-Protokollmodul weitergeleitet, damit Datenpakete zwischen unterschiedlichen Netzwerksegmenten geroutet werden können.
8.4 Parameter des Programms "atalkd"
Wenn das AppleTalk Daemon-Programm "atalkd" startet, greift es zuerst auf die zentrale Konfigurationsdatei "atalk.conf" zu, um die Konfigurationsdaten auszulesen. Das "install"-Programm richtet diese Datei automatisch mit Vorgabewerten ein. Diese können bei Bedarf verändert werden, indem Sie einen Editor wie beispielsweise vi verwenden. Wir empfehlen Ihnen aber dringend, diese Änderungen stattdessen mit der Netzwerk-Konfigurationsoption des "install"-Programms oder dem Hilfsprogramm "netconf" vorzunehmen.
Die im Folgenden beschriebenen Parameter können für das Programm "atalkd" in der Datei "atalk.conf" definiert werden (beachten Sie, dass der Programmname "atalkd:" der Parameterliste vorangestellt sein muss):
interface
atalkd: interface=ifname:netno:snode:zonename.
Bei Bedarf kann interface hier mit "if" abgekürzt werden. Die Parameter nach dem "="-Zeichen können optional in Anführungszeichen gesetzt werden: "ifname:netno:snode:zonename". Wenn der Parameter zonename Leerzeichen enthält, ist diese Schreibweise obligatorisch.
Für jeden Netzwerkadapter ist ein Eintrag dieser Art notwendig (beispielsweise Ethernet). ifname ist der dem Kernel bekannte Name des Adapters. netno ist die Netzwerknummer im AppleTalk-Netzwerk. Die Netzwerknummer muss als ein Nummernkreis mit einem Bindestrich angegeben werden (z.B. 10-15); dann wird der Adapter automatisch von "atalkd" als Phase II Netzwerk mit diesem Nummernkreis konfiguriert.
snode ist die Netzwerkknoten-Startnummer bei der das Programm "atalkd" im AppleTalk-Netzwerk beginnt nach freien Knoten für den EtherShare-Host zu suchen (Dynamische Netzknoten-Zuteilung). Es ist üblich, dass Server in einem Apple Talk-Netzwerk Knotennummern haben, die größer oder gleich 128 sind (EtherShare beginnt üblicherweise bei 140). zonename ist der Name (oder eine durch Doppelpunkt getrennte Liste von Namen) der AppleTalk Zone(n) für diesen Netzwerkadapter.
Die einfachste Konfiguration der Datei "atalkd" enthält nur einen Netzwerkadaptereintrag in der Parameterliste. Dieser beschreibt den ersten (und hier einzigen) Geräteadapter zwischen dem UNIX-Host und dem AppleTalk-Netzwerk (Hinweis: Alle EtherShare-Server werden in der Zone des ersten "atalkd"-Eintrags registriert). Weitere Informationen finden Sie in A 3.3 "Die Option "Automatische Netzwerkkonfiguration"".
Phase II
Ein typischer "atalkd"-Eintrag mit einer Parameterliste für ein Phase II-Netzwerk mit drei Netzwerkadaptern lautet wie folgt:
atalkd: if="le0:30-35:128:EtherTalk",
if="le1:10-10:128:Zone1",
if="le2:20-20:128:Zone2"
Dem Adapter "le0" wurde der Netzwerk-Nummernkreis 30-35 zugeteilt. Verglichen mit einem veralteten Phase I-Netzwerk erhöht sich in diesem Fall die maximale Anzahl der erlaubten AppleTalk-Geräte im Netzwerk von 254 auf (35-30+1) * 254. Sie dürfen denselben Netzwerk-Nummernkreis nicht für mehrere Netzwerkadapter verwenden (siehe obiges Beispiel).
Die Netzwerkkonfigurationsoption des "install"-Programms legt automatisch Parameterwerte für das Programm "atalkd" in der zentralen Konfigurationsdatei "atalk.conf" an.
Wenn Sie beispielsweise einen "atalkd"-Eintrag wie
nif="le2:20-20:128:Zone2" (Anstelle von if=...)
sehen, dann zeigt dies an, dass die Konfiguration durch das "netconf"-Programm bearbeitet und der betreffende Adapter deaktiviert wurde.
8.5 Hilfsprogramme für den AppleTalk-Protokollstapel
Die folgenden Programme werden bei der EtherShare Installation automatisch in dem Verzeichnis "$ESDIR" angelegt:
start-atalk
"start-atalk" ist ein Shell-Skript, das alle notwendigen Befehle enthält, um das gesamte EtherShare-System zu starten ("atalkd" und alle EtherShare-Server). Genauer betrachtet, startet es alle Server, die in der Datei
"$ESDIR/conf/servers" aufgelistet sind. Während der Installation wird das Skript "start-atalk" in die UNIX-Datei "/etc/rc.local" oder "/etc/inittab" eingefügt, um alle EtherShare-Server automatisch beim Hochfahren von UNIX zu starten (Schreibtisch-, Datei-, Druck-, Mail-, Administrations-, Terminal- und Zeitserver).
Datei
"servers"
Die Datei "$ESDIR/conf/servers" enthält eine Liste aller EtherShare-Servermodule, die beim Start von EtherShare ebenfalls gestartet werden sollen. Auf diese Datei wird in dem Skript "start-atalk" verwiesen, wie oben beschrieben ist.
desksrv
afpsrv
opisrv (optional)
papsrv
mailsrv
admsrv
termsrv
timesrv
lpd (optional)
stop-atalk
"stop-atalk" ist ein Shell-Skript, welches das gesamte EtherShare-System mit einer Verzögerung von fünf Minuten beendet ("atalkd" und alle EtherShare-Server). Es stellt sicher, dass alle aktiven Prozesse korrekt beendet werden. Alle angemeldeten Anwender erhalten an Ihrer Arbeitsstation eine Warnung, bevor das System endgültig heruntergefahren wird.
Wenn die "stop-atalk"-Befehlszeile den Parameter now enthält ("$ESDIR/stop-atalk now"), wird EtherShare sofort beendet. Anstatt now können Sie -g grace period angeben und dadurch die Wartezeit in Sekunden vor dem Beenden von EtherShare verändern. Zusätzlich können Sie den Parameter -m message mit dem "stop-atalk"-Befehl angeben.

Wichtig: Nur der Benutzer "root" kann "stop-atalk" ablaufen lassen. Verwenden Sie den Befehl "swho" (oder wählen Sie den Befehl Aktive Benutzer aus dem Menü Listen in EtherShare Admin), um sicherzustellen, dass kein anderer Anwender den Dateiserver nutzt, bevor Sie dieses Skript verwenden (informieren Sie angemeldete Anwender mit dem Programm "afpmsg"). Stellen Sie außerdem sicher, dass aktuell keine Druckaufträge bearbeitet und/oder OPI-Layoutbilder berechnet werden. Das Skript "stop-atalk" würde alle diese Vorgänge unterbrechen.

Hinweis: Das Skript "stop-atalk" deaktiviert nicht das AppleTalk-Kernelmodul.

Befehl "swho"
Der Befehl "swho" kann verwendet werden, um alle momentan aktiven EtherShare- und PCShare-Kind-Serverprozesse aufzulisten. Dabei werden die Prozess-ID (PID), die Netzwerkadresse (EtherShare: AppleTalk/IP-Adresse; PCShare: Internetadresse oder Clientname), der Benutzername und die Startzeit des Prozesses angezeigt:
$ swho
Server PID Address User When
PCShare 15984 deskjetpc.helios nobody Thu 8:35
AFPServer 56438 0029.062.249 support Thu 8:37
MailServer 26744 0029.062.248 support Thu 8:37
AFPServer 16812 dyn-3-234.helios sam Thu 8:47
AFPServer 27866 dyn-3-233.helios paul Thu 8:50
AFPServer 46534 dyn-3-227.helios michael Thu 13:12
UNIXTerminal 24730 0026.072.249 michael Thu 12:56
UNIXTerminal 23084 0029.216.249 <unknown> Thu 15:26
PCShare 29610 dyn-3-248.helios nobody Thu 10:31
$
PCShare ist ein anderes Server-Produkt von HELIOS. Es wird im Glossar kurz beschrieben.
Benutzen Sie das Argument -c, um zusätzlich ein Kommentarfeld anzuzeigen, in dem weitere Informationen über die Sitzung dargestellt werden. Der EtherShare-Dateiserver ("AFPServer") gibt dort den Namen der aktuell geladenen Macintosh-Volumes an, während der PCShare-Server den Namen des entsprechenden geladenen UNIX-Verzeichnisses oder eines Druckbefehls anzeigt:
$ swho -c
Server PID Address User When Comment
AdminServer 9692 ... root Wed...
AFPServer 9715 ... sam Wed... EtherShare Appl
"swho" bezieht die Informationen aus der Datei
"$ESDIR/stmp", die von jedem der EtherShare-Server aktualisiert wird. Die EtherShare-Umgebungsvariable "$ESDIR" muss für den korrekten Betrieb des Befehls "swho" richtig gesetzt sein.
Verwenden Sie das Argument -f, um eine alternative Eingabedatei für den Befehl "swho" festzulegen. Die Standarddatei ist "$ESDIR/stmp". Informationen dazu sind in der Prozessliste des Hosts verfügbar. Im folgenden Beispiel haben wir das Programm "grep" verwendet, um die ansonsten umfassende Liste auf "/es" zu beschränken:
linux$ ps ax | grep /es
410 ? S 0:52 /usr/local/es/atalkd
418 ? S 0:00 /usr/local/es/admsrv
421 ? S 0:00 /usr/local/es/afpsrv
424 ? S 0:00 /usr/local/es/desksrv
427 ? S 0:00 /usr/local/es/mailsrv
437 ? S 0:00 /usr/local/es/papsrv
442 ? S 0:00 /usr/local/es/papsrv
443 ? S 0:00 /usr/local/es/papsrv
444 ? S 0:00 /usr/local/es/papsrv
445 ? S 0:00 /usr/local/es/termsrv
448 ? S 0:00 /usr/local/es/timesrv
461 ? S 0:00 /usr/local/es/lpd
5555 ? S 0:00 /usr/local/es/termsrv
5615 p1 S 0:00 grep /es
Die EtherShare-Dateiserver ("afpsrv"), -Administrationsserver ("admsrv"), -Mailserver ("mailsrv"), -Terminalserver ("termsrv") und -Zeitserver ("timesrv") erzeugen jeweils einen Kindprozess für jeden angemeldeten Benutzer. Daher können Sie diese Einträge mehrmals sehen, wenn mehrere Benutzer gleichzeitig am Server angemeldet sind. Die Hauptprozesse sind immer dem Benutzer "root" zugewiesen, während der Kindprozess den Namen des entsprechenden Benutzers zeigt. Sie sehen je einen Druckserver-Eintrag ("papsrv") für jede konfigurierte Drucker-Warteschlange und einen zusätzlichen "papsrv"-Kindprozess für jeden aktiven Druckauftrag, der momentan vom Server ausgegeben wird. Alle "papsrv"-Prozesse sind dem Benutzer "root" zugewiesen.
Die PCShare-Datei-und Druckserver-Eigenschaften sind alle in einem einzigen "pcshare"-Hauptprozess implementiert. Dieser produziert für jedes geladene virtuelle DOS-Laufwerk, jede Terminalsitzung und jeden aktiven Druckauftrag jeweils einen Kindprozess. Alle Kindprozesse heißen ebenfalls "pcshare".

© 2002 HELIOS Software GmbH