Linux ist ein mächtiges Betriebssystem und bietet große Flexibilität bei der Konfiguration. Dadurch wird es etwas langwieriger, es so einzurichten, daß es das tut, was man will. Wenn man eine Linux-Maschine für die Entgegennahme von ankommenden AX.25-NetROM- und ROSE-Rufen einrichtet, muß man sich einige Fragen stellen. Die wichtigste davon ist: »Was sollen die Nutzer zu sehen bekommen, wenn sie verbunden sind?«
Es werden hübsche kleine Anwendungen entwickelt, die dazu
verwendet werden können, den Anrufern bestimmte Dienste
anzubieten. Ein einfaches Beispiel ist das in den
AX.25-Utilities enthaltene Programm pms
, etwas komplexer ist
das ebenfalls dort vorhandene node
-Programm. Als
Alternative kann man den Nutzern einen Login-Prompt geben, so daß
sie einen Shell-Account nutzen können, oder man hat sogar ein
eigenes Programm, wie eine Datenbank oder ein Spiel, geschrieben,
mit dem sich die Nutzer verbinden können. Was auch immer gewünscht
wird, man muß es der AX.25-Software mitteilen, damit diese weiß,
welches Programm bei einer hereinkommenden Verbindung gestartet
werden soll.
Das Programm ax25d
entspricht hierfür dem üblicherweise zur
Entgegennahme von TCP/IP-Verbindungen auf UNIX-Maschinen
eingesetzten inetd
. Es wartet auf hereinkommende Verbindungen,
wenn es eine erkennt, schaut es in einer Konfigurationsdatei nach,
welches Programm zu starten und mit dieser Verbindung zu assoziieren
ist.
Da der ax25d
das Standardwerkzeug für die Entgegennahme von
AX.25-, NetROM- und ROSE-Verbindungen ist, soll hier die
Konfiguration erläutert werden.
Sie ist die Konfigurationsdatei für den AX.25-Daemon ax25d
,
der die hereinkommenden AX.25-, NetROM- und ROSE-Verbindungen
entsprechend handhabt. Die Datei sieht auf den ersten Blick etwas
kryptisch aus, aber man wird bald sehen, daß sie in der Praxis
recht einfach zu bearbeiten ist. Es gibt eine kleine Falle, die
beachtet werden muß. Im allgemeinen hat die Datei
/etc/ax25/ax25d.conf
folgendes Format:
# Dieser Kommentar wird vom ax25d ignoriert.
[port_name] <port_name>
{port_name}
window T1 T2 T3 idle N2
window T1 T2 T3 idle N2
parameters window T1 T2 T3 idle N2 window T1 T2 T3
idle N2 ...
default window T1 T2 T3 idle N2
Wobei gilt: Das Zeichen »#« am Anfang einer Zeile markiert einen
Kommentar, die Zeile wird vom ax25d
ignoriert.
Der Name des AX.25-, NetROM- oder ROSE-Ports, wie er in
/etc/ax25/axports
, /etc/ax25/nrports
respektive
/etc/ax25/rsports
definiert ist.
Das Rufzeichen der Station, auf die sich die Konfiguration bezieht. Wird hier keine SSID angegeben, so sind alle SSID gültig.
Der AX.25-Window-Parameter (Maxframe) für diese Konfiguration.
Der Timer T1 (Zeit bis zum Wiederaussenden eines Paketes) in halben Sekunden.
Der Timer T2 (Zeit, die auf eine weiteres Paket gewartet wird, bevor Empfangsbestätigung gesendet wird) in Sekunden.
Zeit, die die Verbindung inaktiv sein darf, bevor sie getrennt wird in Sekunden.
Der Idle-Timer-Wert in Sekunden
Anzahl Versuche (retries), bevor eine Verbindung als gescheitert betrachtet wird.
Legt einige allgemeine Zugriffsrechte fest. Die Modes werden ein-/ausgeschaltet, indem eine Reihe von Zeichen angegeben werden, von denen jedes für ein bestimmtes Zugriffsrecht steht. Die Buchstaben dürfen groß- oder klein geschrieben werden und dürfen nicht durch Leerzeichen getrennt werden.
Folgende Zeichen sind möglich:
UTMP - zur Zeit nicht unterstützt
Validiere alles - zur Zeit nicht unterstützt
Quiet - schreibe Verbindung nicht mit
überprüfe NetROM-Nachbar - zur Zeit nicht unterstützt
Digipeater nicht erlaubt, Verbindungen müssen direkt erfolgen, nicht über Digipeater.
Aussperren (Lockout) - keine Verbindung erlaubt.
Marker - Platzhalter, kein Mode gesetzt
Die Nutzerkennung (User ID) unter der das für die Verbindung aufgerufene Programm laufen soll.
Der volle Pfadname des aufzurufenden Programms, ohne Kommandozeilenparameter
Text, der beim Aufrufen von ps (Anzeige des Prozeßstatus) erscheinen soll, normalerweise dasselbe wie cmd, aber ohne die Pfadangabe
Kommandozeilenparameter, die der in cmd angegebenen Anwendung beim Start übergeben werden. Folgende Kürzel können dazu verwendet werden:
Name des Ports, auf dem die Verbindung eingegangen ist.
AX.25-Rufzeichen der verbundenen Station ohne SSID, in Großbuchstaben.
AX.25-Rufzeichen der verbundenen Station ohne SSID, in Kleinbuchstaben.
AX.25-Rufzeichen der verbundenen Station mit SSID, in Großbuchstaben.
AX.25-Rufzeichen der verbundenen Station mit SSID, in Kleinbuchstaben.
AX.25-Rufzeichen des Nodes, von dem die Verbindung kam ohne SSID, in Großbuchstaben.
AX.25-Rufzeichen des Nodes, von dem die Verbindung kam ohne SSID, in Kleinbuchstaben.
AX.25-Rufzeichen des Nodes, von dem die Verbindung kam mit SSID, in Großbuchstaben.
AX.25-Rufzeichen des Nodes, von dem die Verbindung kam mit SSID, in Kleinbuchstaben.
Für jedes AX.25-, NetROM- oder ROSE-Interface, auf dem Verbindungen entgegengenommen werden sollen, muß ein Abschnitt in diesem Format vorgesehen werden.
In jedem Abschnitt gibt es zwei besondere Zeilen, eine beginnt mit dem Wort »parameters«, die andere mit »default«. (Ja, das ist ein Unterschied.) Diese Zeilen dienen speziellen Funktionen.
Der Zweck der default-Zeile dürfte klar sein, diese Zeile enthält die Parameter, die auf alle Stationen zutreffen, für die keine speziellen Parameter definiert wurden. Wird keine default-Zeile angegeben, so werden alle Verbindungen, für die keine speziellen Voreinstellungen getroffen wurden, sofort wieder getrennt.
Die parameters-Zeile ist ein wenig kritischer, hier ist auch die vorhin erwähnte Falle. In jedem der Felder für alle aufgeführten Stationen kann das »*«-Zeichen benutzt werden, um den voreingestellten Wert zu übernehmen. Die parameters-Zeile setzt diese Voreinstellungen. Die Kernel-Software selbst hat einige Voreinstellungen, die dann verwendet werden, wenn die keine Voreinstellungen unter »parameters« angegeben sind.
Die Falle besteht nun darin, daß die Parameters-Werte nur für die darunterliegenden Zeilen gelten, nicht für die darüberstehenden. Man kann mehrere parameters-Zeilen pro Interface-Definition haben und somit Gruppen von Stationen mit gleichen Voreinstellungen einrichten.
# ax25d.conf für VK2KTJ - 02/03/97
# Diese Konfiguration nutzt den vorher definierten AX.25-Port.
# Win T1 T2 T3 idl N2 []
[VK2KTJ-0 via radio]
parameters 1 10 * * * * *
VK2XLZ * * * * * * * root /usr/sbin/axspawn axspawn %u +
VK2DAY * * * * * * * root /usr/sbin/axspawn axspawn %u +
NOCALL * * * * * * L
default 1 10 5 100 180 5 * root /usr/sbin/pms pms -a -o vk2ktj
[VK2KTJ-1 via radio]
default * * * * * 0 root /usr/sbin/node node
<netrom>
parameters 1 10 * * * * *
NOCALL * * * * * * L
default * * * * * * 0 root /usr/sbin/node node
{VK2KTJ-0 via rose}
parameters 1 10 * * * * *
VK2XLZ * * * * * * * root /usr/sbin/axspawn axspawn %u +
VK2DAY * * * * * * * root /usr/sbin/axspawn axspawn %u +
NOCALL * * * * * * L
default 1 10 5 100 180 5 * root /usr/sbin/pms pms -a -o vk2ktj
{VK2KTJ-1 via rose}
default * * * * * 0 root /usr/sbin/node node radio
In diesem Beispiel gelten für jede Station, die eine Verbindung mit dem Rufzeichen VK2KTJ-0 aufbauen will und auf dem AX.25-Port »radio« gehört wurde, die folgenden Einstellungen:
Jeder, dessen Rufzeichen auf »NOCALL« eingestellt ist, soll
ausgesperrt bleiben, beachte die Verwendung des Mode »L«.
Die parameters-Zeile ändert zwei der Kernel-Voreinstellungen
(Window und T1) und startet das axspawn
-Programm für
die Nutzer. Alle auf diese Weise gestarteten axspawn
erscheinen in der Ausgabe des Befehls ps
als »axspawn«
zum besseren Verständnis. Die nächsten beiden Zeilen
definieren für zwei Stationen, daß für sie diese Einstellungen
gelten.
Die defaults-Zeile dient als »Sammelbecken« für alle anderen Stationen (auch VK2XLZ und VK2DAY, wenn sie eine andere SSID als -1 verwenden). Hier werden alle Parameter implizit gesetzt und das Programm pms mit einer Kommandozeile aufgerufen, die anzeigt, daß es von einer AX.25-Verbindung aufgerufen wurde und das Rufzeichen des Eigentümers VK2KTJ ist. (Siehe den Abschnitt Das PMS (Personal Message System) einrichten für weitere Details.)
Die nächste Konfiguration nimmt Rufe an VK2KTJ-1 über den
Port »radio« entgegen. Sie startet das Programm node
für
alle Stationen, die eine Verbindung zu VK1KTJ-1 aufbauen.
Anschließend folgt eine NetROM-Konfiguration, man beachte die
Verwendung der »<>«-Klammern anstelle eckiger Klammern »[]«.
Damit wird eine NetROM-Konfiguration markiert. Sie ist einfacher,
da nur festgelegt wird, daß für jede Station, die eine
Verbindung zu dem Port »netrom« aufgebaut hat, das Programm
node
gestartet wird. Stationen mit Rufzeichen NOCALL werden
ausgesperrt.
Die letzten beiden Konfigurationen betreffen hereinkommende ROSE-Verbindungen. Die erste ist für Stationen, die VK2KTJ-0 gerufen haben, und die zweite für Verbindungen mit VK2KTJ-1, dem ROSE-Node. Sie funktionieren genau gleich. Man beachte die Verwendung von geschweiften Klammern »{}«, um die Konfiguration als ROSE-Konfiguration zu kennzeichnen.
Das Beispiel hier ist frei erfunden, doch es sollte die
wichtigen Eigenschaften und Möglichkeiten der Syntax der
Konfigurationsdatei aufzeigen. In der Hilfeseite zu ax25d
wird die Konfigurationsdatei vollständig erklärt. Ein
detaillierteres und sicher ebenfalls nützliches Beispiel ist
in dem Archiv der AX.25-Utilities enthalten.
Ist die Konfigurationsdatei vervollständigt, startet man
den ax25d
:
/usr/sbin/ax25d
Nun sollten andere Stationen Verbindungen zu unserer Maschine
aufbauen können. Der Aufruf des ax25d
sollte in die beim
Systemstart ausgeführten Skripts eingefügt werden, damit dieser
automatisch nach dem Booten zur Verfügung steht.