Inhalt

12. Linux für ankommende Packet-Verbindungen einrichten

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.

12.1 Die Datei /etc/ax25/ax25d.conf

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.

port_name

Der Name des AX.25-, NetROM- oder ROSE-Ports, wie er in /etc/ax25/axports, /etc/ax25/nrports respektive /etc/ax25/rsports definiert ist.

peer

Das Rufzeichen der Station, auf die sich die Konfiguration bezieht. Wird hier keine SSID angegeben, so sind alle SSID gültig.

window

Der AX.25-Window-Parameter (Maxframe) für diese Konfiguration.

T1

Der Timer T1 (Zeit bis zum Wiederaussenden eines Paketes) in halben Sekunden.

T2

Der Timer T2 (Zeit, die auf eine weiteres Paket gewartet wird, bevor Empfangsbestätigung gesendet wird) in Sekunden.

T3

Zeit, die die Verbindung inaktiv sein darf, bevor sie getrennt wird in Sekunden.

idle

Der Idle-Timer-Wert in Sekunden

N2

Anzahl Versuche (retries), bevor eine Verbindung als gescheitert betrachtet wird.

mode

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:

u/U

UTMP - zur Zeit nicht unterstützt

v/V

Validiere alles - zur Zeit nicht unterstützt

q/Q

Quiet - schreibe Verbindung nicht mit

n/N

überprüfe NetROM-Nachbar - zur Zeit nicht unterstützt

d/D

Digipeater nicht erlaubt, Verbindungen müssen direkt erfolgen, nicht über Digipeater.

l/L

Aussperren (Lockout) - keine Verbindung erlaubt.

*/0

Marker - Platzhalter, kein Mode gesetzt

uid

Die Nutzerkennung (User ID) unter der das für die Verbindung aufgerufene Programm laufen soll.

cmd

Der volle Pfadname des aufzurufenden Programms, ohne Kommandozeilenparameter

cmd_name

Text, der beim Aufrufen von ps (Anzeige des Prozeßstatus) erscheinen soll, normalerweise dasselbe wie cmd, aber ohne die Pfadangabe

arguments

Kommandozeilenparameter, die der in cmd angegebenen Anwendung beim Start übergeben werden. Folgende Kürzel können dazu verwendet werden:

%d

Name des Ports, auf dem die Verbindung eingegangen ist.

%U

AX.25-Rufzeichen der verbundenen Station ohne SSID, in Großbuchstaben.

%u

AX.25-Rufzeichen der verbundenen Station ohne SSID, in Kleinbuchstaben.

%S

AX.25-Rufzeichen der verbundenen Station mit SSID, in Großbuchstaben.

%s

AX.25-Rufzeichen der verbundenen Station mit SSID, in Kleinbuchstaben.

%P

AX.25-Rufzeichen des Nodes, von dem die Verbindung kam ohne SSID, in Großbuchstaben.

%p

AX.25-Rufzeichen des Nodes, von dem die Verbindung kam ohne SSID, in Kleinbuchstaben.

%R

AX.25-Rufzeichen des Nodes, von dem die Verbindung kam mit SSID, in Großbuchstaben.

%r

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.

12.2 Ein einfaches Beispiel für /etc/ax25/ax25d.conf

# 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.

12.3 Den ax25d starten

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.


Inhalt