Linux AX25 HOWTO
Terry Dawson (
[email protected]) und
Gerd R�thig (
[email protected])
v1.6-2, 8. Juli 1999
Das Betriebssystem Linux ist vielleicht das einzige, das eine einge�
baute Unterst�tzung f�r das im Packet Radio verwendete AX.25-Protokoll
bietet. Dieser Text beschreibt, wie man diese Unterst�tzung instal�
liert und einrichtet.
1. Einf�hrung
Dieses HOWTO beschreibt, wie man die AX.25-, NetROM- und ROSE-
Unterst�tzung unter Linux installiert und einrichtet. Einige typische
Konfigurationen sind beispielhaft aufgef�hrt und k�nnen als
Ausgangsbasis dienen.
Die Implementation der Amateurfunk-Protokolle unter Linux ist sehr
flexibel. F�r Neulinge wird die Konfiguration reichlich kompliziert
und verwirrend erscheinen. Es braucht ein wenig Zeit, bis man
versteht, wie alles zusammenpa�t. Die Konfiguration wird sich als
schwierig erweisen, wenn man sich nicht entsprechend vorbereitet und
�ber Linux im allgemeinen informiert hat.
Zur Zeit ist mit der Einf�hrung des Linux-Kernels 2.2.x auch das
AX.25-Subsystem tiefgreifenden Ver�nderungen unterworfen. Dieses HOWTO
wird darauf in kommenden Fassungen ausf�hrlicher eingehen, wenn erste
Erfahrungen mit der neuen Software vorliegen.
Die im folgenden beschriebenen Konfigurationshinweise und Beispiele
beziehen sich daher, wenn nicht ausdr�cklich anders vermerkt, auf ein
Linux-System mit Kernel 2.0.37, libc5 und ax25-utilities-2.1.42a.
1.1. Wo bekommt man neue Versionen dieses Textes
Den englischen Originaltext findet man im Archiv des Linux-
Dokumentation-Projektes. Die WWW-Fassung findet sich hier:
http://metalab.unc.edu/LDP/HOWTO/AX25-HOWTO.html
Man kann Terry Dawson (
[email protected]) auch direkt
fragen; neue Versionen wird er jedoch sofort dem Koordinator des LDP
schicken, so da� man immer erst bei metalab nachsehen sollte. Gibt es
dort keine neue Version, so ist es wahrscheinlich, da� sie noch nicht
fertig ist. Die deutsche Version findet man beim DLHP:
http://www.tu-harburg.de/dlhp/
1.2. Weitere Informationen zu diesem und verwandten Themen
Es gibt eine Menge weitere Dokumentation. Viele Texte befassen sich
mit Netzwerken und Linux im allgemeinen und es wird w�rmstens
empfohlen, diese zu lesen, da sie bei eigenen Bem�hungen helfen und
Wege zu weiteren m�glichen Konfigurationen aufzeigen.
Folgende Texte sind empfehlenswert:
� HAM HOWTO
� NET-3 HOWTO
� Ethernet HOWTO
� Firewall HOWTO
Allgemeinere Informationen zu Linux findet man in den anderen Linux-
HOWTO-Dokumenten:
http://metalab.unc.edu/LDP/HOWTO/
2. Die Protokolle bei Packet Radio und Linux
Das AX.25-Protokoll gestattet den Betrieb sowohl mit als auch ohne
laufende Verbindungen und wird entweder selbst zur Herstellung von
Punkt-zu-Punkt-Verbindungen oder als Tr�ger f�r andere Protokolle wie
TCP/IP oder NET/ROM eingesetzt.
Es entspricht in seinem Aufbau dem X.25-Protokoll mit einigen
amateurfunkspezifischen Erweiterungen. Das NetROM-Protokoll ist ein
Versuch eines vollst�ndigen Netzwerkprotokolls und nutzt AX.25 auf
seiner niedrigsten Ebene als Protokoll zum Datenaustausch. Es stellt
eine Netzwerkebene zur Verf�gung, die eine angepa�te Form des AX.25
darstellt. Das NetROM-Protokoll bietet dynamisches Routing und Aliases
f�r die einzelnen Nodes.
Das ROSE-Protokoll wurde von Tom Moulton (W2VY) entwickelt und
implementiert. Es stellt eine Implementation des X.25-Packet-Layer-
Protokolls dar, wurde f�r das Zusammenwirken mit AX.25 als Datalink
entworfen und stellt ebenfalls eine Netzwerk-Ebene zur Verf�gung.
ROSE-Adressen sind zehnstellige Nummern. Die ersten vier sind der sog.
Data Network Identification Code (DNIC) und stammen aus dem Zusatz B
der CCITT X.121-Empfehlung.
Mehr Informationen zum ROSE-Protokoll gibt es auf dem RATS (Radio
Amateur Teleprinter Society) -Web-Server:
http://www.rats.org/
Das FPAC/Linux-Projekt als eine ROSE-Anwendung ist auf
http://www.qsl.net/fpac
zu finden.
Alan Cox entwickelte die fr�he Kernel-Unterst�tzung f�r AX.25.
Jonathan Naylor (
[email protected]) entwickelte den Code weiter,
f�gte NetROM- und ROSE-Unterst�tzung hinzu und ist jetzt der
Entwickler des AX.25-Codes f�r den Kernel.
Die Unterst�tzung f�r DAMA wurde von Joerg (DL1BKE,
[email protected]) entwickelt. Thomas Sailer
(
[email protected]) f�gte die Unterst�tzung f�r BayCom- und
SoundModem hinzu. Die AX-25-Utilities werden von Craig Small
(
[email protected]) betreut. Der Linux-Code unterst�tzt KISS-basierte
TNCs (Terminal Node Controllers), die Ottawa PI-Card, die Gracilis
PacketTwin-Karte und andere SCC-Karten auf der Basis des Z8530 mit dem
allgemeinen SCC-Treiber sowie parallele und serielle BayCom-Modems.
Der SoundModem-Treiber von Thomas Sailer unterst�tzt den SoundBlaster
und die Soundkarten auf der Basis des Crystal-Chipsatzes. Die
Anwenderprogramme enthalten ein einfaches PMS (Personal Message
System), eine M�glichkeit, Baken auszusenden, ein zeilenorientiertes
Programm zum Verbindungsaufbau, 'listen', ein Beispiel, wie man alle
AX.25-Pakete an einem Interface mitlesen kann und Programme zur
Einrichtung des NetROM- Protokolls. Ebenso sind ein AX.25-Server-
Programm zur Verwaltung eintreffender Verbindungen und ein NetROM-
Daemon, der den Hauptanteil der NetROM- Funktionalit�t �bernimmt,
vorhanden.
2.1. Wie alles zusammenpa�t
Die AX.25-Implementation bei Linux ist noch sehr neu. Obwohl sie an
vielen Stellen NOS, BPQ oder anderen Implementationen �hnelt, ist sie
keine von diesen. Man kann sie so einrichten, da� sie sich fast wie
andere Implementationen verh�lt, die Konfiguration ist jedoch
vollkommen anders. Um beim Verst�ndnis der Einrichtungsweise zu
helfen, soll dieser Abschnitt einige strukturelle Eigenschaften
beschreiben und darstellen, wie sie sich in die Systemstruktur von
Linux einf�gen.
Vereinfachte Zeichnung der Protokoll-Ebenen:
+----------+-----------+----------+----------+
| AF_AX25 | AF_NETROM | AF_INET | AF_ROSE |
|==========|===========|==========|==========|
| | | | |
| | | TCP/IP | |
| | +-------+ | |
| | NetROM | | |
| +-------------------+--+----------+
| A X . 2 5 |
+--------------------------------------------+
Diese Darstellung soll zeigen, da� NetROM, ROSE und TCP/IP alle direkt
auf AX.25 aufgesetzt laufen, aber jedes Protokoll als einzelnes
Protokoll an der Programmierschnittstelle behandelt wird. Die
�AF_�-Namen sind die Namen f�r die Adre�familie jedes Protokolls, wie
sie in den darauf aufsetzenden Programmen verwendet werden. Wichtig
ist also die richtige Konfiguration der AX.25-Ger�te, bevor man die
NetROM-, TCP/IP- oder ROSE-Devices einrichten kann.
Darstellung der Linux-Netzwerk-Implementation:
---------+-----------+------------------++----------+------------------------
Anwender | Programme | call node || Daemonen | ax25d mheardd
| | pms mheard || | inetd netromd
---------+-----------+------------------++----------+------------------------
| Sockets | open(), close(), listen(), read(), write(), connect()
| +-----------+-----------+--------------+----------------
| | AF_AX25 | AF_NETROM | AF_ROSE | AF_INET
+-----------+-----------+-----------+--------------+----------------
| Protokolle| AX.25 | NetROM | ROSE | TCP/IP/UDP
Kernel +-----------+-----------+-----------+--------------+----------------
| Devices | ax0, ax1 | nr0, nr1 | rose0, rose1 | eth0, ppp0...
+-----------+-----------+-----------+--------------+----------------
| Treiber | KISS, PI2, PacketTwin, SCC, BPQ, | slip, ppp,
| | SoundModem, BayCom | ethernet
---------+-----------+--------------------------------------+----------------
Hardware | PI2-Karte, PacketTwin-Karte, SCC-Karte, Serielle Schnittstelle,
| SoundBlaster, Ethernet-Karte
---------+-------------------------------------------------------------------
Diese Zeichnung ist ein wenig allgemeiner als die erste. Sie soll den
Zusammenhang zwischen Anwenderprogrammen, Kernel und Hardware und die
Beziehungen von Programmierschnittstelle, Protokoll-Modulen, Kernel-
Netzwerk-Devices und Ger�tetreibern untereinander verdeutlichen. In
dieser Darstellung ist jeder Teil von dem, was darunter steht,
abh�ngig, man mu� also von �unten� (Hardware) nach �oben� (Programme)
alles der Reihe nach einrichten. Beispiel: Will man das Programm
�call� starten, so mu� man zun�chst die Hardware einrichten, dann
sicherstellen, da� der Kernel den passenden Treiber geladen hat, das
zugeh�rige Netzwerk-Device erzeugt wurde und das zur Nutzung durch
�call� gew�nschte Protokoll im Kernel enthalten ist. Dieser Text wird
sich im gro�en und ganzen an diese Reihenfolge halten.
3. Die Software zu AX.25/NetROM/ROSE
Die AX.25-Software besteht aus drei Komponenten:
� dem Kernel-Quelltext
� den Netzwerk-Konfigurationsprogrammen
� den Utilities.
In den Kernel-Versionen 2.0.35, 2.0.36 und 2.0.37 sind die Treiber f�r
AX.25, NetROM, Z8530 SCC, PI-Karte und PacketTwin standardm��ig in
einer aktuellen Version enthalten. Zum Kernel 2.2.x siehe Anmerkungen
am Ende dieses Textes.
3.1. Woher bekommt man den passenden Kernel und die Software
3.1.1. Die Kernel-Quelltexte
Diese sind an der �blichen Stelle bei ftp.kernel.org zu finden.
Empfohlen wird linux-2.0.37.tar.gz. Es gibt keinen Grund, eine andere
als diese Kernel-Version aus der 2.0.x-Reihe zu verwenden. Wer seinen
Kernel von �lteren Versionen auf 2.0.37 aktualisieren will, sollte das
komplette Quelltextarchiv herunterladen, da es mit Patches auf 2.0.37
zu Problemen kommt, wenn die vorherigen Kernel-Quellen nicht mehr
�original� sind.
Im Hinblick auf die Kernel der 2.2.x-Reihe sind die Mirrors von
ftp.kernel.org die erste Wahl. Die Adresse des zu bevorzugenden
Mirrors erh�lt man, indem man den Landes-Suffix einf�gt; aus
ftp.kernel.org wird f�r Deutschland demnach ftp.de.kernel.org (f�r
Nutzer kommerzieller Onlinedienste ftp2.de.kernel.org). Dort findet
man die aktuellen Kernel-Archive unter /pub/linux/kernel/v2.2/.
3.1.2. Programme f�r die Netzwerkkonfiguration
3.1.2.1. Die Net-Tools
Die aktuelle Version der Standard-Linux-Netzwerk-Tools unterst�tzt
AX.25, NetROM und ROSE, sie findet sich auf
http://www.tazenda.demon.co.uk/phil/net-tools/
als net-tools-1.52.tar.gz.
3.1.2.2. Firewall-Konfiguration
Die neueste Version des ipfwadm (IP Firewall Administrator) f�r den
Kernel 2.0.37 kann hier bezogen werden:
ftp.xos.nl:/pub/linux/ipfwadm
Wer eine aktuelle Distribution einsetzt, sollte vor dem Download
pr�fen, ob diese Pakete nicht bereits installiert bzw. auf der
Installations-CD enthalten sind. Wer auf seinem System eine Nettools-
Version gr��er 1.33 vorfindet, braucht sie sich nicht nochmals zu
installieren. Gleiches trifft auf ipfwadm zu. Hier ist 2.3.0 die
aktuelle Version (wird mit ipfwadm -h angezeigt).
F�r die Kernel der 2.2.x-Reihe gibt es an Stelle von ipfwadm das
Programm ipchains. Zu finden ist es hier:
ftp.starshadow.com:/pub/rustcorp/ipchains/
Das Programm wird auf
http://www.rustcorp.com/linux/ipchains/
vorgestellt.
3.1.3. Die AX.25-Utilities Version 2.1.42a
Die empfohlene Version der AX.25-Utilities f�r den Kernel 2.0.37 auf
libc5-basierten Systemen ist ax25-utils-2.1.42a. Zu finden ist sie
hier:
ftp.funet.fi:/pub/ham/unix/Linux/packet/ax25/
�ltere Versionen sollten nicht eingesetzt werden. Bin�re Pakete zur
direkten Installation unter RedHat 5.2 oder S.u.S.E. 6.0 finden sich
unter:
ftp.funet.fi:/pub/ham/unix/Linux/packet/ax25/packages/libc6/rpm
Wichtig ist hierbei, sowohl ax25-utils-2.1.42a-3.i386.rpm als auch
ax25-utils-devel-2.1.42a-3.i386.rpm zu installieren, damit auf dem
AX.25-Subsystem aufbauende Software kompiliert werden kann.
Dem Debian-Archiv ax25-utils_2.1.42a-6.deb fehlt auf Grund einer
Fehlinformation der Verantwortlichen (man nahm Lizenzprobleme an) das
Programm smdiag, so da� es nur f�r diejenigen geeignet ist, die weder
BayCom- noch SoundModem verwenden m�chten.
Neue Version 0.0.1 F�r Kernel 2.2.10 gibt es eine komplett
�berarbeitete Fassung der AX.25-Utilities und der ben�tigten
Bibliotheken:
ftp.hes.iki.fi:/pub/ham/linux/ax25
Da sich sowohl Software als auch Bibliotheken in einer Alpha-Version
befinden und in n�chster Zeit weiter entwickelt werden sollen, wurde
das Archiv in die Bestandteile ax25-apps-0.0.2.tar.gz,
ax25-tools-0.0.3.tar.gz und libax25-0.0.5.tar.gz aufgeteilt, die zur
Installation dieser Version vollst�ndig ben�tigt werden. Weitere
Informationen liefert diese WWW-Seite:
http://www.eye-net.com.au/hamradio/
Vorausgesetzt wird ein installiertes XFree86, zumindest aber die
Bibliothek libX11, da sich sonst das Programm smdiag nicht kompilieren
l��t. Viele Dateien sind gespiegelt, d.h, sie befinden sich auf
Servern, die schneller zu erreichen sind als die Originalserver. Am
leichtesten findet man derartige M�glichkeiten mit FTPSearch.
4. Die Software zu AX.25/NetROM/ROSE installieren
Um die AX.25-Unterst�tzung erfolgreich nutzen zu k�nnen, mu� man erst
einen passenden Kernel und anschlie�end (unter dem neuen Kernel) die
AX.25- Utilities installieren.
4.1.
Den Kernel kompilieren
Wer sich mit dem Erstellen eines neuen Kernels auskennt, kann diesen
Abschnitt �berspringen. Wichtig ist die Auswahl der richtigen Optionen
beim Kompilieren. Wer noch nicht wei�, wie es geht, sollte hier
weiterlesen. Normalerweise befindet sich der Quelltext des Kernels in
dem Verzeichnis /usr/src/linux. Will man nun einen neuen Kernel
installieren, geht man so vor:
cd /usr/src
Falls man bereits ein Linux-Verzeichnis besitzt und dieses nicht
l�schen will, kann man es umbenennen:
mv linux linux.old
Da die ausgepackten Quelltexte etwa 20-30 MB auf der Platte belegen,
sollte man sich �berlegen, ob man das Verzeichnis nicht doch l�scht:
rm -r linux
Die Quelltextarchive sind relativ zu /usr/src gepackt; zum Entpacken
gibt man ein:
cd /usr/src
tar zxvf /tmp/linux-2.0.37.tar.gz
Bei diesem Beispiel haben wir angenommen, da� das Archiv sich in /tmp
befindet.
Nachdem die Kernel-Quelltexte erfolgreich entpackt wurden, ruft man
jetzt das Konfigurationsskript auf:
cd /usr/src/linux
make menuconfig
Unter X11 kann statt dessen auch
make xconfig
verwendet werden. Hierf�r wird ein installiertes Tcl/Tk in einer
aktuellen Version ben�tigt.
Etwas archaisch, aber bew�hrt und stabil:
make config
Im folgenden soll die Vorgehensweise bei make menuconfig beschrieben
werden. Selbstverst�ndlich lassen sich die beiden anderen
M�glichkeiten auch nutzen, die Einstellungen sind entsprechend
anzupassen. In jedem Fall werden viele Fragen gestellt, die man mit
�y� (yes), �n� (no) oder �m� (Modul) beantworten kann. Einige
Eigenschaften lassen sich n�mlich auch als Module einrichten, um sie
nur bei Bedarf nachzuladen und somit Speicher zu sparen. Der
Einfachheit halber wird hier auf diese M�glichkeit nicht explizit
eingegangen. Wer Module erstellen will, mu� selbst die entsprechenden
Ver�nderungen vornehmen. Weitere Informationen findet man im Module
HOWTO, das zur Zeit leider nicht mehr betreut wird.
Folgende Optionen sind f�r AX.25 wichtig:
Code maturity level options
[*] Prompt for development and/or incomplete code/drivers
Loadable Module Support
[*] Enable loadable module support (wer Module vorsehen will)
...
[?] Kernel daemon support (e.g. autoload of modules)
General Setup
[*] Networking support
Networking options
[*] TCP/IP networking
[?] IP forwarding/gatewaying
...
[?] IP tunneling
...
[?] IP allow large windows (not recommended if < 16 MB of memory)
...
[*] Amateur Radio AX.25 Level 2
[?] Amateur Radio Net/ROM
[?] Amateur Radio X.25 PLP (ROSE)
F�r Kernel 2.2.x zus�tzlich:
[*] Packet socket (CONFIG_PACKET)
Network Device Support
[*] Network Device Support
...
[*] Radio network interfaces
[?] BAYCOM ser12 and par96 driver for AX.25
[?] Soundcard modem driver for AX.25
[?] Soundmodem support for Soundblaster and compatible cards
[?] Soundmodem support for WSS and Crystal cards
[?] Soundmodem support for 1200 baud AFSK modulation
[?] Soundmodem support for 2400 baud AFSK modulation (7.3728 MHz crystal)
[?] Soundmodem support for 2400 baud AFSK modulation (8 MHz crystal)
[?] Soundmodem support for 2666 baud AFSK modulation
[?] Soundmodem support for 4800 baud HAPN-1 modulation
[?] Soundmodem support for 4800 baud PSK modulation
[?] Soundmodem support for 9600 baud FSK G3RUH modulation
[?] Serial port KISS driver for AX.25
[?] BPQ Ethernet driver for AX.25
[?] Gracilis PacketTwin support for AX.25
[?] Ottawa PI and PI/2 support for AX.25
[?] Z8530 SCC KISS emulation driver for AX.25
...
Optionen, die mit einem [*] markiert sind, m�ssen eingeschaltet (mit
�y� beantwortet) werden, die mit einem [?] markierten h�ngen von der
zu verwendenden Hardware ab und welche weiteren Optionen einbezogen
werden sollen. Einiges davon wird sp�ter noch genauer beschrieben, so
da� es sinnvoll ist, bei Unklarheiten erst mal weiterzulesen und
anschlie�end wieder zu diesem Abschnitt zur�ckzukehren. Nachdem die
Konfiguration vervollst�ndigt wurde, sollte es m�glich sein, den
Kernel problemlos zu kompilieren. Siehe dazu auch die Anmerkung zu
KISS im Abschnitt ``KISS''. Wichtig ist es, in jedem Fall vor dem
Kompilieren die Datei /usr/src/linux/Documentation/CHANGES zu lesen
und sicherzustellen, da� die dort erw�hnten Programmpakete mindestens
in der angegebenen Version installiert sind. Kompiliert wird mit:
make dep
make clean
make zImage
Der make-Befehl akzeptiert die einzelnen Optionen auf einer Zeile, so
da� man auch
make dep clean zImage
eingeben kann. Wurde der Kernel erfolgreich kompiliert, kann man ihn
dorthin bringen, wo er hin mu�:
cat /usr/src/linux/arch/i386/boot/zImage > /vmlinuz
Wer Lilo installiert hat, mu� diesen starten:
lilo
Auf diese Weise erkennt Lilo, da� ein neuer Kernel installiert wurde
und bootet diesen beim n�chsten Neustart. Ein
make zlilo
automatisiert die Schritte zImage, Kernelkopie und LILO-Installation.
Da hierbei gleichzeitig die Datei System.map aktualisiert wird, ist
dieser Befehl von Vorteil. Wer sich aber nicht sicher ist, ob der neue
Kernel auch wirklich startet, sollte dann aber eine Bootdiskette
bereithalten. Weitere Informationen zu diesem Thema gibt das Kernel
HOWTO. Wer seinen Kernel mit einem Patch auf die aktuelle Version
bringen will, sollte nach dem Patchen mittels
cd usr/src/linux
zcat /pfad/zum/patch-x.x.x.gz | patch -p1
das Quelltextverzeichnis mit einem
find /usr/src/linux -name *.orig | xargs rm
aufr�umen. Ein
find /usr/src/linux -name *.rej -print
sollte ohne Ausgaben bleiben, sonst ist mit dem Patchen etwas
schiefgelaufen.
4.1.1. Ein Wort zu den Kernel-Modulen
Einsteigern wird zwar nicht empfohlen, die Treiber als Module zu
kompilieren, es ist jedoch in der Testphase manchmal recht hilfreich.
Das korrekte Funktionieren der Module h�ngt von passenden Eintr�gen in
der Datei System.map ab. Bekommt man beim Laden von Modulen
Fehlermeldungen bez�glich �unresolved symbols�, so gibt es daf�r zwei
Ursachen. Das Problem kann sowohl durch eine nicht zum laufenden
Kernel passende System.map als auch durch ein nicht aktualisiertes
Modul-Verzeichnis hervogerufen werden. Im ersteren Fall hilft das
Kopieren der passenden System.map nach /. In letzterem Fall sollte
man das Verzeichnis /lib/modules/{aktuelle Kernel-Version} leeren und
die Module noch einmal neu erstellen und installieren:
cd /usr/src/linux
make modules modules_install
Dieser Schritt ist selbstverst�ndlich ebenfalls nach der Erstellung
eines neuen Kernels f�llig. Anschlie�end aktualisiert man die
Abh�ngigkeiten der einzelnen Module untereinander mit:
depmod -a
Weiterhin ist es notwendig, einige Eintr�ge in der Datei
/etc/conf.modules hinzuzuf�gen, damit die Module im Bedarfsfall durch
den kerneld automatisch geladen werden k�nnen. Der kerneld mu� daf�r
gestartet sein, ein
ps fax | grep kerneld
sollte das auch anzeigen.
Hier also ein Beispiel:
#/etc/conf.modules
#
# Konfigurationsdatei f�r den kerneld
#
# WICHTIG: Alle genannten Treiber m�ssen als gleichnamige
# Module in /lib/modules/{Kernelversion} vorliegen!
#
alias net-pf3 ax25
#
# Suche nach einem Treiber unterdr�cken:
# (Wichtig bei einigen Programmen der Debian-Distribution)
#
alias net-pf5 off
#
alias net-pf6 netrom
alias net-pf-11 rose
alias tty-ldisc-1 slip
alias tty-ldisc-3 ppp
alias tty-ldisc-5 mkiss
#
# F�r jedes Device mu� einzeln ein Alias-Eintrag erfolgen:
#
alias bc0 baycom
alias bc1 baycom
alias nr0 netrom
alias pi0a pi2
alias pt0a pt
#
# F�r die n�chste Zeile den jeweils passenden
# Treiber ausw�hlen:
alias scc0 optoscc
#
alias sm0 soundmodem
alias tun10 newtunnel
#
# Wichtig f�r Anwernder der SuSE-Distribution, Version 6,
# mit Kernel 2.2.x:
#
alias char-major-4 serial
alias char-major-5 serial
alias char-major-6 lp
alias net-pf-17 af_packet
#
# ACHTUNG: Die folgenden Eintr�ge werden nur f�r Kernel
# ab 2.2.0 ben�tigt!
alias bcsf0 baycom_ser_fdx
alias bcsh0 baycom_ser_hdx
alias bcp0 baycom_par
alias bce0 baycom_epp
#
# Wer den neuen 6pack-Treiber nutzen will, braucht:
alias tty-ldisc-7 6pack
alias sp0 6pack
Insbesondere diejenigen, die BayCom- oder SoundModems verwenden
wollen, sollten die entsprechenden Treiber als Module vorsehen. Dazu
folgen sp�ter noch weitere Erkl�rungen.
4.1.2. Was ist neu in den verschiedenen Kernel-Versionen?
In den Kerneln der Versionen ab 2.0.35 und 2.1.xx sind verbesserte
Versionen von fast allen Protokollen und Treibern enthalten. Die
wichtigsten Verbesserungen sind:
modularisiert
Alle Protokolle und Treiber liegen auch als Module vor, so da�
man sie mit insmod laden und mit rmmod entfernen kann, wenn man
es w�nscht. Damit reduzieren sich die Speicheranforderungen des
Kernels f�r selten genutzte Module, Entwicklung und Fehlersuche
werden um einiges einfacher. Doch, wie bereits gesagt, die
Konfiguration wird etwas schwieriger.
Alle Treiber sind jetzt Netzwerktreiber
Alle Devices wie PacketTwin, SCC und BayCom usw. bieten jetzt
ein normales Netzwerkinterface an; sie erscheinen den Programmen
wie der Ethernet-Treiber, nicht mehr wie KISS-TNCs. Wer will,
kann mit dem neuen Utility net2kiss ein KISS-Interface auf diese
Devices aufsetzen.
Fehler beseitigt
Viele Fehler wurden beseitigt, neue Eigenschaften wurden
hinzugef�gt. Eine wichtige Erweiterung ist das ROSE-Protokoll.
4.2. Die Tools zur Netzwerkkonfiguration
Nachdem der Kernel kompiliert wurde (und auch startet), sollten die
neuen Netzwerk-Tools kompiliert werden. Sie erlauben Ver�nderungen an
der Konfiguration der Netzwerk-Devices und das Hinzuf�gen von Routen
zur Routing-Tabelle.
Informationen zur derzeit aktuellen Version (net-tools-1.52.tar.gz)
finden sich hier:
http://www.tazenda.demon.co.uk/phil/net-tools/
Die Net-Tools werden von Phil Blundell (
[email protected]) betreut, Bernd
Eckenfels (
[email protected]) ist der "Co-Maintainer". Seine
Net-Tools-Page findet man dieser Adresse:
http://sites.inka.de/sites/lina/linux/NetTools/
4.2.1. Die Standardfassung der Net-Tools erstellen
Nicht vergessen: nach dem Entpacken die Datei Release lesen und den
dort stehenden Anweisungen folgen. Mit folgenden Schritten
installiert man die Net-Tools:
cd /usr/src
tar zxvf /tmp/net-tools-1.52.tar.gz
cd net-tools-1.52
make config
An dieser Stelle werden, �hnlich wie bei der Kernel-Konfiguration,
einige Fragen gestellt. Man mu� nun sicherstellen, alle Protokolle
und Typen von Netzwerk-Devices einzubinden, die genutzt werden sollen.
Fragen, auf die man keine Antwort wei�, sollte man mit �y�
beantworten. Wichtig: Die Protokolle m�ssen vorher auch bei der
Kernel-Konfiguration eingeschaltet worden sein. Hat man zum Beispiel
�AppleTalk� beim Kernel deaktiviert, so darf man die entsprechende
Frage bei den Net-Tools nicht mit �y� beantworten. Beachtet man dies
nicht, so k�nnen die Tools nicht kompiliert werden. Nach beendeter
Kompilierung werden die Programme mit
make install
an passender Stelle installiert.
4.2.2. Ipfwadm und ipchains
Wer die IP-Firewall-M�glichkeiten nutzen will, ben�tigt das aktuelle
Tool ipfwadm zur Administration der Firewalls. Das �ltere Programm
ipfw arbeitet mit den neueren Kernels nicht zusammen und wird daher
durch ipfwadm ersetzt. Folgende Optionen beim Kernel-Kompilieren
m�ssen gesetzt sein:
Networking options
[*] Firewalling
[*] IP Firewalling
Mit folgenden Befehlen wird ipfwadm kompiliert:
cd /usr/src
tar zxvf /tmp/ipfwadm-2.3.0.tar.gz
cd ipfwadm-2.3.0
make install
cp ipfwadm.8 /usr/man/man8
cp ipfw.4 /usr/man/man4
Nutzer eines Kernels der 2.2.x-Reihe ben�tigen an Stelle des ipfwadm
das Programm ipchains. Wenn die Datei /proc/net/ip_fwchains existiert,
dann ist der Kernel mit ipchains funktionsf�hig. Andernfalls mu� er
neu �bersetzt werden; siehe dazu auch das im ipchains-Archiv
enthaltene HOWTO. Das Kompilieren ist auch hier recht einfach:
cd /usr/src
tar zxvf /tmp/ipchains-1.3.9.tar.gz
cd ipchains-1.3.9
make install
Wer diese Pakete bereits in seiner Distribution vorfindet, braucht sie
nat�rlich nicht nochmals zu installieren.
4.3. Die Anwender- und Utilityprogramme zu AX.25
Nachdem der neue Kernel erfolgreich kompiliert und mit diesem neu
gestartet wurde, m�ssen jetzt die Anwenderprogramme kompiliert werden.
Das geht mit folgenden Befehlen:
cd /usr/src
tar zxvf /tmp/ax25-utils-2.1.42a.tar.gz
cd ax25-utils-2.1.42a
make config
make
make install
Debian-Nutzer m�ssen vorher die Verzeichnisse /usr/include/asm und
/usr/include/linux umbenennen und an ihrer Stelle Links auf den
Kernel-Quelltext legen:
cd /usr/include
mv linux linux.debian
mv asm asm.debian
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/asm asm
Man sollte in diesem Zusammenhang kontrollieren, da�
/usr/src/linux/include/asm ein Link auf asm-i386 ist. Die Dateien
werden im Verzeichnis /usr in die Unterverzeichnisse bin, sbin und man
installiert. Werden die AX.25-Utilities zum allerersten Mal
installiert, d.h., sie befanden sich noch nie vorher auf dem System,
so verwendet man auch den Befehl
make installconf
der einige Beispiel-Konfigurationsdateien unter /etc/ax25 installiert,
die als Grundlage f�r die eigene Konfiguration dienen k�nnen.
Erscheinen Bildschirmmeldungen wie
gcc-Wall -Wstrict-prototypes -o2 -I../lib -c call.c
call.c: In funktion `statline':
call.c:268: warning: implicit declaration of function `attron'
call.c:268: `A_REVERSE' undeclared (first use this function)
call.c:268: (Each undeclared identifier is reported only once
call.c:268: for each function it appears in)
sollte man doppelt �berpr�fen, ob das ncurses-Paket installiert ist.
Das Konfigurationsskript versucht, ncurses an den �blichen Stellen zu
finden, doch auf manchen Systemen ist ncurses nicht richtig
installiert und es kann dann das Paket nicht finden. Wer Programme
kompilieren will, die die AX.25-Bibliotheken nutzen, und dabei
Fehlermeldungen erh�lt, kann die Bibliotheken mit
make installib
korrekt installieren.
4.3.1. Hinweis f�r die Benutzer libc6-basierter Systeme (S.u.S.E.
6.0, RedHat 5.2, Debian 2.0...)
Die im vorigen Abschnitt besprochenen AX-25-Utils lassen sich auf
Systemen, die die libc6 bzw. glibc 2.x verwenden, nicht mehr
kompilieren.
Unter folgenden Adressen
� ftp.suse.com:/pub/projects/ham/
� ftp.funet.fi:/pub/ham/unix/Linux/packet/ax25/packages/libc6/rpm
findet man die Pakete
� ax25util-2.1.42a-0.i386.rpm (ftp.suse.com)
� ax25util-2.1.42a-3.i386.rpm (ftp.funet.fi)
� ax25util-devel-2.1.42a-0.i386.rpm (ftp.suse.com)
� ax25util-devel-2.1.42a-3.i386.rpm (ftp.funet.fi)
die zur Verwendung auf den erw�hnten Systemen gedacht sind. Auf
ftp.funet.fi:/pub/ham/unix/Linux/packet/ax25/packages/libc6/deb/
findet sich das Paket ax25-utils_2.1.42a-6.deb f�r die Nutzer der
Debian-Distribution. Da die Pakete bereits vorkompilierte Versionen
der AX-25-Utilities enthalten, ist ein Selbstkompilieren nicht mehr
unbedingt notwendig. Wichtig ist jedoch, auf die korrekte Installation
der Header-Dateien zu achten (ax25util-devel-2.1.42a-0.i386.rpm), da
sich sonst einige AX.25-Anwendungen, wie PR-Terminalprogramme, nicht
kompilieren lassen.
Dem Debian-Paket fehlt das Programm smdiag. Deshalb sollte es nur
eingesetzt werden, wenn kein BayCom- oder SoundModem verwendet werden
soll. Wer dieses Programm ben�tigt, sollte das RPM-Archiv der
AX.25-Utilities ebenso wie das Development-Archiv mit dem Tool alien
nach *.deb konvertieren und mit dpkg installieren.
Eine weitere M�glichkeit stellt das auf der Homepage von Patrick
Ouellette (
[email protected]) verf�gbare Archiv
ax25-utils-2.1.42.kb8pym.tar.gz dar, das Ergebnis von Patricks
Modifikationen ist, die er in dem Patch ax25-utils-2.1.42.kb8pym.diff
zusammengefa�t hat. Dieser Patch sollte mit dem Standardarchiv
ax25-utils-2.1.42a.tar.gz funktionieren. Patrick weist jedoch
ausdr�cklich darauf hin, da� es sich hierbei um Testversionen handelt.
Da zun�chst nur Wert auf Kompilierbarkeit gelegt wurde, sind manche
Programme evtl. nicht funktionsf�hig.
4.3.2. Die aktuellen AX.25-Utilities 0.0.1
Die neue Version der AX.25-Utilities wird erstellt, indem die drei
Archive
� ax25-apps-0.0.2.tar.gz
� ax25-tools-0.0.3.tar.gz
� libax25-0.0.5.tar.gz
in das Verzeichnis /usr/src entpackt und von dort aus installiert
werden:
cd /usr/src
tar -zxvf archivname
cd {archivname ohne die Endung .tar.gz}
./configure
make install
5. Ein Hinweis zu Rufzeichen, Adressen und all diesen Dingen
Jeder AX.25- oder NetROM-Port mu� ein eigenes Rufzeichen/SSID
besitzen. Diese werden in den weiter unten beschriebenen
Konfigurationsdateien eingestellt. Bei manchen AX.25-Implementationen
wie NOS und BPQ kann man jedem AX.25- und NetROM-Port das gleiche
Rufzeichen zuteilen.
Aus etwas komplizierten technischen Gr�nden ist das unter Linux nicht
m�glich. In der Praxis ist das nicht so ein gro�es Problem, wie es
zun�chst scheint. Das bedeutet, da� es einige Dinge gibt, die bei der
Konfiguration beachtet werden m�ssen:
1. Jeder AX.25- und NetROM-Port mu� sein eigenes Rufzeichen/SSID
bekommen.
2. TCP/IP nutzt das Rufzeichen des Ports, �ber den es ausgesendet oder
empfangen wird, d.h., das in Punkt 1. angegebene Rufzeichen.
3. NetROM nutzt das in seiner speziellen Konfigurationsdatei
eingestellte Rufzeichen, dieses wird allerdings nur dann verwendet,
wenn eine Verbindung zu einer anderen NetROM-Station besteht, es
ist nicht das Rufzeichen, welches AX.25-Nutzer verwenden m�ssen,
wenn sie den Node rufen wollen. Mehr dazu sp�ter.
4. ROSE nutzt standardm��ig das Rufzeichen des AX.25-Ports, es sei
denn, es wurde mit dem rsparms-Befehl ein anderes Rufzeichen
eingestellt. Wurde mit rsparms ein Rufzeichen vergeben, dann
verwendet ROSE dieses auf allen (ROSE-)Ports.
5. Andere Programme, wie der ax25d, k�nnen zum Mith�ren jedes
Rufzeichen verwenden, das sie wollen, und diese k�nnen auch f�r
verschiedene Ports genutzt werden.
6. Wenn man das Routing sorgf�ltig einstellt, kann man allen Ports
dieselbe IP-Adresse zuordnen.
5.1. Was bedeuten T1, T2, N2,...?
Nicht jede AX.25-Implementation ist ein TNC2. Linux verwendet eine
Nomenklatur, die etwas anders ist als die von einem TNC gewohnte. In
der folgenden Tabelle sind die einstellbaren Parameter und ihre
Bedeutung aufgelistet, so da� man hier immer wieder nachschlagen kann,
wenn sie im Text erw�hnt werden.
+--------------+--------------+----------+----------------------------------+
| Linux | TAPR TNC | TNC2 | Beschreibung |
+--------------+--------------+----------+----------------------------------+
| T1 | FRACK | F | (Frame Acknowledgement Timer) |
| | | | Gibt an, wie lange gewartet wird,|
| | | | bevor ein unbest�tigtes Paket |
| | | | noch mal ausgesendet wird |
+--------------+--------------+----------+----------------------------------+
| T2 | RESPTIME | @T2 | Minimale Zeit, die auf ein |
| | | | weiteres Paket gewartet wird, |
| | | | bevor Empfangsbest�tigung |
| | | | gesendet wird |
+--------------+--------------+----------+----------------------------------+
| T3 | CHECK | @T3 | Zeit, die gewartet wird, bevor |
| | | | der Link �berpr�ft wird (Polling)|
+--------------+--------------+----------+----------------------------------+
| N2 | RETRY | N | Zahl der Wiederholungen der |
| | | | Aussendung eines Paketes, bevor |
| | | | die Verbindung als zusammen- |
| | | | gebrochen angesehen wird |
+--------------+--------------+----------+----------------------------------+
| Idle | | | Zeit, die eine Verbindung |
| | | | unbenutzt sein darf, bis sie |
| | | | beendet wird (Link Timeout) |
+--------------+--------------+----------+----------------------------------+
| Window | MAXFRAME | O | Maximale Anzahl unbest�tigter |
| | | | Pakete |
+--------------+--------------+----------+----------------------------------+
5.2. Zur Laufzeit konfigurierbare Parameter
In den 2.1.xx-Kernels, den 2.0.xx-Kernels mit Module-xx-Patch und
Kernels ab 2.0.35 lassen sich viele Parameter auch zur Laufzeit
einstellen. Schaut man sich die Dateien unter /proc/sys/net an, so
wird man viele Dateien mit selbsterkl�renden Namen finden, die
verschiedene Parameter der Netzwerkkonfiguration beschreiben. Jedes
der Verzeichnisse unter /proc/sys/net/ax25 repr�sentiert einen
AX.25-Port, wobei dessen Name vom Portnamen abh�ngt. Die folgenden
Dateien sind unter /proc/sys/net/ax25/<portname>/ zu finden:
Dateiname Bedeutung Wert Voreinstellung
-----------------------------------------------------------------------------
ip_default_mode voreingestellter IP- 0=DG 1=VC 0
Modus
ax25_default_mode voreingestellter AX.25- 0=Normal, 0
Modus 1=Erweitert
backoff_type Backoff 0=Linear, 1
1=Exponentiell
connect_mode Verbindungsstatus 0=nein, 1
1=ja
standard_window_size Standard-Maxframe 1 <= O <= 7 2
extended_window_size Erweitertes Maxframe 1 <= O <= 63 32
t1_timeout T1-Timer 1s <=T1<= 30s 10 s
t2_timeout T2-Timer 1s <=T2<= 20s 3 s
t3_timeout T3-Timer 0s <=T3<= 3600s 300 s
idle_timeout Link-Timeout 0min <=idle 20 min
maximum_retry_count Anzahl Retries (N) 1 <= N <= 31 10
maximum_packet_length AX.25-Paketl�nge 1 <=L�nge<= 512 256
-----------------------------------------------------------------------------
In dieser Tabelle sind die Werte f�r T1, T2 und T3 in Sekunden, f�r
den idle-Timer (Link-Timeout) in Minuten angegeben, es mu� aber
beachtet werden, da� die Werte in dem sysctl-Interface in internen
Einheiten gez�hlt werden. Diese entsprechen der Zeit in Sekunden * 10,
so da� eine Schrittweite von 1/10 Sekunde m�glich wird. Bei
Zeitgebern, die einen Wert von 0 erlauben (z.B. T3 und idle), bedeutet
0, da� sie ausgeschaltet sind. In /proc/sys/net/netrom finden sich
folgende Dateien:
Dateiname Wert Voreinstellung
-----------------------------------------------------------------------------
default_path_quality 10
link_fails_count 2
network_ttl_initialiser 16
obsolescence_cont_initialiser 6
routing_control 1
transport_acknowledge_delay 50
transport_busy_delay 1800
transport_maximum_tries 3
transport_requested_window_size 4
transport_timeout 1200
-----------------------------------------------------------------------------
In /proc/sys/net/rose sieht die Struktur so aus:
Dateiname Wert Voreinstellung
-----------------------------------------------------------------------------
acknowledge_hold_back_timeout 50
call_request_timeout 2000
clear_request_timeout 1800
link_fail_timeout 1200
maximum_virtual_circuits 50
reset_request_timeout 1800
restart_request_timeout 1800
routing_control 1
window_size 3
-----------------------------------------------------------------------------
Um einen Parameter einzustellen, mu� man den gew�nschten Wert in die
entsprechende Datei schreiben, um zum Beispiel die Maxframe-Anzahl f�r
ROSE zu pr�fen und einzustellen, geht man so vor:
cat /proc/sys/net/rose/window_size
Bildschirmausgabe: 3
echo 4 > /proc/sys/net/rose/window_size
cat /proc/sys/net/rose/window_size
Bildschirmausgabe: 4
6. Einen AX.25-Port einrichten
Jede der AX.25-Anwendungen liest die Parametereinstellungen f�r die
verschiedenen AX.25-Ports aus einer speziellen Konfigurationsdatei.
F�r reine AX.25-Ports ist dies die Datei /etc/ax25/axports. Sie mu�
f�r jeden auf dem System verwendeten AX.25-Port einen Eintrag
erhalten.
6.1. Das AX.25-Netzwerk-Device erstellen
Das Netzwerk-Device ist das, was aufgelistet wird, wenn man ifconfig
startet. Es sind die Objekte, an die der Linux-Kernel Netzwerkdaten
sendet und von denen er sie empf�ngt. Fast immer ist das Netzwerk-
Device mit einem physikalischen Port verbunden, in manchen Situationen
ist dies aber nicht notwendig. Das Netzwerk-Device steht in direkter
Beziehung zu einem Ger�tetreiber. Der Linux-AX.25-Code enth�lt einige
Ger�tetreiber. Der gebr�uchlichste ist sicher der KISS-Treiber,
weiterhin gibt es noch SCC-Treiber, den BayCom- Treiber und den
SoundModem-Treiber.
Jeder dieser Treiber erzeugt ein Netzwerk-Device, wenn er gestartet
wird. Wichtiger Hinweis f�r Nutzer eines 2.2.x-Kernels: Wird ein
Kernel der 2.2.x-Reihe verwendet, so ist jedem AX.25-Netzwerk-Device
eine IP-Adresse zuzuordnen, auch wenn damit kein TCP/IP gefahren
werden soll. Im einfachsten Fall geschieht das mit ifconfig
{Devicename} {IP-Adresse}:
ifconfig bcsf_0 44.136.8.5 netmask 255.255.255.0 up
6.1.1. KISS
Optionen bei der Kernel-Kompilierung:
General Setup
[*] Networking support
Network Device Support
[*] Network Device Support
...
[*] Radio network interfaces
...
[*] Serial port KISS driver for AX.25
Die h�ufigste Konfiguration ist sicher ein KISS-TNC an der seriellen
Schnittstelle. Dieser mu� vorkonfiguriert und an die Schnittstelle
angeschlossen sein. Der TNC kann mit einem Programm wie Minicom oder
Seyon in den KISS-Modus gebracht werden.
Um ein KISS-Device zu erzeugen, wird das Programm kissattach
verwendet: (Annahmen: TNC h�ngt an /dev/ttyS0 (COM1) und der
vorgesehene Port in /etc/ax25/axports hei�t radio)
/usr/sbin/kissattach /dev/ttyS0 radio
kissparms -p radio -t 100 -s 100 -r 25
Damit wird ein KISS-Netzwerk-Device erzeugt. Diese Devices erhalten
die Namen ax0 - ax9. Beim ersten Aufruf erzeugt kissattach ax0, beim
zweiten ax1 usw..
Jedes Kiss-Device hat eine zugeh�rige serielle Schnittstelle. Mit
kissparms lassen sich verschiedene Parameter des Kiss-Device
einstellen. Das oben dargestellte Beispiel erzeugt ein Kiss-Device,
welches die erste serielle Schnittstelle und den Eintrag �radio� in
der Datei /etc/ax25/axports nutzt. Anschlie�end wird es auf ein
TXDelay und eine Slottime von 100 Millisekunden und einen Persistence-
Wert von 25 eingestellt. Weitere Informationen geben die Hilfeseiten
der einzelnen Programme.
Erscheint die Fehlermeldung
kissattach: TIOCSETD: Invalid argument
so sollte man nochmals pr�fen, ob der Serial port KISS driver auch
wirklich in den Kernel einkompiliert oder als Modul geladen wurde. Der
Treiber kann fest einkompiliert werden (CONFIG_MKISS=y in
/usr/src/linux/config) wenn die AX-25-Unterst�tzung (siehe Abschnitt
``Den Kernel kompilieren'') ebenfalls fest einkompiliert wurde.
Andernfalls mu� er als Modul kompiliert werden, oder die Erstellung
des neuen Kernels w�rde fehlschlagen.
Einrichtung von Dual-Port-TNCs
Das mkiss-Utility, das bei den AX.25-Utilities dabei ist, erlaubt die
Nutzung beider Modems an einem Dual-Port-TNC. Die Konfiguration ist
recht einfach. Der Multiport-TNC wird an eine serielle Schnittstelle
des Rechners angeschlossen. Die anschlie�ende Konfiguration l��t ihn
dann als mehrere einzelne seriell angeschlossene TNCs erscheinen.
Das Ganze mu� vor der AX.25-Konfiguration durchgef�hrt werden. Die
Ger�te, die dann einzurichten sind, sind Pseudo-TTY-Interfaces,
(/dev/ttyq*) und nicht die eigentliche serielle Schnittstelle. Mit
Pseudo-TTY wird eine Art R�hre (Pipe) erzeugt, durch die Programme,
die mit TTY-Ger�ten Daten austauschen, mit anderen Programmen, die
ebenfalls f�r Datenaustausch mit TTY-Ger�ten entwickelt wurden,
kommunizieren k�nnen.
Jede dieser R�hren hat ein �Master�- und ein �Slave�-Ende. Die
�Master�-Enden hei�en /dev/ptyq*, die �Slave�-Enden /dev/ttyq*. Jeder
Master hat einen Slave, /dev/ptyq0 ist also der Master einer Pipe,
deren Slave /dev/ttyq0 ist. Man mu� das �Master�-Ende einer Pipe vor
dem �Slave�-Ende �ffnen. mkiss nutzt diesen Mechanismus, um ein
einzelnes serielles Device auf mehrere virtuelle Devices aufzuteilen.
Hat man z.B. einen Dual-Port-TNC an eine serielle Schnittstelle
/dev/ttyS0 mit 9600 bps angeschlossen, erzeugen die Befehle
/usr/sbin/mkiss -s 9600 /dev/ttyS0 /dev/ptyq0 /dev/ptyq1
/usr/sbin/kissattach /dev/ttyq0 port1
/usr/sbin/kissattach /dev/ttyq1 port2
zwei Pseudo-TTY-Devices, die beide wie ein normaler Single-Port-TNC
erscheinen.
Nun lassen sich /dev/ttyq0 und /dev/ttyq1 wie serielle Schnittstellen
mit daran angeschlossenen konventionellen KISS-TNCs behandeln. Das
hei�t, man verwendet kissattach wie oben beschrieben, f�r die
AX.25-Ports port1 und port2. Auf die serielle Schnittstelle selbst
kann kein kissattach angewendet werden, da mkiss diese ja bereits
nutzt. Der Befehl mkiss kennt einige Optionen:
-c schaltet die Erzeugung einer Pr�fsumme f�r jedes KISS-Paket ein.
Die meisten KISS-Implementationen, au�er dem G8BPG KISS-ROM,
unterst�tzen dies jedoch nicht.
-s <Baudrate> stellt die Baudrate der seriellen Schnittstelle ein.
-h schaltet den Hardware-Handshake ein (Voreinstellung: Aus). Wird
von den meisten KISS-Implementationen nicht unterst�tzt.
-l schaltet eine Mitschrift (logging) in die syslog-Logdatei ein.
6.1.2. BayCom
Folgende Optionen zur Kernel-Kompilierung sind wichtig:
Code maturity level options
[*] Prompt for development and/or incomplete code/drivers
General Setup
[*] Networking support
...
Network Device Support
[*] Radio network interfaces
[*] BAYCOM ser12 and par96 driver for AX.25
F�r erste Tests sollte der Treiber mit �m� als Modul kompiliert
werden. Thomas Sailer (
[email protected]) entwickelte trotz des
weitverbreiteten Glaubens, es w�rde nicht sonderlich gut
funktionieren, eine BayCom-Unterst�tzung f�r Linux.
Sein Treiber unterst�tzt die seriellen Ser12, die parallelen Par96 und
die verbesserten PicPar-Modems. Informationen �ber diese Modems erh�lt
man auf der WWW-Seite des BayCom-Teams unter folgender URL:
http://www.baycom.de
Der erste Schritt ist, herauszufinden, welche I/O-Adresse und IRQ die
Schnittstelle verwendet, an die das BayCom-Modem angeschlossen ist.
Der BayCom-Treiber mu� mit diesen Werten konfiguriert werden. Ist
dies geschehen, erzeugt der Treiber Netzwerk-Devices mit den Namen
bc0, bc1, bc2 usw..
In den Kerneln der 2.2.x-Reihe wurden die Bezeichnungen f�r das
Baycom-Modul und die von ihm erzeugten Devices ge�ndert. Es gibt hier
f�r Half- und Fullduplex getrennte Treiber:
Modul-Name Funktion Device
------------------------------------------------------------------------------
baycom_ser_fdx serielles BayCom-Modem, Fullduplex und bcsf0..bcsf3
Halfduplex, umschaltbar,
w�hlbare Baudrate
baycom_ser_hdx serielles BayCom-Modem, nur Halfduplex, bcsh0..bcsh3
nur 1200 Baud
baycom_par paralleles PicPar- und Par96-Modem, bcp0..bcp3
baycom_epp EPP-Modem bce0..bce3
(Treiber noch in Entwicklung!)
Anstelle von
insmod baycom
schreibt man also
insmod baycom_ser_fdx
und konfiguriert bcsf0 statt bc0.
Das sieht dann z.B. so aus:
insmod baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4
sethdlc -i bcsf0 -p mode "ser12*" io 0x3f8 irq 4
Ausf�hrlichere Informationen zu den neuen Treibern k�nnen in der Datei
/usr/src/linux/Documentation/networking/baycom.txt nachgelesen werden.
Die Parameter der verwendeten Schnittstelle k�nnen mit dem Utility
sethdlc eingestellt werden, hat man nur ein BayCom-Modem installiert,
so kann man die Parameter auf der Kommandozeile f�r insmod angeben,
wenn der als Modul eingerichtete Treiber geladen wird.
Als Beispiel eine einfache Konfiguration. Zun�chst wird der normale
serielle Treiber f�r die erste Schnittstelle (COM1) abgeschaltet, dann
der BayCom-Treiber f�r ein serielles 1200-Baud-Modem an COM1
eingerichtet und die Software-DCD eingeschaltet:
setserial /dev/ttyS0 uart none
insmod hdlcdrv
insmod baycom mode="ser12*" iobase=0x3f8 irq=4
Wichtig: Einige Schnittstellenbausteine bereiten Probleme im
Zusammenhang mit dem BayCom-Treiber. Dieser wird zwar geladen, kann
aber nicht auf die Schnittstelle zugreifen. Dies betrifft insbesondere
viele der neueren 16550A-UARTs, wie sie auf Pentium-Motherboards oft
eingebaut sind. Benutzer eines Kernel 2.2.x k�nnen in einem solchen
Fall an Stelle von baycom_ser_fdx baycom_ser_hdx probieren, da dieser
Treiber in anderer Weise auf die Hardware zugreift.
Wer nun keine zus�tzliche Schnittstellenkarte mit 8250 oder 16450 UART
vorsehen will, der sollte vor die erste setserial-Zeile des Beispiels
einf�gen:
setserial /dev/ttyS0 uart 16550A skip_test
Weiterhin st�rt der Linux-Treiber f�r die parallele Schnittstelle die
korrekte Funktion des BayCom-Treibers. Man sollte daher auf den
�parallel printer support� im Kernel verzichten oder diesen als Modul
kompilieren, damit er bei Notwendigkeit via rmmod entfernt werden
kann:
rmmod lp
Das komplette Skript sieht dann etwa so aus:
#!/bin/sh
rmmod lp
setserial /dev/ttyS0 uart 16550A skip_test
sleep 3
setserial /dev/ttyS0 uart none
insmod hdlcdrv
insmod baycom mode="ser12*" iobase=0x3f8 irq=4
Damit sollte der Treiber funktionieren, was man mit sethdlc -d einfach
nachpr�fen kann. Der Wert hinter dbg2 sollte etwa 2000-3000 sein und
sich st�ndig �ndern. Die Probleme mit dem Schnittstellenbaustein sind
ausschlie�lich auf Schwierigkeiten des Linux-BayCom-Treibers bei der
Hardwareinitialisierung zur�ckzuf�hren und deshalb von der
eingesetzten Modemschaltung weitestgehend unabh�ngig. F�r den Test mit
sethdlc braucht das Modem nicht angeschlossen zu sein.
Ein Par96-Modem am Parallelport LPT1 mit Hardware-DCD richtet man so
ein:
insmod hdlcdrv
insmod baycom mode="par96" iobase=0x378 irq=7 options=0
Dies ist aber nicht unbedingt der beste Weg. sethdlc arbeitet genau
so gut mit einem Modem wie mit mehreren. In der Hilfeseite (man
sethdlc) findet man alle Details, einige Beispiele sollen diesen
Aspekt hier verdeutlichen. Es wird angenommen, das BayCom-Modul ist
mit
insmod hdlcdrv
insmod baycom
bereits geladen oder als Treiber in den Kernel einkompiliert. Man kann
das Netzwerk-Device bc0 nun einrichten:
� als Parallelport-Modem an LPT1 mit Software-DCD:
sethdlc -p -i bc0 mode par96 io 0x378 irq 7
� als serielles Modem an COM1:
sethdlc -p -i bc0 mode "ser12*" io 0x3f8 irq 4
6.1.2.1. AX.25-Kanalzugriffsparameter
Die AX.25-Kanalzugriffsparameter entsprechen den Parametern ppersist,
txdelay und slottime. Wiederum wird dazu sethdlc verwendet. Genaueres
steht wiederum in der Hilfeseite, aber ein weiteres Beispiel kann
nicht schaden. Wir setzen also das oben begonnene Skript fort, indem
wir den BayCom-Treiber mit TXDelay 200 ms, SlotTime 100 ms PPersist 40
und Half-Duplex einrichten:
sethdlc -i bc0 -a txd 200 slot 100 ppersist 40 half
Alle Zeitwerte werden in Millisekunden angegeben.
Die AX.25-Unterst�tzung des Kernels f�r die Nutzung des BayCom-Device
einrichten
Der BayCom-Treiber erzeugt Standard-Netzwerk-Devices, die der Kernel-
AX.25-Code nutzen kann. Damit ist die Konfiguration fast dasselbe wie
bei einer PI- oder PacketTwin-Karte. Zun�chst gibt man dem BayCom-
Device ein Rufzeichen:
/sbin/ifconfig bc0 hw ax25 VK2KTJ up
Einige Versionen von ifconfig unterst�tzen den eben angegebenen Weg
nicht. Man kann dann so vorgehen:
/sbin/ifconfig bc0 up
axparms -setcall bc0 VK2KTJ up
Als n�chstes wird in der Datei /etc/ax25/axports ein Eintrag f�r
BayCom hinzugef�gt. Die Verbindung des Eintrags zum entsprechenden
Netzwerk-Device geschieht �ber das eingestellte Rufzeichen.
Verwendet ein Programm den Eintrag mit dem f�r BayCom vergebenen
Rufzeichen, so wird das BayCom-Device angesprochen. Das neue
AX.25-Device kann nun ganz normal verwendet werden, es l��t sich f�r
TCP/IP einrichten, man kann es dem ax25d hinzuf�gen und NetROM oder
ROSE dar�ber laufen lassen.
6.1.3. SoundModem
Folgende Optionen bei der Kernel-Kompilierung sind wichtig:
Code maturity level options
[*] Prompt for development and/or incomplete code/drivers
General Setup
[*] Networking support
Network Device Support
[*] Radio network interfaces
...
[*] Soundcard modem driver for AX.25
[?] Soundmodem support for Soundblaster and compatible cards
[?] Soundmodem support for WSS and Crystal cards
[?] Soundmodem support for 1200 baud AFSK modulation
[?] Soundmodem support for 2400 baud AFSK modulation (7.3728 MHz crystal)
[?] Soundmodem support for 2400 baud AFSK modulation (8 MHz crystal)
[?] Soundmodem support for 2666 baud AFSK modulation
[?] Soundmodem support for 4800 baud HAPN-1 modulation
[?] Soundmodem support for 4800 baud PSK modulation
[?] Soundmodem support for 9600 baud FSK G3RUH modulation
Thomas Sailer (
[email protected]) entwickelte einen neuen Treiber
f�r den Kernel, mit dem man die Soundkarte als Modem nutzen kann.
Schlie�t das Funkger�t an die Soundkarte an, um damit Packet zu
spielen! Thomas empfiehlt mindestens einen 486DX2/66, wenn man diese
Software verwenden will, da die gesamte digitale Signalverarbeitung
von der CPU �bernommen wird.
Der Treiber kann im Moment 1200 bps AFSK, 2400 bps AFSK, 4800 bps
HAPN, 4800 bps PSK und 9600bps FSK (G3RUH-kompatibel) emulieren. Zur
Zeit werden nur SoundBlaster- und Windows Sound System-kompatible
Karten unterst�tzt. Da die Soundblaster-Emulation inzwischen selbst
bei Billig-Karten recht gut geworden ist, lohnt sich ein Test in jedem
Fall. Soundkarten, die vom Linux-Sound-Treiber nicht unterst�tzt
werden, sollten unter DOS initialisiert werden. Dazu startet man ein
Minimal-DOS, in dessen Konfigurationsdateien lediglich die
Soundkartentreiber aufgerufen werden, und l�dt anschlie�end Linux via
LOADLIN. PCI-Soundkarten (z.B. SoundBlaster PCI64) werden derzeit
noch nicht unterst�tzt.
Die Soundkarten ben�tigen eine kleine Zusatzschaltung zur Ansteuerung
der PTT, Informationen dazu findet man auf Thomas Soundmodem-PTT-
Seite:
<htmlurl url="
http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html"
name="
http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html">
Es gibt einige M�glichkeiten f�r die PTT-Schaltung: die Soundausgabe
von der Karte auswerten oder die Ausgabe von der seriellen, parallelen
oder MIDI- Schnittstelle zu nutzen. Die Webseite bietet f�r jede
Option Beispielschaltungen.
Wer die �2400 baud� Betriebsarten nutzen will, beachte eine kleine
Besonderheit: Urspr�nglich kam man auf 2400 baud, indem man den
herk�mmlichen 1200 baud-Modems auf der Basis des TCM3105 (siehe dazu
auch
http://www.ardos.de/gerd/tcm3105.html) einen Quarz mit h�herer
Frequenz verpa�te. Zwei Quarzfrequenzen sind �blich: 7.3728 und 8.0
MHz. Bevor man sich f�r eine davon entscheidet, sollte man in
Erfahrung bringen, womit die Gegenstationen arbeiten, da die Wahl der
falschen Frequenz die Verbindung stark beeintr�chtigen bzw. unm�glich
machen kann. Der SoundModem-Treiber erzeugt Netzwerk-Devices mit Namen
sm0, sm1, sm2 usw., wenn er eingerichtet wurde.
Der SoundModem-Treiber beansprucht die gleichen Ressourcen wie Linux-
Sound- und Parallelport-Treiber. Wenn man also den SoundModem-Treiber
verwenden m�chte, d�rfen sowohl der Linux-Sound-Treiber als auch der
Treiber f�r die parallele Schnittstelle nicht geladen sein. Nat�rlich
lassen sich all diese als Module kompilieren, so da� sie mit insmod
und rmmod nach Belieben geladen und entfernt werden k�nnen.
Einige OMs laden zuerst den Linux-Sound-Treiber, um die Soundkarte zu
initialisieren, enfernen diesen dann wieder und laden dann den
SoundModem- Treiber:
(rmmod lp)
insmod sound (evtl. Optionen)
rmmod sound
insmod hdlcdrv
insmod soundmodem (evtl. Optionen, dazu sp�ter)
6.1.3.1. Die Soundkarte einrichten
Der SoundModem-Treiber initialisiert die Soundkarte nicht. In den
AX.25-Utilities ist zu diesem Zweck das Programm setcrystal enthalten,
welches f�r Soundkarten mit dem Crystal-Chipset verwendet werden kann.
Wer eine andere Karte hat, mu� andere Software zum Initialisieren
verwenden. Die Syntax von setcrystal:
setcrystal [-w wssio] [-s sbio] [-f synthio] [-i irq] [-d dma] [-c dma2]
Will man eine SoundBlaster auf I/O-Adresse 0x388, IRQ 10 und DMA 1
einrichten, so verwendet man:
setcrystal -s 0x388 -i 10 -d 1
Ein Windows-Sound System konfiguriert man so auf IO-Adresse 0x534, IRQ
5, DMA 3:
setcrystal -w 0x534 -i 5 -d 3
Mit �-f synthio� kann man die Adresse des Synthesizers einstellen, mit
�-c dma2� richtet man den zweiten DMA-Kanal f�r Vollduplexbetrieb ein.
6.1.3.2. Den SoundModem-Treiber konfigurieren
Nachdem die Soundkarte eingerichtet ist, mu� man dem SoundModem-
Treiber mitteilen, wo sich die Soundkarte befindet und welche Art von
Modem emuliert werden soll. Diese Einstellungen k�nnen mit sethdlc
vorgenommen werden, ebenso k�nnen die erforderlichen Parameter dem
SoundModem-Modul auf der insmod-Kommandozeile mitgegeben werden.
Als Beispiel eine einfache Konfiguration f�r eine SoundBlaster, die
ein 1200 bps-Modem emuliert:
insmod hdlcdrv
insmod soundmodem mode="sbc:afsk1200" iobase=0x220 irq=5 dma=1
Aber es geht auch genau so gut mit sethdlc, das sowohl mit einer Karte
als auch mit mehreren funktioniert: Zun�chst mu� auch hier das Modul
geladen
insmod hdlcdrv
insmod soundmodem
oder die SoundModem-Unterst�tzung in den Kernel einkompiliert sein.
Wir richten damit beispielsweise das schon oben konfigurierte Windows
Sound System ein, da� es ein 9600-bps-FSK-Modem nach G3RUH als Device
sm0 emuliert und einen Parallelport an 0x378 zur Ansteuerung der PTT
nutzt:
sethdlc -p -i sm0 mode wss:fsk9600 io 0x534 \
irq 5 dma 3 pario 0x378
Die in Punkt 6.1.3.1. erw�hnte SoundBlaster einrichten, da� sie als
Device sm1 ein 4800 bps-HAPN-Modem emuliert und eine serielle
Schnittstelle an 0x2f8 zur PTT-Ansteuerung nutzt:
sethdlc -p -i sm1 mode sbc:hapn4800 io 0x388 irq 10 dma 1 serio 0x2f8
...als 1200-bps-AFSK-Modem mit PTT �ber serielle Schnittstelle an
0x2f8:
sethdlc -p -i sm1 mode sbc:afsk1200 io 0x388 irq 10 dma 1 serio 0x2f8
Die Konfiguration der Kanalzugriffsparameter erfolgt analog dem bei
BayCom Gesagten.
Das Device sm0 soll ein TXDelay von 100ms, eine Slottime von 50ms,
eine Ppersist (Persistence) von 128 und full-Duplex-Betrieb fahren:
sethdlc -i sm0 -a txd 100 slot 50 ppersist 120 full
Alle Werte sind auch hier in Millisekunden anzugeben.
6.1.3.3. Die Audiopegel einstellen und den Treiber feinabstimmen
Es ist f�r die Funktion jedes Funkmodems sehr wichtig, da� die
Audiopegel korrekt eingestellt sind. Dies gilt ebenso f�r das
SoundModem. Thomas Sailer hat einige Utilities entwickelt, die diese
Aufgabe erleichtern. Es sind die Programme smdiag und smmixer. smdiag
bietet zwei Anzeigearten, einmal als Oszilloskop, zum zweiten als
Augenmuster an. Mit smmixer kann man die Sende- und Empfangspegel
abgleichen.
Um smdiag im �Augen-Modus� f�r das SoundModem-Device sm0 zu starten:
smdiag -i sm0 -e
smmixer wird f�r sm0 so gestartet:
smmixer -i sm0
Beide Programme zeigen die aktuellen Einstellungen f�r die Pegel an
den Aus- und Eing�ngen der Karte an. Um diese zu ver�ndern, gibt es
zwei Wege:
1. (bei von Linux unterst�tzten Karten): Man besorge sich ein
Mixerprogramm - es finden sich einige auf
sunsite.unc.edu:/pub/Linux/apps/sound/mixers
- und stelle damit die Werte ein. G�nstig sind kommandozeilenorien�
tierte Programme wie cmix, da sie in das Startskript eingebunden wer�
den k�nnen und so immer die gleichen Einstellungen gegeben sind.
2. bei nicht von Linux unterst�tzten Soundkarten, die �ber DOS-Treiber
initialisiert werden m�ssen, sollte man das der Karte meist
beiliegende Mixer-Utility f�r DOS nutzen. Dies trifft auf einen
Gro�teil der Onboard-Soundkarten zu. Siehe dazu auch das Sound
HOWTO.
6.1.3.4. Die AX.25-Unterst�tzung des Kernels f�r die
Nutzung des SoundModem-Device einrichten
Der SoundModem-Treiber erzeugt Standard-Netzwerk-Devices, die der
Kernel-AX.25-Code nutzen kann. Damit ist die Konfiguration mit der
eines BayCom-Modems, einer PI- oder PacketTwin-Karte vergleichbar.
Zun�chst gibt man dem SoundModem-Device ein Rufzeichen:
/sbin/ifconfig sm0 hw ax25 VK2KTJ up
Einige Versionen von ifconfig unterst�tzen den eben angegebenen Weg
nicht. Dann kann man so vorgehen:
/sbin/ifconfig sm0 up
axparms -setcall sm0 VK2KTJ up
Als n�chstes wird in der Datei /etc/ax25/axports ein Eintrag f�r
SoundModem hinzugef�gt. Die Verbindung des Eintrags zum entsprechenden
Netzwerk-Device geschieht �ber das eingestellte Rufzeichen. Verwendet
ein Programm den Eintrag mit dem f�r SoundModem vergebenen Rufzeichen,
so wird das SoundModem-Device angesprochen.
Das neue AX.25-Device kann nun ganz normal verwendet werden, es l��t
sich f�r TCP/IP einrichten, man kann es dem ax25d hinzuf�gen und
NetROM oder ROSE dar�ber laufen lassen.
Erscheinen Fehlermeldungen beim Aufruf von ifconfig wie diese
no such device
permission denied
sollte man die Konfigurationsoptionen (I/O-Adresse, IRQ, DMA) nochmals
�berpr�fen.
6.1.4. PI-Karte
Folgende Optionen sind bei der Kernel-Kompilierung wichtig:
General Setup
[*] Networking support
Network Device Support
...
[*] Radio network interfaces
...
[*] Ottawa PI and PI/2 support for AX.25
Der Treiber erzeugt Netzwerk-Devices mit den Namen pi0, pi1, pi2 usw.,
wobei die erste PI-Karte als pi0 angesprochen wird, die zweite als pi1
etc.. Wurde der Treiber in den Kernel kompiliert und hat er die Karte
korrekt erkannt, l��t er sich einrichten:
/sbin/ifconfig pi0a hw ax25 VK2KTJ up
Damit wird die erste PI-Karte mit dem Rufzeichen VK2KTJ konfiguriert
und aktiviert. Nun mu� noch der entsprechende Eintrag in
/etc/ax25/axports erfolgen, und es kann losgehen. Der PI-Karten-
Treiber wurde von David Perry (
[email protected]) geschrieben.
6.1.5. PacketTwin
Folgende Optionen beim Kernelkompilieren:
General Setup
[*] Networking support
Network Device Support
...
[*] Radio network interfaces
...
[*] Gracilis PacketTwin support for AX.25
Der Treiber erzeugt Netzwerk-Devices mit den Namen pt0, pt1, pt2 usw.,
wobei die erste PacketTwin-Karte als pt0 angesprochen wird, die zweite
als pt1 etc.. Wurde der Treiber in den Kernel kompiliert und hat er
die Karte korrekt erkannt, l��t er sich einrichten:
/sbin/ifconfig pt0a hw ax25 VK2KTJ up
Damit wird die erste PacketTwin-Karte mit dem Rufzeichen VK2KTJ
konfiguriert und aktiviert. Nun mu� noch der entsprechende Eintrag in
/etc/ax25/axports erfolgen, und es kann losgehen. Der PacketTwin-
Treiber wurde von Craig Small (
[email protected])
geschrieben.
6.1.6. SCC, allgemein
Wichtige Kernel-Kompilier-Optionen:
General Setup
[*] Networking support
Network Device Support
...
[*] Radio network interfaces
...
[*] Z8530 SCC KISS emulation driver for AX.25
Joerg Reuter, DL1BKE (
[email protected]) entwickelte die
allgemeine Unterst�tzung f�r SCC-Karten. Sein Treiber ist f�r eine
Vielzahl Karten konfigurierbar und stellt wie die anderen Netzwerk-
Device zur Verf�gung, so da� man die SCC-Karte wie eine Netzwerkkarte
ansprechen kann.
6.1.6.1. Die Konfigurations-Tools finden und installieren
W�hrend der Kernel-Treiber in den Standard-Quelltexten enthalten ist,
gibt es bei Joerg neuere Versionen seines Treibers und die dazu
notwendigen Konfigurationsprogramme. Diese findet man hier:
� ftp.tu-dresden.de:/pub/soft/hamradio/packet/tcpip/linux/
�
ftp://ftp.ucsd.edu/hamradio/packet/tcpip/linux
Es gibt verschiedene Versionen, man mu� sich die f�r seinen Kernel
passende heraussuchen.
Kernel 2.0.x:
z8530drv-2.4a.dl1bke.tar.gz
Kernel 2.1.6 oder neuer:
z8530drv-utils-3.0.tar.gz
Mit folgenden Befehlen l��t sich das Paket installieren:
cd /usr/src gzip -dc /tmp/z8530drv-2.4a.dl1bke.tar.gz | tar xvpofz -
cd z8530drv
make clean
make dep
make module (wenn der Treiber als Modul erstellt werden soll)
make for_kernel (wenn der Treiber in den Kernel einkompiliert werden soll)
make install
Nach dem erfolgreichen Kompilieren sollten sich drei neue Programme im
Verzeichnis /sbin finden: gencfg, sccinit und sccstat. Diese Programme
dienen zur Einrichtung des Treibers f�r die SCC-Karte. Der Treiber
erzeugt Netzwerkdevices mit den Namenn scc0 - scc7. Hat man vorhin
make for_kernel eingegeben, so mu� der Kernel neu kompiliert werden.
Die Option
[*] Z8530 SCC KISS emulation driver for AX.25
beim �Network Device Support� mu� angegeben sein. Hat man sich
entschieden, den Treiber als Modul zu kompilieren (make module), so
wurde ein Modul namens scc.o in das entsprechende Verzeichnis
/lib/modules/{kernelversion}/net kopiert, welches mit insmod geladen
werden kann.
6.1.6.2. Den Treiber f�r die verwendete Karte einrichten
Der Z8530-SCC-Treiber ist so flexibel entwickelt worden, da� er
m�glichst viele verschiedene SCC-Karten unterst�tzt. Der Preis daf�r
ist eine etwas kompliziertere Konfiguration. In dem Treiber-Archiv
findet sich eine ausf�hrliche Dokumentation, wer Probleme hat, sollte
diese lesen.
Insbesondere doc/scc_eng.doc bzw. doc/scc_ger.doc bieten
detailliertere Informationen, die nicht in diesem HOWTO enthalten
sind. Das Programm sccinit liest die Datei /etc/z8530drv.conf als
Haupt-Konfigurationsdatei aus. Sie ist in zwei gro�e Abschnitte
gegliedert, Hardware-Parameter und Kanal-Konfiguration. Nachdem diese
Datei entsprechend editiert wurde, mu� nur der Aufruf sccinit in das
Skript, welches die Netzwerkkonfiguration w�hrend des Systemstarts
vornimmt, eingetragen werden. Der Treiber l��t sich erst nach einem
Aufruf von sccinit nutzen.
6.1.6.2.1. Konfiguration der Hardware-Parameter
Der erste Abschnitt ist in Abs�tze unterteilt, von denen jeder einen
Z8530-Chip repr�sentiert. Jeder Absatz besteht aus einer Liste mit
Schl�sselw�rtern und den zugeordneten Werten. Standardm��ig lassen
sich bis zu 4 SCC-Chips angeben. Wer mehr braucht, mu� in der Datei
scc.c die Zeile
#define MAXSCC 4
entsprechend anpassen. Erlaubte Schl�sselworte und Argumente:
chip
Wird verwendet, um die einzelnen Abschnitte voneinander zu
trennen. Beliebige Argumente sind erlaubt, sie werden nicht
verwendet.
data_a
Wird zur Angabe der Adresse des Datenports f�r den SCC-Kanal �A�
verwendet. Argument ist eine Hexadezimalzahl, zum Beispiel
0x300.
ctrl_a
Wird zur Angabe der Adresse des Steuerports f�r den SCC-Kanal
�A� verwendet. Argument ist eine Hexadezimalzahl, zum Beispiel
0x304.
data_b
Wird zur Angabe der Adresse des Datenports f�r den SCC-Kanal �B�
verwendet. Argument ist eine Hexadezimalzahl, zum Beispiel
0x301.
ctrl_b
Wird zur Angabe der Adresse des Steuerports f�r den SCC-Kanal
�B� verwendet. Argument ist eine Hexadezimalzahl, zum Beispiel
0x305.
irq
Gibt den IRQ an, den der in diesem Abschnitt einzustellende Chip
verwendet. Argument ist eine Integerzahl, wie 5.
pclock
Gibt die am PCLK-Pin des Z8530 anliegende Taktfrequenz an. Als
Argument wird ein Integerwert erwartet (Frequenz in Hz),
Voreinstellung ist 4915200 Hz, wenn dieses Schl�sselwort nicht
angegeben wird.
board
Der Typ der 8530-SCC-Karte. Folgende Werte sind erlaubt:
PA0HZP
die PA0HZP-SCC-Karte
EAGLE
die EAGLE-SCC-Karte
PRIMUS
die PRIMUS-PC (DG9BL-)Karte
BAYCOM
die BayCom-(U)SCC-Karte
escc
Optional, schaltet die Unterst�tzung f�r erweiterte SCC-Chips
(ESCC) wie den 8580, 85180 oder 85280 ein. Als Argument steht
entweder das Wort yes oder no. Voreinstellung ist no.
vector
Optional, gibt die Adresse des Vector-Latch (auch als Intack-
Port bekannt) f�r die PA0HZP-Karten an. Es gibt nur ein Vector-
Latch f�r alle Chips. Voreinstellung: 0.
special
Optional, gibt die Adresse eines speziellen Funktionsregisters
f�r manche Karten an. Voreinstellung: 0.
Einige Beispielkonfigurationen:
BayCom USCC
chip 1
data_a 0x300
ctrl_a 0x304
data_b 0x301
ctrl_b 0x305
irq 5
board BAYCOM
# # SCC Chip2 #
chip 2
data_a 0x302
ctrl_a 0x306
data_b 0x303
ctrl_b 0x307
board BAYCOM
PA0HZP SCC-Karte
chip 1
data_a 0x153
data_b 0x151
ctrl_a 0x152
ctrl_b 0x150
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
# # SCC Chip2 #
chip 2
data_a 0x157
data_b 0x155
ctrl_a 0x156
ctrl_b 0x154
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
DRSI-SCC-Karte
chip 1
data_a 0x303
data_b 0x301
ctrl_a 0x302
ctrl_b 0x300
irq 7
pclock 4915200
board DRSI
escc no
Bei wem die Karte bereits unter NOS funktioniert, der kann die
Treiber-Befehle des PE1CHL-NOS-Treibers mit dem Befehl gencfg in eine
f�r die Konfigurationsdatei des Z8530-Treibers nutzbare Form bringen.
gencfg wird genau so wie f�r den PE1CHL-Treiber von NOS aufgerufen:
Zum Beispiel erstellt
gencfg 2 0x150 4 2 0 1 0x168 9 4915200
eine Grundkonfiguration f�r die OptoSCC-Karte.
6.1.6.3. Kanal-Konfiguration
Im Abschnitt Kanal-Konfiguration werden alle anderen f�r den
jeweiligen Port relevanten Parameter eingestellt. Auch dieser
Abschnitt ist in einzelne Abs�tze unterteilt. Jeder dieser Abs�tze
steht f�r einen logischen Port, da jede SCC-Karte zwei Ports
bereitstellt, gibt es f�r jeden Hardware-Absatz zwei solcher Abs�tze.
Die dazu notwendigen Schl�sselworte und Werte m�ssen in der Datei
/etc/z8530drv.conf immer nach dem Abschnitt mit den Hardware-
Parametern stehen. Die Reihenfolge in diesem Abschnitt ist sehr
wichtig, mit der hier vorgeschlagenen Reihenfolge sollte es
funktionieren.
Folgende Schl�sselw�rter und Werte gibt es hier:
device
Mu� in der ersten Zeile einer Port-Definition stehen und gibt
den Namen der speziellen Ger�tedatei an, auf die sich die
weitere Konfiguration bezieht, z.B. scc0.
speed
Gibt die �bertragungsrate in Bits pro Sekunde an, mu� ganzzahlig
sein, z.B. 1200.
clock
Gibt an, aus welcher Quelle der Datentakt stammt.
Erlaubte Werte sind:
dpll
normaler Halbduplexbetrieb
external
Das Modem hat einen eigenen Sende-/Empfangstakt
divider
verwendet den Fullduplex-Teiler, wenn installiert
mode
Gibt die zu verwendende Datenkodierung an. M�gliche Werte sind
nrz und nrzi.
rxbuffers
Gibt die Anzahl der im Speicher zu reservierenden Empfangs-
puffer vor. Der Wert ist ganzzahlig, z.B. 8.
txbuffers
Gibt die Anzahl der im Speicher zu reservierenden Sende- puffer
vor. Der Wert ist ganzzahlig, z.B. 8.
bufsize
Gibt die Gr��e der Sende-/Empfangspuffer vor. Der Wert wird in
Bytes angegeben und stellt die Gesamtl�nge eines Paketes dar, es
mu� also die L�nge der AX.25-Header zum Datenfeld hinzugerechnet
werden. Dieses Schl�sselwort ist optional, die Voreinstellung
384.
txdelay
Das von KISS bekannte TXDelay, der Wert ist ganzzahlig und wird
in Millisekunden angegeben.
persist
Der Wert f�r die Persistence, ganzzahlig.
slot
KISS-Slottime, ganzzahlig, in Millisekunden.
tail
Der TXTail-Wert bei KISS, ganzzahlig, in Millisekunden.
fulldup
Das bei KISS verwendete Fullduplex-Flag, Wert ist entweder 1 f�r
Vollduplex oder 0 f�r Halbduplex.
wait
Der Wait-Wert bei KISS, ganzzahlig, in Millisekunden.
min
Der Min-Wert bei KISS, ganzzahlig, in Sekunden.
maxkey
Die maximale Sendezeit bei KISS ganzzahlig, in Sekunden.
idle
Der Idle-Timer-Wert, ganzzahlig, in Sekunden.
maxdef
Der Maxdef-Wert bei Kiss, ganzzahlig.
group
Der group-Wert bei KISS, ganzzahlig.
txoff
Der txoff-Wert bei Kiss, ganzzahlig, in Millisekunden.
softdcd
Der Wert f�r SoftDCD (Software-Rauschsperre), ganzzahlig.
slip
Das Slip-Flag bei KISS, ganzzahlig.
6.1.6.4. Den Treiber verwenden
Man verwendet die scc*-Ger�te wie andere Netzwerk-Devices auch.
Beispiel:
/sbin/ifconfig scc0 44.136.8.5 netmask 255.255.255.0
/sbin/ifconfig scc0 up
axparms -setcall scc0 VK2KTJ up
6.1.6.5. Die Programme sccstat und sccparam
Bei der Fehlersuche kann das Programm sccstat helfen, indem man damit
die aktuelle Konfiguration eines SCC-Device anzeigen lassen kann.
Aufruf zum Beispiel mit:
sccstat scc0
Es werden viele Informationen zur Einstellung und Funktion des SCC-
Ports scc0 angezeigt.
Mit dem Programm sccparam kann man nach dem Booten die Konfiguration
ver�ndern. Die Syntax ist an den NOS-Befehl param angelehnt, zum
Setzen des TXTail-Wertes auf 100 ms w�rde man eingeben:
sccparam scc0 txtail 0x8
6.1.7. BPQ-Ethernet
Folgende Optionen sind bei der Kernel-Kompilierung wichtig:
General Setup
[*] Networking support
Network Device Support
...
[*] Radio network interfaces
...
[*] BPQ Ethernet driver for AX.25
Linux bietet Kompatibilit�t mit BPQ-Ethernet. Damit kann man das
AX.25-Protokoll �ber Ethernet im lokalen Netzwerk verwenden, um mit
anderen BPQ-Maschinen im Netzwerk zusammenzuarbeiten. Die BPQ-Devices
tragen die Namen bpq1 bis bpq9. Das Device bpq0 geh�rt zu eth0, bpq1
zu eth1 usw.. Die Konfiguration ist sehr offen.
Zun�chst mu� das Ethernet-Device eingerichtet sein. Das hei�t, der
Kernel mu� mit Ethernet-Unterst�tzung kompiliert sein und diese mu�
auch funktionieren. Im Ethernet HOWTO findet man dazu weiterf�hrende
Informationen.
Um die BPQ-Unterst�tzung einzurichten, mu� das Ethernet-Device mit
einem Rufzeichen versehen werden:
/sbin/ifconfig bpq hw ax25 VK2KTJ up
Beachte, da� das Rufzeichen mit dem Rufzeichen in der Datei
/etc/ax25/axports �bereinstimmt, das f�r diesem Port gelten soll.
6.1.8. BPQ-Node mit Linux-AX.25-Unterst�tzung verbinden
BPQ verwendet normalerweise sogenannte Multicast-Adressen. Die Linux-
Implementation macht das nicht, sie verwendet stattdessen die normale
Ethernet Broadcast Address. Deshalb sollte die Datei NET.CFG f�r den
BPQ-ODI-Treiber wie folgt ge�ndert werden:
LINK SUPPORT
MAX STACKS 1
MAX BOARDS 1 LINK
DRIVER NE2000 ; oder anderer Bezeichner, passend zur Karte
INT 10 ; entsprechend den Einstellungen der
PORT 300 ; Netzwerkkarte
FRAME ETHERNET_II
PROTOCOL BPQ 8FF ETHERNET_II ; f�r BPQ erforderlich - kann die PID
; ver�ndern
BPQPARAMS ; optional, nur gebraucht, wenn
; die voreingestellte Zieladresse
; �berschrieben werden soll
ETH_ADDR FF:FF:FF:FF:FF:FF ; Zieladresse
6.2. Die Datei /etc/ax25/axports
Diese Datei ist eine einfache Textdatei, die mit einem Texteditor
erzeugt wird. Sie hat folgendes Format:
Portname Rufzeichen Baudrate Paketl�nge Maxframe Beschreibung
wobei gilt:
Portname
Bezeichner f�r den Port
Rufzeichen
Rufzeichen, welches dem Port zugeordnet werden soll
Baudrate
Baudrate zum TNC
Paketl�nge
L�nge des Datenfeldes eines Paketes in Bytes
Maxframe
maximale Anzahl unbest�tigter Pakete (AX.25-Window)
Beschreibung
kurzer beschreibender Text
Beispieldatei von Terry Dawson:
radio VK2KTJ-15 4800 256 2 4800 bps auf 144.800 MHz
ether VK2KTJ-14 10000000 256 2 BPQ Ethernet-Device
Zur Erinnerung: Jeder AX.25-Port mu� ein eigenes Rufzeichen/SSID
bekommen. Jedes zu verwendende Device mu� einen Eintrag in dieser
Datei bekommen, dies betrifft KISS, BayCom, SCC, PI, PacketTwin und
SoundModem-Ports. Jeder Eintrag beschreibt genau ein AX.25-Netzwerk-
Device. Die Eintr�ge in der Datei sind mit den Netzwerk-Devices �ber
das Rufzeichen/SSID verbunden. Das ist nicht zuletzt ein Grund daf�r,
da� jeder Port ein eigenes Rufzeichen/SSID verlangt.
6.3. Das AX.25-Routing einrichten
Es ist sowohl f�r normale AX.25- als auch f�r IP-Verbindungen
sinnvoll, voreingestellte Digipeaterpfade f�r spezielle Stationen zu
erstellen. Dazu kann man das Programm axparms verwenden:
/usr/sbin/axparms -route add radio VK2XLZ VK2SUT
Mit diesem Befehl setzt man einen Digipeaterpfad f�r VK2XLZ via VK2SUT
auf den AX.25-Port mit dem Namen radio. Weiterf�hrende Informationen
sind in der Hilfeseite zu axparms zu finden.
7. Ein AX.25-Interface f�r TCP/IP einrichten
Es ist sehr einfach, einen AX.25-Port f�r TCP/IP einzurichten. F�r
KISS-Interfaces gibt es zwei M�glichkeiten, eine IP-Adresse
einzurichten. Die konventionellere Methode mit dem Befehl ifconfig
funktioniert mit allen Interface-Typen.
F�r einen an /dev/ttyS0 angeschlossenen KISS-TNC gilt dieses Beispiel:
/usr/sbin/kissattach -i 44.136.8.5 -m 512 /dev/ttyS0 radio
/sbin/route add -net 44.136.8.0 netmask 255.255.255.0 ax0
/sbin/route add default ax0
Damit wird ein AX.25-Interface mit der IP-Adresse 44.136.8.5 und einer
MTU (Maximum Transmit Unit, maximale Gr��e des ausgesendeten
Datenpakets) von 512 Bytes erzeugt. Wenn notwendig, k�nnen mit dem
ifconfig-Befehl weitere Parameter eingestellt werden.
Die anderen Interfaces k�nnen wie die Netzwerkkarte mit ifconfig auf
IP-Adresse und Netzmaske eingestellt werden, ebenso wird die Route wie
f�r eine Netzwerkkarte festgesetzt (man route). Das folgende Beispiel
ist f�r eine PI-Karte gedacht, funktioniert aber auch mit jedem
anderen AX.25-Netzwerk-Device, statt pi0a ist der jeweilige Device-
Name einzusetzen:
/sbin/ifconfig pi0a 44.136.8.5 netmask 255.255.255.0 up
/sbin/ifconfig pi0a broadcast 44.136.8.255 mtu 512
/sbin/route add -net 14.136.8.0 netmask 255.255.255.0 pi0a
/sbin/route add default pi0a
Die hier aufgef�hrten Befehle sind typisch f�r diese Konfigurationen,
vielen werden sie von NOS oder anderer TCP/IP-Software her bekannt
sein. Beachten mu� man, da� die Default-Route m�glicherweise nicht
gebraucht wird, wenn schon ein anderes Netzwerk-Device eingerichtet
ist. Um das Ganze zu testen, versuche man ein ping oder telnet zum
lokalen Host:
ping -i 5 44.136.8.58
Beachte die Option -i 5, die Ping veranla�t, seine Pakete nur aller 5
Sekunden statt wie voreingestellt, aller Sekunden zu senden.
8. Einen NetROM-Port einrichten
NetROM basiert auf den vorher erstellten AX.25-Ports. Es setzt auf dem
AX.25-Protokoll auf.
Um ein NetROM-Interface auf einem AX.25-Port einzurichten, m�ssen zwei
Dateien angepa�t werden. Die eine Datei beschreibt die NetROM-
Interfaces, und die andere, auf welche AX.25-Ports NetROM aufsetzt.
Man kann mehrere NetROM-Ports einrichten, f�r jeden ist die
Vorgehensweise die gleiche.
8.1. Die Datei /etc/ax25/nrports
Die erste der beiden Dateien hei�t /etc/ax25/nrports. Sie beschreibt
die NetROM-Ports in etwa der gleichen Art wie /etc/ax25/axports die
AX.25-Ports.
Jedes NetROM-Device braucht seinen Eintrag in /etc/ax25/nrports.
Normalerweise wird es auf einer Linux-Maschine nur ein NetROM-Device
geben, das eine definierte Anzahl von AX.25-Ports nutzt.
Manchmal will man aber einem besonderen Programm, wie einer Mailbox,
ein separates NetROM-Alias vergeben. Dann kann man auch mehrere
NetROM-Devices einrichten.
Die Datei /etc/ax25/nrports hat folgendes Format:
Name Rufzeichen Alias Paketl�nge Beschreibung
Name
Der Bezeichner f�r den Port.
Rufzeichen
Das Rufzeichen, welches f�r den NetROM-Verkehr verwendet wird.
Dies ist nicht das Rufzeichen, das andere Stationen als Nodecall
verwenden k�nnen. Zu dem Node-Programm sp�ter. Es sollte nicht
noch einmal in /etc/ax25/axports oder /etc/ax25/nrports
auftauchen.
Alias
Der NetROM-Alias f�r diesen Port.
Paketl�nge
Die maximale Gr��e der NetROM-Pakete.
Beschreibung
Eine kurze Beschreibung f�r den Port.
Ein Beispiel s�he so aus:
netrom VK2KTJ-9 LINUX 236 Linux Packet Switch
Damit wird ein NetROM-Port erzeugt, der im �brigen NetROM-Netz als
LINUX:VK2KTJ-9 erscheint. Programme wie call nutzen diese Datei.
8.2. Die Datei /etc/ax25/nrbroadcast
Die zweite der Dateien ist /etc/ax25/nrbroadcast. In dieser Datei
k�nnen viele Eintr�ge enthalten sein. Normalerweise gibt es f�r jeden
AX.25-Port, �ber den NetROM-Verbindungen laufen sollen, einen Eintrag.
Die Datei hat folgendes Format:
axport min_obs def_qual worst_qual verbose
Wobei gilt:
axport
Der aus der Datei /etc/ax25/axports entnommene Portname. Steht
kein Eintrag in /etc/ax25/nrbroadcast, so bedeutet das, da� kein
NetROM-Routing durchgef�hrt wird und alle empfangenen NetROM-
Broadcasts auf diesem Port ignoriert werden.
min_obs
Minimalwert f�r die Obsolescence.
def_qual
Voreingestellte Qualit�t f�r den Port.
worst_qual
Wert f�r die schlechteste Verbindungsqualit�t, Verbindungen mit
schlechteren Werten werden ignoriert.
verbose
Legt fest, ob NetROM auf diesem Port Routing-Broadcasts
aussendet oder nur auf seine Anwesenheit hinweist.
Ein Beispiel s�he so aus: radio 1 200 100 1
8.3. Das Netzwerk-Device f�r NetROM erstellen
Sind die beiden Konfigurationsdateien vervollst�ndigt, dann mu� das
NetROM-Netzwerk-Device genau so wie die anderen AX.25-Devices erstellt
werden. Diesmal wird dazu der Befehl nrattach verwendet. Dieser
arbeitet wie axattach, im Unterschied zu diesem erzeugt er NetROM-
Netzwerk-Devices mit den Namen nr0 - nr9.
Beim ersten Aufruf erzeugt nrattach das Device nr0, beim zweiten nr1
usw.. Um das Netzwerk-Device f�r den von uns definierten NetROM-Port
zu erzeugen, geben wir ein:
nrattach netrom
Damit wird das NetROM-Device nr0 mit dem Namen netrom, dessen Details
in der Datei /etc/ax25/nrports festgelegt wurden, gestartet.
Wer einen Kernel der 2.2.x-Reihe verwendet, mu� an dieser Stelle eine
IP-Adresse angeben, auch wenn kein TCP/IP verwendet werden soll. Der
Aufruf von nrattach sieht dann so aus:
nrattach -i 44.131.16.2 netrom
8.4. Den NetROM-Daemon starten
Der Linux-Kernel �bernimmt alle mit dem NetROM-Protokoll und dem
Switching verbundenen Aufgaben bis auf einige Funktionen. Der NetROM-
Daemon verwaltet die NetROM-Routing-Tabellen und erzeugt die NetROM-
Routing-Broadcasts. Er wird mit folgendem Befehl gestartet:
/usr/bin/netromd -i
Schon bald darauf sollte man sehen, wie sich die Datei
/proc/net/nr_neigh mit den Namen der benachbarten NetROM-Stationen
f�llt:
cat /proc/net/nr_neigh
Man sollte den netromd-Aufruf in die w�hrend des Startens ausgef�hrten
(rc-)Skripte einf�gen, damit er automatisch beim Booten gestartet
wird.
8.5. Das NetROM-Routing einrichten
Manchmal ist es w�nschenswert, feste (statische) Routen f�r spezielle
Rechner einzurichten. Dazu gibt es den Befehl nrparms. Eine
vollst�ndige Beschreibung kann in der Hilfeseite nachgelesen werden.
Ein kleines Beispiel dazu:
/usr/sbin/nrparms -nodes VK2XLZ-10 + #MINTO 120 5 radio VK2SUT-9
Damit wird eine NetROM-Route zu #MINTO:VK2XLZ-10 �ber die benachbarte
Station VK2SUT-9 auf dem AX.25-Port radio eingerichtet. Man kann damit
auch manuell neue Eintr�ge f�r benachbarte Stationen vornehmen:
/usr/sbin/nrparms -routes radio VK2SUT-9 +120
Damit wird VK2SUT-9 als benachbarte NetROM-Station mit einer fest
eingestellten Qualit�t von 120 eingetragen, die nicht automatisch
gel�scht bzw. ge�ndert wird.
9. Ein NetROM-Interface f�r TCP/IP einrichten
Ein TCP/IP-Interface f�r NetROM wird fast genau so wie f�r AX.25
eingerichtet. Man kann entweder die IP-Adresse und MTU auf der
Kommandozeile f�r nrattach angeben oder ifconfig und route benutzen.
Es m�ssen jedoch per Hand die arp-Eintr�ge f�r die Rechner, zu denen
geroutet werden soll, erg�nzt werden, da die Maschine nicht selbst
herausbekommt, welche NetROM-Adresse sie verwenden mu�, um einen
bestimmten IP-Rechner zu erreichen. Will man also ein Device nr0 mit
der IP-Adresse 44.136.8.5, einer MTU von 512 und eingerichtet mit den
Daten aus /etc/ax25/nrports f�r den NetROM-Port netrom erzeugen, gibt
man ein:
/usr/sbin/nrattach -i 44.136.8.5 -m 512 netrom
route add 44.136.8.5 nr0
Oder man benutzt die folgenden Befehle:
/usr/sbin/nrattach netrom ifconfig nr0 44.136.8.5 \
netmask 255.255.255.0 hw netrom VK2KTJ-9
route add 44.136.8.5 nr0
Anschlie�end m�ssen f�r jeden IP-Rechner, der �ber NetROM erreichbar
sein soll, die Eintr�ge f�r Route und ARP gesetzt werden. Um einen
IP-Rechner mit der Adresse 44.136.80.4 auf NetROM-Adresse BBS:VK3BBS
�ber die benachbarte Station VK2SUT-0 zu erreichen, gibt man folgendes
ein:
route add 44.136.80.4 nr0 arp -t netrom \
-s 44.136.80.4 vk2sut-0
nrparms -nodes vk3bbs + BBS 120 6 sl0 vk2sut-0
Die Werte �120� und �6� beim nrparms-Befehl stehen f�r die NetROM-
Qualit�t und die Obsolescence dieser Route.
10. Einen ROSE-Port einrichten
Die ROSE-Protokollebene entspricht der Ebene 3 der X.25-Spezifikation.
Die im Kernel enthaltene ROSE-Unterst�tzung ist eine modifizierte
Version des ROSE (RATS (Radio Amateur Teleprinter Society) Open System
Environment) AX.25 Packet Switch (
http://www.rats.org/rose/). Das
ROSE-Protokoll setzt auf den vorher erstellten AX.25-Ports auf.
Um ROSE einzurichten, mu� man eine Konfigurationsdatei erstellen, die
die zu verwendenden ROSE-Ports definiert. Man kann mehrere ROSE-Ports
erstellen, f�r jeden gilt die gleiche Vorgehensweise.
10.1. Die Datei /etc/ax25/rsports
Die ROSE-Ports werden in der Datei /etc/ax25/rsports eingerichtet. Sie
beschreibt die ROSE-Ports �hnlich wie /etc/ax25/axports die
AX.25-Ports. Die Datei hat folgendes Format:
Name Adresse Beschreibung
Wobei gilt:
Name
Text-Bezeichner f�r den jeweiligen Port
Adresse
10stellige ROSE-Adresse f�r den Port
Beschreibung
kurze, frei w�hlbare Beschreibung
Ein Beispiel:
rose 5050294760 ROSE-Port
Beachte, da� ROSE das f�r jeden AX.25-Port voreingestellte Rufzeichen
verwendet, wenn nichts anderes angegeben wird. Um ein eigenes
Rufzeichen/SSID f�r ROSE festzulegen, gibt man folgendes ein:
/usr/sbin/rsparms -call VK2KTJ-10
Damit wartet Linux auf ROSE-Rufe unter dem Rufzeichen/SSID VK2KTJ-10
auf allen eingerichteten AX.25-Ports und verwendet dieses auch f�r
ROSE- Verbindungen.
10.2. Das ROSE-Netzwerk-Device einrichten
Wurde die Datei /etc/ax25/rsports erstellt, kann man die ROSE-
Netzwerk-Devices genau so wie die AX.25-Netzwerk-Devices erstellen.
Diesmal wird dazu der Befehl rsattach verwendet. Dieser arbeitet wie
axattach, im Unterschied zu diesem erzeugt er ROSE-Netzwerk-Devices
mit den Namen rose0 - rose5. Beim ersten Aufruf erzeugt rsattach das
Device rose0, beim zweiten rose1 usw.. Beispiel:
rsattach rose
Damit wird das ROSE-Device rose0 mit dem Namen rose, dessen Details in
der Datei /etc/ax25/rsports festgelegt wurden, gestartet.
10.3. Das Routing f�r ROSE einrichten
Zur Zeit unterst�tzt das ROSE-Protokoll nur statisches Routing. Mit
dem rsparms-Befehl kann die Routingtabelle eingerichtet werden:
rsparms -nodes add 5050295502 radio vk2xlz
Damit w�rde eine Route zum ROSE-Node 5050295502 �ber den AX.25-Port
mit dem Bezeichner �radio� laut /etc/ax25/axports zu einer
benachbarten Station mit dem Rufzeichen VK2XLZ hinzugef�gt.
Es kann auch eine Maske angegeben werden, um mehrere ROSE-Zielrechner
in einem Routing-Eintrag zu erfassen:
rsparms -nodes add 5050295502/4 radio vk2xlz
Damit werden alle Zieladressen erfa�t, die in den ersten 4 Stellen mit
der angegebenen �bereinstimmen, die also mit �5050� beginnen. Der
Befehl kann auch in dieser, sicher eindeutigeren, Form eingegeben
werden:
rsparms -nodes add 5050/4 radio vk1xlz
11. AX.25/NetROM/ROSE-Verbindungen
Jetzt, da alle AX.25-, NetROM- und ROSE-Devices eingerichtet und
aktiviert sind, sollte es m�glich sein, Test-Verbindungen zu starten.
In den AX.25-Utilities ist das Programm call enthalten, das ein
Terminal mit geteiltem Bildschirm f�r AX.25, NetROM und ROSE
darstellt. Ein einfacher AX.25-Verbindungsaufbau s�he so aus:
/usr/bin/call radio VK2DAY via VK2SUT
Ein einfacher NetROM-Verbindungsaufbau zu einem Node mit dem Alias
�SUNBBS� s�he so aus:
/usr/bin/call netrom SUNBBS
Ein einfacher ROSE-Verbindungsaufbau an HEARD auf dem Node 5050882960
s�he so aus:
/usr/bin/call rose HEARD 5050882960
Beachte: Man mu� call mitteilen, auf welchem Port gerufen werden soll,
da der Zielrechner m�glicherweise auf allen eingerichteten Ports
erreichbar ist. Das Programm call ist ein zeilenbasiertes
Terminalprogramm, mit dem man AX.25-Stationen rufen kann.
Zeilen, die mit einem �~� beginnen, werden als Befehle interpretiert.
Mit Eingabe von �~.� am Beginn einer neuen Zeile beendet man die
Verbindung. Weiterf�hrende Informationen findet man in der Hilfeseite
zu call.
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.
13. Die Node-Software einrichten
Die Node-Software wurde von Tomi Manninen (
[email protected])
entwickelt und basiert auf dem Original-PMS-Programm. Es stellt eine
vollst�ndige und flexible Node-Funktion zur Verf�gung, die man einfach
einrichten kann. In den aktuellen AX.25-Utilities ist das Programm
nicht mehr enthalten, es liegt vielmehr als separates Paket auf
ftp.hes.iki.fi. Dieses Paket ist nur mit einem Kernel 2.2.x lauff�hig.
Das Programm erlaubt den verbundenen Nutzern, Telnet-, NetROM-, ROSE-
und AX.25-Verbindungen aufzubauen und bestimmte Informationen zu
erhalten, wie Finger, Nodes und Heard-Listen usw.
Der Node kann sehr einfach so eingestellt werden, da� er jedes
gew�nschte Linux-Kommando ausf�hren kann. Das Programm node wird
normalerweise vom ax25d aufgerufen, kann aber auch vom inetd gestartet
werden, um Nutzern Zugriff via Telnet zu erm�glichen. Auch ein Aufruf
von der Kommandozeile ist m�glich.
13.1. Die Datei /etc/ax25/node.conf
In dieser Datei wird die haupts�chliche Konfiguration des Programms
node vorgenommen. Sie ist eine einfache Textdatei mit folgendem
Format:
#/etc/ax25/node.conf
# Konfigurationsdatei f�r das Programm node.
#
# Zeilen, die mit einem '#' beginnen, sind Kommentare und werden vom
# Programm ignoriert.
# Hostname
# Gibt den Rechnernamen der Node-Maschine an
hostname radio.gw.vk2ktj.ampr.org
# Local Network
# hier kann man einstellen, was als 'Lokal' gilt, wichtig f�r
# Zugriffsrechte in node.perms
localnet 44.136.8.96/29
# Hidden Ports
# Die hier angegebenen Ports sind f�r Nutzer unsichtbar. Sie werden
# vom Befehl (P)orts nicht ausgegeben.
hiddenports rose netrom
# Callserver
# Wenn eingestellt, wird ein Callserver zur Verf�gung gestellt
callserver zone.oh7rba.ampr.org
# Node-Identifikation.
# Dieser Text erscheint im Node-Prompt
NodeId LINUX:VK2KTJ-9
# NetRom port
# Name des f�r vom Node ausgehende
NetROM-Verbindungen verwendeten
# NetROM-Ports
NrPort netrom
# Node Idle Timeout
# Gibt an, nach welcher Zeit der Inaktivit�t eine Verbindung vom Node
# beendet wird (in Sekunden)
idletimout 1800
# Connection Idle Timeout
# Gibt an, nach welcher Zeit der Inaktivit�t eine Verbindung, die �ber
# den Node l�uft, beendet wird (in Sekunden)
conntimeout 1800
# Reconnect
# Gibt an, ob die Nutzer zum Node zur�ckverbunden werden sollen, wenn
# die abgehende Verbindung getrennt wurde (reconnect) oder ob sie
# vollst�ndig vom Node getrennt werden sollen
reconnect on
# Command Aliases
# Eine M�glichkeit, komplexe Befehle einfacher zu gestalten
alias CONV "telnet vk1xwt.ampr.org 3600"
alias BBS "connect radio vk2xsb"
# External Command Aliases
# M�glichkeit, externe Befehle unter node ausf�hren zu k�nnen
# extcmd
# Nur Flag == 1 ist implementiert
# hat das gleiche Format wie in der Datei /etc/ax25/ax25d.conf
extcmd PMS 1 root /usr/sbin/pms pms -u %U -o VK2KTJ
# Logging
# Mitschriften ins System-Log.
# 3 - ausf�hrlichste Form, 0 - ausgeschaltet
loglevel 3
13.2. Die Datei /etc/ax25/node.perms
Das Programm node erlaubt, einzelnen Nutzern Zugriffsrechte
zuzuteilen. Diese erlauben festzulegen, welche Nutzer beispielsweise
Befehle wie (T)elnet oder (C)onnect ausf�hren d�rfen und welche nicht.
Diese Information wird in der Datei /etc/ax25/node.perms abgelegt,
welche f�nf Felder enth�lt. In allen Feldern ist der Stern �*� das
Zeichen daf�r, da� alle m�glichen Optionen f�r das jeweilige Feld
gelten sollen. Das ist n�tzlich, wenn man Standard-Festlegungen
treffen will. Die einzelnen Felder:
user
Das Rufzeichen des Nutzers, f�r den die folgenden Regelungen
gelten sollen. SSID-Werte werden ignoriert, man sollte also nur
das Rufzeichen angeben.
method
F�r jedes Protokoll oder Zugriffsmethode gibt es auch
Zugriffsrechte. Beispielsweise kann man Nutzern, die �ber AX.25
oder NetROM verbunden sind, erlauben, die (C)onnect-Option zu
verwenden, diese aber anderen, die z.B. �ber telnet eingeloggt
sind, verwehren.
Man kann hier also festlegen, f�r welches Protokoll die
Zugriffsrechte gelten sollen:
ampr
Nutzer ist �ber eine AMPR-Adresse via Telnet verbunden
ax25
Nutzer ist �ber AX.25 verbunden
host
Node wurde von der Kommandozeile gestartet
inet
Nutzer ist von einer nicht-lokalen, nicht- AMPR-Adresse aus
verbunden
local
Nutzer ist von einem �lokalen� Rechner aus verbunden
netrom
Nutzer ist �ber NetROM verbunden
rose
Nutzer ist �ber ROSE verbunden
* Alle m�glichen Verbindungsarten
port
F�r AX.25-Nutzer lassen sich Zugriffsrechte auch auf der Basis
des verwendeten Ports festlegen. Damit kann man definieren, was
AX.25-Nutzer in Abh�ngigkeit von dem Port, �ber den sie
verbunden sind, tun d�rfen. Im dritten Feld steht bei dieser
M�glichkeit dann der Portname. Das Ganze ist nur f�r
AX.25-Verbindungen sinnvoll.
password
Optional kann man den Node so einstellen, da� er die Nutzer nach
einem Pa�wort fragt. Das kann sinnvoll sein, um Nutzer mit
vielen Zugriffsrechten zu sch�tzen. Das Pa�wort steht dann im
vierten Feld der Datei.
permissions
Zugriffsrechte. Dieses Feld ist das letzte bei jedem Eintrag in
/etc/ax25/node.perms. Es ist als Bit-Feld codiert, wobei jede
Option einem Bit entspricht, das diese einschaltet, wenn es
gesetzt ist, und ausschaltet, wenn es nicht gesetzt ist. Hier
eine Liste der steuerbaren Optionen und ihrer Bitwerte:
Wert Beschreibung
------------------------------------------------------------
1 Login erlaubt
2 AX.25-(C)onnects erlaubt
4 NetROM-(C)onnects erlaubt
8 (T)elnet zu lokalen Rechnern erlaubt
16 (T)elnet zu AMPR-Net-Rechnern (44.0.0.0)
erlaubt
32 (T)elnet zu nicht-lokalen, nicht-AMPR-Net-
Rechnern erlaubt
64 Versteckte Ports f�r AX.25-(C)onnects erlaubt
128 ROSE-(C)onnects erlaubt
Um die Zugriffsrechte festzulegen, rechnet man die Werte f�r alle
Rechte des Users zusammen und schreibt die Summe in das f�nfte
Feld.
Die Datei node.perms k�nnte also etwa so aussehen:
# etc/ax25/node.perms
#
# Der Nodebetreiber ist VK2KTJ, sein Pa�ort ist "secret"
# und er hat alle Zugriffsrechte bei allen Verbindungsarten
vk2ktj * * secret 255
# Folgende Nutzer d�rfen keine Verbindungen aufbauen
NOCALL * * 0
PK232 * * 0
PMS * * 0
# INET-Nutzer d�rfen keine Verbindungen aufbauen
* inet * 0
# AX.25-, NetROM, lokale, Host- und AMPR-Nutzer k�nnen (C)onnects
# und (T)elnet-Verbindungen zu anderen lokalen und AMPR-Rechnern,
# jedoch nicht zu anderen IP-Adressen aufbauen
* ax25 * * 159
* netrom * * 159
* local * * 159
* host * * 159
* ampr * * 159
13.3. node vom ax25d aus starten
Das Programm node wird normalerweise vom ax25d aus gestartet. Dazu
m�ssen entsprechende Eintr�ge in der Datei /etc/ax25/ax25d.conf
vorgenommen werden. In der Beispielkonfiguration haben die Nutzer die
Wahl, ob sie eine Verbindung zum Node oder zu anderen Diensten
aufbauen wollen. Bei ax25d gibt es zu diesem Zweck sogenannte Port-
Aliases. Beispiel: Bei der weiter oben angegebenen Konfiguration f�r
ax25d soll unter dem Rufzeichen VK2KTJ-1 der Node erreichbar sein.
Dazu wird folgendes in der Datei /etc/ax25/ax25d.conf hinzugef�gt:
[vk2ktj-1 via radio] default * * * * * 0 root /usr/sbin/node node
Damit wird festgelegt, da� der Linux-Kernel-Code alle
Verbindungsanforderungen f�r das Rufzeichen VK2KTJ-1, die er auf dem
AX.25-Port radio h�rt, beantwortet und das Programm node startet.
13.4. node vom inetd aus starten
Es ist leicht m�glich, den Node auch von einer Telnet-Verbindung aus
zu nutzen. Zun�chst ist festzulegen, zu welchem Port die die Nutzer
ihre Verbindung aufbauen sollen.
Im Beispiel wurde willk�rlich Port 3694 gew�hlt, Informationen
dar�ber, wie man den Telnet-Daemon durch node ersetzen kann, finden
sich in Tomis Dokumentation.
Zwei Dateien sind anzupassen. Der Datei /etc/services f�gt man hinzu:
node 3694/tcp # OH2BNS's Node-Programm
und in /etc/inetd.conf kommt zus�tzlich:
node stream tcp nowait root /usr/sbin/node node
Nach einem Neustart des inetd (vorher ein kill -HUP 1) bekommen alle
Nutzer, die eine Telnet-Verbindung zum Port 3694 aufgebaut haben, eine
Abfrage nach Loginname und Pa�wort (wenn eingerichtet) und werden dann
an node weitergegeben.
14. axspawn einrichten
axspawn ist ein einfaches Programm, das anrufenden AX.25-Stationen den
Login auf die eigene Maschine erlaubt.
Es kann vom ax25d in gleicher Weise wie node gestartet werden. Um
einem Nutzer ein Login auf die eigene Maschine zu erlauben, mu� der
Datei /etc/ax25/ax25d.conf eine Zeile �hnlich dieser hinzugef�gt
werden:
default * * * * * 1 root /usr/sbin/axspawn axspawn %u
Endet diese Zeile mit einem �+�, so mu� der jeweilige Nutzer Return
dr�cken, bevor er sich einloggen darf. Voreingestellt ist, da� nicht
auf das Return gewartet wird.
F�r alle dieser Zeile folgenden Konfigurationen wird axspawn
gestartet. axspawn pr�ft, ob das auf der Kommandozeile �bergebene
Rufzeichen g�ltig ist, entfernt dann eine etwaige SSID und schaut in
/etc/passwd nach, ob der betreffende Nutzer einen Account besitzt.
Gibt es einen Account , und das Pa�wort ist entweder �� (nichts) oder
�+�, dann ist der Nutzer eingeloggt, steht etwas im Pa�wort-Feld, so
wird der Nutzer nach einem Pa�wort gefragt.
Gibt es keinen Account f�r den Nutzer, so kann axspawn so eingestellt
werden, da� es automatisch einen einrichtet. Achtung: Bei
Distributionen, die mit dem sogenannten Password-Shadowing arbeiten,
bei denen das Pa�wort also nicht in /etc/passwd steht, kann es mit dem
automatischen Anlegen von Nutzer-Accounts Probleme geben.
In diesem Fall ist es g�nstiger, f�r alle nicht speziell definierten
Nutzer eine Art Gast-Account vorzusehen, auf den jeder von ihnen
zugreifen kann.
14.1. Die Datei /etc/ax25/axspawn.conf
Das Verhalten von axspawn kann mit der Datei /etc/ax25/ax25spawn.conf
in verschiedener Weise beeinflu�t werden. Diese Datei hat folgendes
Format:
# /etc/ax25/axspawn.conf
#
# Automatische Erzeugung von Accounts f�r Nutzer?
create yes
#
# Gastzugang, wenn oben 'no' eingestellt ist - oder nichts geht
# Gastzugang ausgeschaltet mit 'no'
guest no
#
# Gruppen-ID oder Name f�r Auto-Account
group ax25
#
# Erste zu verwendende Nutzerkennung (User-ID)
first_uid 2001
#
# Maximum f�r User-ID
max_uid 3000
#
# Home-Verzeichnis f�r die neuen Nutzer
home home/ax25
#
# Shell f�r die neuen Nutzer
shell /bin/bash
#
# User-ID mit Rufzeichen f�r ausgehende Verbindungen verkn�pfen
associate yes
Ein �#� in der Datei markiert einen Kommentar; der Rest der Zeile wird
ignoriert.
Folgende acht Charakteristika von axspawn k�nnen eingestellt werden:
create
Wenn auf �yes� gesetzt, versucht axspawn, einen Account f�r alle
Nutzer, die noch nicht in /etc/passwd aufgef�hrt sind, zu
erzeugen.
guest
Dieses Feld bezeichnet den Loginnamen, der verwendet wird, wenn
create auf �no� gestellt ist. Im Normalfall ist das �guest� oder
�ax25�.
group
Bezeichnet den Gruppennamen, der f�r neu (create) angelegte
Nutzer-Accounts verwendet wird.
first_uid
Nummer der ersten Benutzerkennung (User-ID), die f�r mit create
neu angelegte Nutzer-Accounts verwendet werden soll.
max_uid
H�chste f�r Benutzerkennungen von mit create angelegten Accounts
zu vergebende Zahl
home
Home-(Login-)Verzeichnis f�r neu angelegte Nutzer-Accounts
shell
Die f�r die neu angelegten Accounts zu verwendende Login-Shell
associate
Legt fest, ob abgehende Verbindungen unter dem Rufzeichen des
ankommenden Nutzers oder dem der eigenen Station laufen sollen.
15. Das PMS (Personal Message System) einrichten
Das Programm pms ist eine Implementation eines einfachen Personal
Message Systems. Es wurde von Alan Cox geschrieben und von Dave Brown,
NR2JT (
[email protected]) weiter verbessert.
Zur Zeit ist das Programm noch sehr einfach, es erlaubt nur,
Mitteilungen an den Eigent�mer des Systems zu richten und einige
begrenzte Systeminformationen abzufragen. Dave arbeitet daran, die
M�glichkeiten des Programms zu erweitern. Es gibt einige Dateien, die
man erzeugen sollte, um den Nutzern einige Informationen �ber das
eigene System zu geben.
Weiterhin m�ssen der Datei /etc/ax25/ax25d.conf die entsprechenden
Eintr�ge hinzugef�gt werden, um das PMS den Nutzern zur Verf�gung zu
stellen.
15.1. Die Datei /etc/ax25/pms.motd
Diese Datei enth�lt den �Spruch des Tages� (Message Of The Day), den
die Nutzer nach Aufbau der Verbindung und Empfang des �blichen BBS-ID-
Headers lesen k�nnen.
Es ist eine einfache Textdatei, deren Inhalt an die Nutzer gesendet
wird.
15.2. Die Datei /etc/ax25/pms.info
Diese ist ebenfalls eine einfache Textdatei, die detailliertere
Informationen �ber die eigene Systemkonfiguration oder Station
enth�lt. Sie wird als Antwort auf den info-Befehl ausgesendet, den die
Nutzer am PMS> - Prompt eingeben k�nnen.
15.3. AX.25-Rufzeichen Systembenutzern zuordnen
Sendet ein mit dem System verbundener Nutzer eine Mail an ein
AX.25-Rufzeichen, so erwartet pms, da� das Rufzeichen einem realen
Systembenutzer auf der Maschine zugeordnet ist.
Dies wird in einem gesonderten Abschnitt beschrieben.
15.4. PMS in die Datei /etc/ax25/ax25d.conf einbauen
Dies ist sehr einfach. Eine Sache mu� aber beachtet werden: Dave hat
f�r pms Kommandozeilenparameter vorgesehen, damit dieses verschiedene
Konventionen f�r die Zeilenendmarkierung verarbeiten kann. AX.25 und
NetROM erwarten die Zeilenendmarkierung als Carriage Return+Linefeed
(CR+LF), w�hrend unter Unix ein New Line Standard ist.
Will man also beispielsweise einen Eintrag in /etc/ax25/ax25d.conf
vorsehen, der f�r jede auf einem AX.25-Port hereinkommende Verbindung
das PMS startet, so f�gt man etwa eine solche Zeile hinzu:
default 1 10 5 100 5 0 root /usr/sbin/pms pms -a -o vk2ktj
Damit wird das PMS gestartet und ihm mitgeteilt, da� es mit einer
AX.25-Verbindung assoziiert ist und der Eigent�mer des PMS VK2KTJ ist.
F�r andere Verbindungsarten gibt die Hilfeseite weiterf�hrende
Ausk�nfte.
15.5. Das PMS testen
Als Test f�r das PMS eignet sich z.B. folgender Befehl, der auf der
Kommandozeile eingegeben wird:
/usr/sbin/pms -u vk2ktj -o vk2ktj
An Stelle von �vk2ktj� gibt man sein eigenes Rufzeichen an. PMS wird
gestartet, es verwendet die unter UNIX �bliche Zeilenendemarkierung
und der eingeloggte Nutzer ist hier vk2ktj. Jetzt kann man alle
Befehle, die den verbundenen Nutzern zur Verf�gung stehen,
ausprobieren.
Zus�tzlich kann man eine andere Station bitten, sich mit der eigenen
zu verbinden, um zu pr�fen, ob die Einstellungen in
/etc/ax25/ax25d.conf funktionieren.
16. Die user_call - Programme einrichten
Die user_call-Programme hei�en in Wirklichkeit ax25_call und
netrom_call. Es sind sehr einfache Programme, die f�r den Aufruf durch
den ax25d vorgesehen sind und Netzwerkverbindungen zu entfernten
Rechnern automatisieren sollen. Nat�rlich k�nnen sie auch von
Shellskripts oder anderen Programmen, wie node, aufgerufen werden.
Die Programme sind �hnlich wie das Programm call: Sie ver�ndern die
Daten nicht, man mu� sich also selbst darum k�mmern, wie
beispielsweise das Zeilenende behandelt werden soll.
Zun�chst ein Beispiel f�r die Verwendung. Angenommen, man habe ein
kleines Netzwerk zu Hause und man habe eine Linux-Maschine als Funk-
Gateway und einen BPQ-Node, �ber Ethernet mit dieser verbunden.
Im Normalfall m��ten Nutzer �ber Funk die Linux-Maschine als
Digipeater verwenden oder eine Verbindung zum Node-Programm aufbauen
und sich von da aus weiterverbinden lassen, wenn sie den BPQ-Node
erreichen wollten. Dies kann durch das Programm ax25_call erleichtert
werden, wenn es durch ax25d aufgerufen wird.
Angenommen, der BPQ-Node habe das Rufzeichen VK2KTJ-9 und die Linux-
Maschine habe den AX.25/Ethernet-Port namens bpq sowie einen Funk-Port
namens radio. Mit einem Eintrag in /etc/ax25/ax25d.conf
[VK2KTJ-1 via radio] default * * * * * * * root /usr/sbin/ax25_call ax25_call bpq %u vk2ktj-9
erlaubte man Nutzern eine direkte Verbindung zu VK2KTJ-1 und damit zum
Linux-AX.25-Daemon, der sie dann automatisch auf eine AX.25-Verbindung
zu VK2KTJ-9 �ber das Interface bpq schalten w�rde.
Es gibt eine Menge m�glicher Konfigurationen. Die Programme
netrom_call und rose_call funktionieren analog zu ax25_call.
Ein Funkamateur verwendete dieses Utility, um Verbindungen zu einer
entfernten Mailbox leichter aufbauen zu k�nnen. Im Normalfall hatten
die Nutzer eine lange Zeichenkette zum Aufbau der Verbindung
einzugeben.
Deshalb erzeugte er einen Eintrag, der die Box als im lokalen Netzwerk
befindlich erscheinen lie� und �bertrug ax25d und ax25_call den
weiteren Verbindungsaufbau (Proxy-Prinzip).
17. Die Befehle zum ROSE-Up- und -Downlink einrichten
Wer sich mit der ROM-basierten ROSE-Implementation auskennt, wird auch
die Art des Verbindungsaufbaus �ber ein ROSE-Netzwerk kennen. Hat ein
lokaler ROSE-Node eines AX.25-Nutzers das Rufzeichen VK2KTJ-5 und der
Nutzer will eine Verbindung zu VK5XXX auf dem entfernten Node
5050882960, dann wird er folgenden Befehl eingeben:
c vk5xxx v vk2ktj-5 5050 882960
Die entfernte Station VK5XXX w�rde dann eine unter dem Rufzeichen des
lokalen Nutzers �ber das Rufzeichen des entfernten ROSE-Nodes (via)
hereinkommende Verbindung erkennen.
Diese Funktionen werden bei der ROSE-Implementation unter Linux nicht
vom Kernel unterst�tzt, es gibt zwei Programme namens rsuplnk und
rsdownlnk daf�r.
17.1. Einen ROSE-Downlink einrichten
Damit die eigene Linux-Maschine hereinkommende ROSE-Verbindungen
annimmt und entsprechend an das gew�nschte Zielrufzeichen
weiterleitet, mu� der Datei /etc/ax25/ax25d.conf ein Eintrag
hinzugef�gt werden.
Im Normalfall wird dieser als Voreinstellung f�r alle hereinkommenden
ROSE-Verbindungen eingerichtet. Beispielsweise kann man ROSE-Nutzer
f�r HEARD-0 oder NODE-0 lokal arbeiten lassen, f�r alle anderen
Zielrufzeichen rsdownlink aufrufen:
#
{* via rose}
NOCALL * * * * * * L default * * *
* * * - root /usr/sbin/rsdwnlnk rsdwnlnk 4800 vk2ktj-5
#
Bei dieser Einstellung wird jede �ber die ROSE-Node-Adresse
hereinkommende Verbindung in eine AX.25-Verbindung auf dem AX.25-Port
mit Namen 4800 mit dem Digipeater-Pfad VK2KTJ-5 umgewandelt, sofern
kein gesondert zu behandelndes Zielrufzeichen angegeben wurde.
17.2. Einen ROSE-Uplink einrichten
Damit die eigene Linux-Maschine in gleicher Weise wie das ROM-basierte
ROSE Verbindungen entgegennimmt, mu� ein Eintrag in die Datei
/etc/ax25/ax25d.conf eingef�gt werden, etwa so:
#
[VK2KTJ-5* via 4800]
NOCALL * * * * * * L default *
* * * * * - root /usr/sbin/rsuplnk rsuplnk rose
#
Man beachte die spezielle Syntax f�r das lokale Rufzeichen. Das
Zeichen �*� zeigt an, da� die Anwendung (hier rsuplnk) gestartet
werden soll, wenn das Rufzeichen im Digipeater-Pfad einer Verbindung
auftaucht. Mit dieser Einstellung w�rde man einem AX.25-Nutzer
erlauben, ROSE-Verbindungen mit dem unter 18. einleitend angegebenen
Befehl herzustellen. Jeder Nutzer, der den Digipeater �ber VK2KTJ-5
auf dem AX.25-Port 4800 nutzen will, wird �ber rsuplnk
weiterverbunden.
18. AX.25-Rufzeichen Linux-Nutzern zuordnen
In vielen Situationen ist es w�nschenswert, ein Rufzeichen einem
Linux-Nutzer-Account zuzuordnen.
Beispielsweise k�nnten mehrere Funkamateure die gleiche Linux-Maschine
nutzen und unter ihrem eigenen Rufzeichen Verbindungen aufbauen
wollen. Oder Nutzer des PMS wollen einem bestimmten Linux-Nutzer eine
Nachricht zukommen lassen.
Die AX.25-Software stellt eine M�glichkeit zur Verf�gung, die Account-
Namen von Linux-Nutzern mit Rufzeichen zu verbinden. Dies wurde im
Abschnitt PMS bereits erw�hnt, soll hier aber genauer dargestellt
werden.
Die Verkn�pfung wird mit dem Befehl axparms hergestellt,
beispielsweise so:
axparms -assoc vk2ktj terry
Dieser Befehl verkn�pft einen User-Account namens terry auf der
Maschine mit dem Funk-Rufzeichen vk2ktj. Jede Nachricht vom PMS an
vk2ktj wird jetzt an den Account terry weitergeleitet.
Nicht vergessen sollte man, diese Verkn�pfungen in das beim Starten
des Systems ausgef�hrte Skript einzubauen, damit sie bei jedem
Neustart zur Verf�gung stehen.
Beachte: Man sollte nie den root-Account mit einem Rufzeichen
verkn�pfen, da dies zu Konfigurationsproblemen in anderen Programmen
f�hren kann. In den meisten F�llen funktionieren diese dann nicht wie
erwartet.
19. Die Eintr�ge im /proc-Dateisystem
In dem Dateisystem unter /proc finden sich eine Reihe f�r die AX.25-
und NetROM-Kernel-Software spezifische Dateien. Sie werden
normalerweise von den AX.25-Utilities genutzt, sind aber einfach
formatiert, so da� es interessant sein kann, ihren Inhalt zu
studieren. Da das Format so einfach ist, sollte keine spezielle
Erkl�rung notwendig sein.
/proc/net/arp
Enth�lt die Liste der Address Resolution Protocol-Mappings zu
Adressen auf MAC-Protokollebene. Diese k�nnen AX.25, Ethernet
oder eine andere MAC-Protokollebene sein.
/proc/net/ax25
Enth�lt eine Liste der ge�ffneten AX.25-Sockets. Dies k�nnen
aktive Sitzungen oder solche, die auf eine Verbindung warten,
sein.
/proc/net/ax25_bpqether
Enth�lt die Mappings f�r die Rufzeichen f�r AX.25 �ber BPQ-
Ethernet.
/proc/net/ax25_calls
Enth�lt die Zuordnungen von User-IDs zu Rufzeichen, wie sie mit
axparms -assoc eingestellt wurden.
/proc/net/ax25_route
Enth�lt den AX.25-Digipeater-Pfad
/proc/net/nr
Enth�lt eine Liste der ge�ffneten NetROM-Sockets. Dies k�nnen
aktive Sitzungen oder solche, die auf eine Verbindung warten,
sein.
/proc/net/nr_neigh
Enth�lt Informationen �ber die der NetRom-Software bekannten
benachbarten NetROM-Stationen.
/proc/net/nr_nodes
Enth�lt Informationen �ber die der NetRom-Software bekannten
NetROM-Nodes.
/proc/net/rose
Enth�lt eine Liste der ge�ffneten ROSE-Sockets. Dies k�nnen
aktive Sitzungen oder solche, die auf eine Verbindung warten,
sein.
/proc/net/rose_neigh
Enth�lt Informationen �ber die der ROSE-Software bekannten
benachbarten ROSE-Stationen.
/proc/net/rose_nodes
Enth�lt eine Zuordnung von ROSE-Zielen zu benachbarten ROSE-
Stationen.
/proc/net/rose_routes
Enth�lt eine Liste aller bestehenden ROSE-Verbindungen
20. AX.25-, NetROM- und ROSE-Programmierung
Der vielleicht gr��te Vorteil bei der Nutzung der kernelbasierten
Implementationen der Packet-Radio-Protokolle besteht in der
Leichtigkeit, mit der Programme und Anwendungen zu ihrer Nutzung
entwickelt werden k�nnen. Das Thema Netzwerk-Programmierung unter UNIX
w�rde den Rahmen dieses Textes sprengen; hier sollen die elementaren
Details der Nutzung der AX.25-, NetROM- und ROSE-Protokolle in eigener
Software besprochen werden.
20.1. Adre�familien
Die Netzwerkprogrammierung f�r AX.25, NetROM und ROSE ist der TCP/IP-
Programmierung unter Linux sehr �hnlich.
Die haupts�chlichen Unterschiede ergeben sich aus den verwendenden
Adre�familien und -strukturen, die entsprechend angeordnet werden
m�ssen. Die Adre�familien tragen die Namen AF_AX25, AF_NETROM und
AF_ROSE f�r die jeweiligen Protokolle.
20.2. Headerdateien
In eigenen Quelltexten mu� immer ein �include�-Statement f�r ax25.h,
netrom.h oder rose.h vorgesehen werden, wenn man mit diesen
Protokollen arbeitet.
F�r AX.25:
#include <ax25.h>
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_AX25
F�r NetRom:
#include <ax25.h>
#include <netrom.h>
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_NETROM;
F�r ROSE:
#include <ax25.h>
#include <rose.h>
int s, addrlen = sizeof(struct sockaddr_rose);
struct sockaddr_rose sockaddr;
sockaddr.srose_family = AF_ROSE;
20.3. Rufzeichenhandhabung und Beispiele
Die Rufzeichenumwandlungen werden von Routinen erledigt, welche in der
zu den AX.25-Utilities geh�renden Bibliothek /lib/ax25.a stehen.
Nat�rlich kann man sich auch seine eigenen schreiben. Die User_call-
Programme sind ein gutes Beispiel, von dem man starten kann. Ihre
Quelltexte sind im Paket der AX.25-Utilities mit enthalten.
Wenn man sich ein wenig damit befa�t, wird man feststellen, da� 90%
der Arbeit in der Vorbereitung zum �ffnen des Sockets bestehen. Die
Herstellung einer Verbindung ist einfach, nur die Vorbereitung braucht
Zeit.
Diese Beispiele sollten so einfach sein, da� sie nicht zu Verwirrungen
f�hren. Wer Fragen hat, sollte sie an die Linux-Hams-Mailingliste
schicken. Es wird sich dann sicherlich jemand finden, der weiterhilft.
21. Einige Beispielkonfigurationen
Im folgenden werden Beispiele f�r einige der �blichsten
Konfigurationen vorgestellt. Sie sollen als Anregung f�r die eigene
Konfiguration dienen.
21.1. Kleines Ethernet-LAN mit Linux als Router auf Funk-LAN
--- .
| Netzwerk /---------\ . Netzwerk
| 44.136.8.96/29 | | . 44.136.8/24 \ | /
| | Linux | . \|/
| | | . |
| eth0 | Router | . /-----\ /----------\ |
|----------------| |-----| TNC |----| Radio |---/
| 44.136.8.97 | und | . \-----/ \----------/
| | | sl0
| | Server | 44.136.8.5
| | | .
| | | .
| \_________/ .
--- . . . . . .
#!/bin/sh
# /etc/rc.net
# Diese Konfiguration stellt einen KISS basierten AX.25-Port und
# ein Ethernet-Device zur Verf�gung.
echo "/etc/rc.net" echo " Configuring:"
echo -n " loopback:"
/sbin/ifconfig lo 127.0.0.1
/sbin/route add 127.0.0.1
echo " done."
echo -n " ethernet:"
/sbin/ifconfig eth0 44.136.8.97 netmask 255.255.255.248 \
broadcast 44.136.8.103 up /sbin/route add 44.136.8.97 eth0
/sbin/route add -net 44.136.8.96 netmask 255.255.255.248 eth0
echo " done." echo -n " AX.25: "
kissattach -i 44.136.8.5 -m 512 /dev/ttyS1 4800
ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.8.255
route add -host 44.136.8.5 sl0
route add -net 44.136.8.0 window 1024 sl0
echo -n " Netrom: "
nrattach -i 44.136.8.5 netrom echo " Routing:"
/sbin/route add default gw 44.136.8.68 window 1024 sl0
echo " default route."
echo done.
# end
/etc/ax25/axports
#
name callsign speed paclen window description
4800 VK2KTJ-0 4800 256 2 144.800 MHz
/etc/ax25/nrports
# name
callsign alias paclen description netrom
VK2KTJ-9 LINUX 235 Linux Switch Port
/etc/ax25/nrbroadcast
# ax25_name min_obs def_qual worst_qual verbose
4800 1 120 10 1
� IP_FORWARDING mu� im Kernel eingeschaltet sein.
� Die AX.25-Konfigurationsdateien entsprechen weitestgehend den
weiter oben aufgef�hrten Beispielen, siehe auch dort.
� F�r den Funkport wurde eine IP-Adresse gew�hlt, die nicht im
Adre�block des eigenen Netzwerkes enthalten ist. Das ist nicht
unbedingt so notwendig, genausogut h�tte man auch 44.136.8.97 f�r
diesen Port vorsehen k�nnen.
� 44.136.8.68 ist hier der lokale IPIP-gekapselte Gateway - daher
wird die voreingestellte Route dorthin gesetzt.
� Jede der Maschinen im Ethernet-Netzwerk hat eine Route:
route add -net 44.0.0.0 netmask 255.0.0.0 \
gw 44.136.8.97 window 512 mss 512 eth0
Mit der Verwendung der MSS und Window-Parameter erh�lt man optimale
Performance sowohl im Ethernet als auch bei den Funkverbindungen.
� Auf dem Router laufen ebenso die Daemonen smail, http, ftp und
andere, so da� sie die einzige Maschine ist, die anderen Nutzern
Dienste anbietet.
� Der Router ist ein langsamer 386DX20 mit 20MB-Festplatte und
minimaler Linux-Konfiguration.
21.2. IPIP-gekapselter Gateway
Linux wird oft auch f�r TCP/IP-gekapselte Gateways verwendet. Der
neue Tunnel-Treiber unterst�tzt mehrere gekapselte Routen und l�st den
veralteten ipip-Daemon ab. Eine typische Konfiguration w�rde etwa so
aussehen:
. . . . . .
--- .
| Netzwerk /---------\ . Netzwerk
| 154.27.3/24 | | . 44.136.16/24 \ | /
| | Linux | . \|/
| | | . |
| eth0 | IPIP | . /-----\ /----------\ |
---|---------------| |-----| TNC |----| Radio |---/
| 154.27.3.20 | Gateway | . \-----/ \----------/
| | | sl0
| | | 44.136.16.1
| | | .
| | | .
| \_________/ .
--- . . . . . .
Einige zu beachtende Punkte:
� Der neue Tunnel-Treiber nutzt das GW-Feld in der Routing-Tabelle an
Stelle des pointopoint-Parameters, zur Angabe der Adresse des
entfernten IPIP-Gateway. Auf diese Weise unterst�tzt er nun mehrere
Routen pro Interface.
� Man kann zwei Netzwerk-Devices mit gleicher Adresse einrichten. In
diesem Beispiel wurden die Devices sl0 und tunl0 mit der IP-Adresse
des Funkports konfiguriert. Auf diese Weise erkennt der entfernte
Gateway die korrekte Adresse des eigenen Gateways in den
gekapselten Paketen, die an ihn gesendet wurden.
� Die Route-Befehle zur Angabe der gekapselten Routen k�nnen
automatisch mit einer modifizierten Version des Munge-Skripts
erzeugt werden, die weiter unten abgedruckt ist. Die Route-Befehle
werden dann in eine separate Datei geschrieben und mit dem Bash-
Befehl
source /etc/ipip.routes
(angenommen, die Datei mit den Route-Befehlen hei�e /etc/ipip.routes)
wie dargestellt eingelesen. Die Quelldatei mu� das NOS-Format f�r
Route-Befehle haben.
� Beachte die Verwendung des Window-Arguments bei dem Route-Befehl.
Der richtige Wert f�r diesen Parameter erh�ht die Performance der
Funkverbindung.
Das neue Tunnel-munge-Script:
#!/bin/sh
#
# Von: Ron Atkinson
#
# Dieses Skript basiert auf dem urspr�nglich f�r den IPIP-
# Daemon geschriebenen �munge�-Skript von Bdale N3EUA,
# es wurde von Ron Atkinson N8FOW modifiziert.
# Es dient zur Umwandlung einer Gateway-Route-Datei im KA9Q NOS-Format
# (�blicherweise �encap.txt�) in das Format der Linux-Routing-Tabelle
# f�r den IP -Tunnel-Treiber.
#
# Aufruf: Gateway-Datei auf stdin, Linux -Routingtabelle auf stdout.
# z.B. tunnel-munge < encap.txt > ampr-routes
#
# ACHTUNG: Bevor das Skript nutzbar ist, mu� folgendes �berpr�ft werden:
#
# 1) Trage f�r �Local routes� und �Misc user routes� die im eigenen
# Gebiet g�ltigen Routen ein und entferne die Beispiele!
# 2) Auf der �fgrep�-Zeile mu� die EIGENE Internet-Gateway-Adresse
# eingetragen werden. Wird dies nicht getan, so entstehen
# ernsthafte Probleme durch Routing-Schleifen.
# 3) Der voreingestellte Name des Interfaces ist �tunl0�.
# Es ist sicherzustellen, da� dies auf dem eigene System zutrifft.
echo "#"
echo " # IP tunnel route table built by $LOGNAME on `date`"
echo "# by tunnel-munge script v960307."
echo "#"
echo "# Local routes" echo "
route add -net 44.xxx.xxx.xxx netmask 255.mmm.mmm.mmm dev sl0"
echo "#" echo "# Misc user routes"
echo "#" echo "# remote routes"
fgrep encap | grep "^route" | grep -v " XXX.XXX.XXX.XXX" | \
awk '{
split($3, s, "/")
split(s[1], n,".")
if (n[1] == "") n[1]="0"
if (n[2] == "") n[2]="0"
if (n[3] == "") n[3]="0"
if (n[4] == "") n[4]="0"
if (s[2] == "1") mask="128.0.0.0"
else if (s[2] == "2") mask="192.0.0.0"
else if (s[2] == "3") mask="224.0.0.0"
else if (s[2] == "4") mask="240.0.0.0"
else if (s[2] == "5") mask="248.0.0.0"
else if (s[2] == "6") mask="252.0.0.0"
else if (s[2] == "7") mask="254.0.0.0"
else if (s[2] == "8") mask="255.0.0.0"
else if (s[2] == "9") mask="255.128.0.0"
else if (s[2] == "10") mask="255.192.0.0"
else if (s[2] == "11") mask="255.224.0.0"
else if (s[2] == "12") mask="255.240.0.0"
else if (s[2] == "13") mask="255.248.0.0"
else if (s[2] == "14") mask="255.252.0.0"
else if (s[2] == "15") mask="255.254.0.0"
else if (s[2] == "16") mask="255.255.0.0"
else if (s[2] == "17") mask="255.255.128.0"
else if (s[2] == "18") mask="255.255.192.0"
else if (s[2] == "19") mask="255.255.224.0"
else if (s[2] == "20") mask="255.255.240.0"
else if (s[2] == "21") mask="255.255.248.0"
else if (s[2] == "22") mask="255.255.252.0"
else if (s[2] == "23") mask="255.255.254.0"
else if (s[2] == "24") mask="255.255.255.0"
else if (s[2] == "25") mask="255.255.255.128"
else if (s[2] == "26") mask="255.255.255.192"
else if (s[2] == "27") mask="255.255.255.224"
else if (s[2] == "28") mask="255.255.255.240"
else if (s[2] == "29") mask="255.255.255.248"
else if (s[2] == "30") mask="255.255.255.252"
else if (s[2] == "31") mask="255.255.255.254"
else mask="255.255.255.255"
if (mask == "255.255.255.255")
printf "route add -host %s.%s.%s.%s gw %s dev tunl0\n"\
,n[1],n[2],n[3],n[4],$5
else
printf "route add -net %s.%s.%s.%s gw %s netmask %s dev tunl0\n"\
,n[1],n[2],n[3],n[4],$5,mask
}'
echo "#"
echo "# default the rest of amprnet via mirrorshades.ucsd.edu"
echo "route add -net 44.0.0.0 gw 128.54.16.18 netmask 255.0.0.0 dev tunl0"
echo "#"
echo "# the end"
F�r den Kernel 2.2.x mit aktuellem AX.25-Subsystem gilt ein neues
Skript:
#!/usr/bin/perl
#
# Von: Ron Atkinson
#
# Dieses Skript basiert auf dem urspr�nglich f�r den IPIP-
# Daemon geschriebenen �munge�-Skript von Bdale N3EUA,
# es wurde von Ron Atkinson N8FOW modifiziert.
# Es dient zur Umwandlung einer Gateway-Route-Datei im KA9Q NOS-Format
# (�blicherweise �encap.txt�) in das Format der Linux-Routing-Tabelle
# f�r den IP -Tunnel-Treiber.
#
# Verbesserte Perl-Version by Heikki Hannikainen
#
# Versionen:
#
# 2.1 hessu Thu Jul 8 19:41:18 EEST 1999
# - Modifiziert f�r /sbin/ip
#
# Aufruf: z.B. munge encap.txt rc.tun-routes
#
# ACHTUNG: Bevor das Skript nutzbar ist, mu� folgendes
# �berpr�ft werden:
#
# 1) Die @my_addresses-Liste mu� STATT DER in diesem
# Text stehenden Adressen die IP-Adresse des eigenen
# Gateways (und Adressen, f�r die manuell eingetragene
# statische Routen existieren) enthalten.
#
# verwendetes Tunnel-Device
$tunnel_device = "tunl0";
# Adressen lokaler Gateways (deren Routen werden �bergangen)
@my_addresses = ("193.167.178.112", "193.166.55.160", "195.148.207.30"); #
route binary $routebin = "/sbin/ip"; # tcp window to set $window = 840;
if ($#ARGV != 1) {
print "Aufruf: $0 encap.txt rc.tun-routes\n";
exit 1;
}
open(inf, @ARGV[0]) || die "Kann nicht oeffnen: @ARGV[0]: $!";
open(upf, ">@ARGV[1]") or die "Kann nicht oeffnen: @ARGV[1]: $!";;
$hdr = "#\n# IP tunnel route table\n#\n#\n";
print upf $hdr;
LOOP: while ($line = ) {
@fields = ();
@abytes = ();
$bits = "";
@fields = split(' ', $line);
if (@fields[0] ne "route") { next LOOP; }
$gw = @fields[4];
$net = @fields[2];
($addr, $bits) = split('/', $net);
if (!$bits) { $bits = 32; }
@abytes = split('\.', $addr);
for ($i = 0; $i < 4; $i++) {
if (@abytes[$i] eq "") { @abytes[$i] = "0"; }
}
$addr = join('.', @abytes);
foreach $my (@my_addresses) {
if ($gw eq $my) {
print "$addr/$bits > $gw blocked, local gw\n";
next LOOP;
}
}
if ($addr !~ /^44\./) {
print "$addr/$bits > $gw blocked, non-amprnet address!\n";
next LOOP;
}
if ($gw =~ /^44\./) {
print "$addr/$bits > $gw blocked, inside amprnet!\n";
next LOOP;
}
if ($bits < 16) {
print "$addr/$bits > $gw blocked, mask smaller than 16 bits!\n";
next LOOP;
}
print upf "$routebin route add $addr/$bits via $gw dev $tunnel_device
onlink 2>/dev/null\n";
}
print upf "#\n# the end\n#\n";
close(inf);
close(upf);
Zum Schlu� ist das Tunnel-Device mit
ifconfig tunl0 44.139.39.66 mtu 250 up
zu aktivieren, wobei f�r 44.139.39.66 die eigene IP-Adresse
einzusetzen ist.
21.3. Die Einrichtung des AXIP-encapsulated Gateway
Auf vielen Internet-Gateways des Amateurfunks werden AX.25, NetRom und
ROSE zus�tzlich zu TCP/IP gekapselt.
Die Kapselung von AX.25-Frames innerhalb von IP-Datagrammen wird in
RFC-1226 von Brian Kantor beschrieben.
Mike Westerhof schrieb 1991 einen Daemon f�r AX.25-Kapselung f�r UNIX.
Die AX-25-Utils enthalten eine leicht verbesserte Version f�r Linux.
Ein Programm zur AXIP-Kapselung nimmt an einem Ende AX.25-Frames
entgegen, pr�ft die AX.25-Empf�ngeradresse, um festzulegen, an welche
IP-Adresse das gekapselte Paket weitergeleitet werden mu�, kapselt es
sodann in ein TCP/IP-Datagramm und sendet es schlie�lich an das
passende Ziel.
In umgekehrter Richtung nimmt es in TCP/IP-Datagrammen enthaltene
AX.25-Frames entgegen, packt diese aus und behandelt sie weiter, als
ob sie direkt von einem AX.25-Port empfangen worden w�ren.
Um TCP/IP-Datagramme, die AX.25-Frames enthalten, von anderen ohne
solchen Inhalt unterscheiden zu k�nnen, werden AXIP-Datagramme mit
einer Protokoll-Identifizierung von 4 (oder fr�her 94) versehen.
Dies wird in RFC-1226 beschrieben. Das in den AX-25-Utils enthaltene
Programm ax25ipd stellt sich als KISS-Interface, �ber das AX.25-Frames
�bertragen werden, und als Interface zu TCP/IP dar. Es wird mit einer
einzigen Konfigurationsdatei, /etc/ax25/ax25ipd.conf, eingerichtet.
21.3.1. Einstellungsoptionen f�r AXIP
Das Programm ax25ipd kennt zwei haupts�chliche Betriebsarten,
�Digipeater�- und �TNC�-Modus.
Im TNC-Modus wird der Daemon wie ein KISS-TNC verwendet, man schickt
KISS-Pakete an das Programm und es sendet diese weiter - dies ist die
�bliche Konfiguration.
Im �Digipeater�-Modus wird der Daemon wie ein AX.25-Digipeater
behandelt. Es gibt einige feine Unterschiede zwischen diesen
Betriebsarten. In der Konfigurationsdatei definiert man �routes� oder
mappings zwischen den AX.25-Ziel-Rufzeichen und den IP-Adressen der
Rechner, denen man die Pakete schicken will.
Jede Route besitzt Optionen, die sp�ter beschrieben werden. Weiterhin
kann man hier folgendes einrichten:
� die tty-Schnittstelle, die vom ax25ipd ge�ffnet werden soll und
deren Geschwindigkeit (�blicherweise ein Ende einer Pipe)
� das Rufzeichen, welches f�r den �Digipeater�-Modus verwendet werden
soll
� Bakenintervall und -text
� ob die AX.25-Frames in IP-Datagramme oder in UDP/IP-Datagramme
gekapselt werden sollen.
So gut wie alle AXIP-Gateways verwenden IP-Kapselung, doch einige
befinden sich hinter Firewalls, die keine IP-Pakete mit der Protokoll-
ID des AXIP durchlassen, und sind daher gezwungen, UDP/IP zu
verwenden. Die hier getroffene Einstellung mu� mit der des TCP/IP-
Zielrechners �bereinstimmen.
21.3.2. Eine typische Datei /etc/ax25/ax25ipd.conf
#
# ax25ipd -Konfigurationsdatei f�r die Station floyd.vk5xxx.ampr.org
#
# Datentransportart w�hlen. �ip� f�r die Kompatibilit�t
# mit den meisten anderen Gateways.
socket ip
#
# Betriebsart des ax25ipd einstellen. (digi oder tnc)
#
mode tnc
#
# Wurde digi eingestellt, mu� ein Rufzeichen angegeben werden.
# Im tnc -Modus ist das rufzeichen zur Zeit optional, doch das kann
# sich in Zukunft �ndern! (2 Rufzeichen bei dual port kiss)
#
#mycall vk5xxx-4
#mycall2 vk5xxx-5
#
# In digi -Modus k�nnen Aliases genutzt werden. (2 f�r dual port)
#
#myalias svwdns
#myalias2 svwdn2
#
# Aussenden einer Indentifikation aller 540 Sekunden ...
#
beacon after 540
#
btext ax25ip -- tncmode rob/vk5xxx -- Experimenteller AXIP Gateway
#
# Serielle Schnittstelle oder mit einem kissattach verbundene Pipe
# in diesem Fall:
device /dev/ttyq0
#
# Transferrate einstellen:
#
speed 9600
#
# loglevel 0 - keine Ausgabe
# loglevel 1 - nur Konfigurationsinformationen
# loglevel 2 - Schwerwiegende Ereignisse und Fehler
# loglevel 3 - Schwerwiegende Ereignisse und Fehler, AX.25-Paketmitschnitt
# loglevel 4 - Alle Ereignisse
#
loglevel 2
#
# im Digi-Modus mit einem echten TNC verwendet man param zur Einstellung
# der TNC-Parameter...
#
#param 1 20
#
# Definition der Broadcast-Adresse . Jede der aufgef�hrten Adressen
# wird an jede als broadcastf�hig markierte Route weitergeleitet
#
broadcast QST-0 NODES-0
#
# Definition der AX.25-Routen, soviele einstellbar, wie ben�tigt.
# Format: Route (Rufzeichen/Wildcard) (Adresse des IP-Zielrechners)
# ssid of 0 routes all ssid's
#
# route [flags]
#
# G�ltige Flags:
# b - Broadcasts d�rfen �ber diese Route
# geschickt werden
# d - diese Route ist die standardm�� voreingestellte
# route vk2sut-0 44.136.8.68 b
route vk5xxx 44.136.188.221 b route vk2abc 44.1.1.1
#
#
21.3.3. ax25ipd starten
Zun�chst wird der Datei /etc/ax25/axports ein Eintrag hinzugef�gt:
# /etc/ax25/axports
#
axip VK2KTJ-13 9600 256 AXIP port
#
Dann wird kissattach gestartet, um diesen Port zu erzeugen:
/usr/sbin/kissattach /dev/ptyq0 axip
Schlie�lich startet man ax25ipd:
/usr/sbin/ax25ipd &
Die AXIP-Verbindung testet man mit:
call axip vk5xxx
21.3.4. Einige Bemerkungen zu Routen und Flags
Mit dem �route�-Befehl gibt man an, wo die AX.25-Pakete gekapselt
hingeschickt werden sollen. Empf�ngt ax25ipd ein Paket von seinem
Interface, so vergleicht das Programm das Zielrufzeichen mit jedem
Rufzeichen in seiner Routing-Tabelle. Bei einer �bereinstimmung wird
das AX.25-Paket in ein IP-Datagramm gekapselt und an den Rechner mit
der entsprechend angegebenen IP-Adresse geschickt. Zwei Flags k�nnen
jedem �route� Befehl in der Datei /etc/ax25ipd.conf hinzugef�gt
werden. Es sind folgende:
b Pakete mit einer Zieladresse, die einer der mit dem
Schl�sselwort �Broadcast� definierten Adressen entspricht,
sollen �ber diese Route weitergeleitet werden.
d Pakete, die mit keiner festgelegten Route �bereinstimmen, sollen
�ber diesen Weg weitergeleitet werden.
Das Flag �b� (Broadcast) ist sehr n�tzlich, da es erm�glicht,
Informationen, die normalerweise f�r alle Stationen gedacht waren,
auch einer bestimmten Anzahl AXIP-Stationen zukommen zu lassen.
Normalerweise sind AXIP-Routen Punkt-zu-Punkt-Verbindungen und k�nnen
nichts mit �Broadcast�-Paketen anfangen.
21.4. Wie verbindet man NOS und die Linux-Kernel-Netzwerk-Software
Viele Leute verwenden eine NOS-Version unter Linux, da es alle von
ihnen gew�nschten Eigenschaften und M�glichkeiten bietet. Die meisten
von ihnen w�rden gern das NOS mit dem Linux-Kernel verbinden, so da�
einige der Linux-M�glichkeiten f�r Funk-Nutzer zur Verf�gung st�nden.
21.4.1. NOS und Linux mit einer Pipe verbinden
Von Brandon S. Allbery, KF8NH, wurden die folgenden Informationen
beigesteuert, die erkl�ren, wie man das NOS mit dem Linux-Kernel-Code
mittels einer Linux-Pipe verbindet.
Da sowohl Linux als auch NOS das SLIP-Protokoll unterst�tzen, kann man
beide �ber SLIP miteinander verbinden. Man k�nnte dazu zwei serielle
Schnittstellen mit einem Loopback-Kabel verwenden, doch das w�re
langsam und kostspielig. Linux stellt wie viele andere UNIX-�hnliche
Betriebssysteme sogenannte Pipes zur Verf�gung. Dabei handelt es sich
um Pseudo-Devices, die f�r die Software wie TTY-Devices erscheinen,
aber in Wirklichkeit eine Schleife (Loopback) auf ein anderes Pipe-
Device darstellen.
Um diese Pipes zu verwenden, mu� das erste Programm das �master�-Ende
und das zweite das �slave�-Ende der Pipe �ffnen. Siehe dazu auch den
Absatz �Dual-Port-TNCs einrichten� unter dem Abschnitt �7.1. KISS�.
Sind beide Enden er�ffnet, so k�nnen die beiden Programme miteinander
Daten austauschen, indem sie Zeichen in die Pipe wie in ein normales
TTY-Device schreiben.
Damit das Ganze genutzt werden kann, um den Linux-Kernel und NOS oder
irgendein anderes Programm miteinander zu verbinden, mu� zun�chst das
zu verwendende Pipe-Device aus dem /dev-Verzeichnis ausgew�hlt werden.
Die �master�-Enden der Pipes tragen die Namen ptyq1 bis ptyqf, die
�slave�-Enden ttyq1 bis ttyqf. Zu jedem �master� geh�rt immer ein
�slave�, so da� man ttyqf als �slave� verwenden mu�, wenn ptyqf als
�master� ausgew�hlt wurde.
Wenn man nun ein solches Device-Paar gew�hlt hat, sollte man das
�master�-Ende mit dem Linux-Kernel und das �slave�-Ende mit NOS
verbinden, da der Linux-Kernel als erstes startet und das
�master�-Ende immer vor dem �slave�-Ende ge�ffnet werden mu�.
Ebenso mu� der Linux-Kernel eine andere IP-Adresse als NOS haben, so
da� man diesem eine eigene IP-Adresse zuweisen sollte, wenn das nicht
bereits geschehen ist.
Die Pipe wird wie ein serielles Device eingerichtet, um eine SLIP-
Verbindung vom Linux-Kernel aus zu erstellen, kann man etwa folgende
Befehle verwenden:
/sbin/slattach -s 38400 -p slip /dev/ptyqf &
/sbin/ifconfig sl0 broadcast 44.255.255.255 \
pointopoint 44.70.248.67 mtu 1536 44.70.4.88
/sbin/route add 44.70.248.67 sl0
/sbin/route add -net 44.0.0.0 netmask 255.0.0.0 \
gw 44.70.248.67
In diesem Beispiel hat der Linux-Kernel die IP-Adresse 44.70.4.88 und
NOS die IP-Adresse 44.70.248.67.
Der route-Befehl in der letzten Zeile veranla�t den Linux-Kernel, alle
Datagramme (Pakete) f�r das AMPRNet (44.0.0.0) �ber die SLIP-
Verbindung, die mit slattach vorher erzeugt wurde, weiterzuleiten.
Im Normalfall kommen diese Befehle in das Skript /etc/rc.d/rc.inet2
(Slackware) nach die �brige Netzwerkkonfiguration, damit die SLIP-
Verbindung beim Neustart automatisch wiederhergestellt wird. Man
beachte, da� die Verwendung von CSLIP (compressed SLIP) hier keinen
Vorteil bringt, da die Verbindung nur virtuell ist und durch das
Komprimieren ein Performanceverlust eintreten w�rde.
Dadurch w�rden die Pakete mit komprimiertem Header langsamer
�bertragen als die unkomprimierten Pakete. Um das NOS-seitige Ende der
SLIP-Verbindung einzurichten, kann man diese Befehle verwenden:
# Das Interface kann einen beliebigen Namen tragen; hier wird
# wegen der Eindeutigkeit �linux� verwendet
attach asy ttyqf - slip linux 1024 1024 38400 route \
addprivate 44.70.4.88 linux
Damit wird ein SLIP-Port mit Namen linux �ber das �slave�-Ende der
Pipe zum Linux-Kernel erzeugt. Der Route-Befehl aktiviert diesen dann.
Wenn NOS gestartet wurde, sollte man jetzt in der Lage sein, ping und
telnet von NOS nach Linux und umgekehrt ausf�hren zu k�nnen.
Funktioniert dies nicht, so mu� man nochmals �berpr�fen, ob kein
Fehler, besonders beim Konfigurieren der Adressen, aufgetreten ist und
die Pipe-Devices ordnungsgem�� verf�gbar sind.
22. Wo finde ich Informationen zu ...?
Da dieser Text einige Erfahrung mit Packet Radio voraussetzt und dies
nicht immer der Fall ist, hat Terry einige Verweise zu n�tzlichen
Informationsquellen zusammengestellt.
22.1. Packet Radio
Allgemeine Informationen zu Packet Radio findet man hier:
American Radio Relay League
http://www.arrl.org/
Radio Amateur Teleprinter Society
http://www.rats.org
Tucson Amateur Packet Radio Group
http://www.tapr.org/
22.2. Protokolldokumentation
Jonathan Naylor hat eine Reihe von Dokumenten gesammelt, die sich mit
den im Packet Radio verwendeten Protokollen besch�ftigen. Sie wurden
gepackt und sind hier zu finden:
ftp.pspt.fi:/pub/ham/linux/ax25/ax25-doc-1.0.tar.gz
22.3. Hardware-Dokumentation
Informationen zur PI2-Karte werden von der Ottawa Packet Radio Group,
zur Verf�gung gestellt. Informationen zur Baycom-Hardware ist auf der
Baycom-WWW-Seite
http://www.baycom.de/
zu finden. Eine Seite mit vielen Links zum Thema Amateurfunk und
Packet Radio findet man hier:
http://www.ardos.de/gerd/ham.html
23. Diskussionsforen zu Amateurfunk und Linux
Diskussionen zu Amateurfunk und Linux finden an vielen Stellen statt.
Sowohl in den Newsgroups der comp.os.linux.*-Hierarchie, als auch in
der HAM-Liste auf vger.rutgers.edu kann man an ihnen teilnehmen.
Ebenso gibt es noch die tcp-group-Mailingliste auf ucsd.edu als Heimat
f�r die Diskussionen �ber TCP/IP im Amateurfunk und ebenso den Channel
#linpeople auf IRC. Die Mailingliste f�r FPAC erreicht man unter
[email protected].
Um der Mailingliste linux-hams beizutreten, sendet man eine E-Mail an
[email protected], die den Text
subscribe linux-hams
enth�lt.
Die �Subject�-Zeile wird ignoriert (freilassen). Diese Mailingliste
wird hier archiviert:
�
http://hes.iki.fi/archive/
�
http://zone.oh7rba.ampr.org/archive/linux-hams
F�r den Anfang sollte man diese Archive verwenden, da viele h�ufige
Fragen hier bereits beantwortet werden.
Der tcp-Gruppe tritt man so bei: E-mail an
[email protected] mit der
Zeile
subscribe tcp-group
als Text schicken.
Beachte: Die TCP/IP-Gruppe ist prim�r f�r Diskussionen �ber
verbesserte Protokolle, wie TCP/IP, im Amateurfunk gedacht. Linux-
spezifische Fragen sollten m�glichst nicht dort gestellt werden.
24. Danksagung
Folgende Leute haben auf die eine oder andere Weise, wissentlich oder
unwissentlich, zum Entstehen dieses Textes beigetragen.
In ungeordneter Reihenfolge sind dies Jonathan Naylor, Thomas Sailer,
Joerg Reuter, Ron Atkinson, Alan Cox, Craig Small, John Tanner,
Brandon Allbery - und nicht zuletzt der Autor des englischen
Originaltextes, Terry Dawson, dem ich an dieser Stelle f�r seine
geduldigen und kompetenten Antworten in der Linux-Ham-Mailingliste
danken will.
Bitte Fragen zur deutschen Version nicht an Terry Dawson oder in die
Linux-Ham-Mailingliste sonder an Gerd R�thig (
[email protected]
leipzig.de) schicken. Ich w�rde mich freuen, wenn ich �ber evtl.
notwendige Ver�nderungen, Umformulierungen oder Korrekturen in
Kenntnis gesetzt w�rde. Viel Freude also mit Linux und Packet Radio,
55 & 73.
25. Copyright
Dieses Dokument ist urheberrechtlich gesch�tzt. Das Copyright f�r die
englische AX25 HOWTO, auf der dieses Dokument basiert, liegt bei Terry
Dawson. Das Copyright f�r die deutsche Version liegt bei Gerd R�thig
und Marco Budde.
Das Dokument darf gem�� der GNU General Public License verbreitet
werden. Insbesondere bedeutet dieses, da� der Text sowohl �ber
elektronische wie auch physikalische Medien ohne die Zahlung von
Lizenzgeb�hren verbreitet werden darf, solange dieser Copyright
Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt
und ausdr�cklich erw�nscht. Bei einer Publikation in Papierform ist
das Deutsche Linux HOWTO Projekt hier�ber zu informieren.
26. ANHANG: Einige aus dem Englischen �bernommene Fachbegriffe
und deren Erkl�rung
Broadcast
Aussendungen, die nicht an eine bestimmte Adresse, sondern an
alle gerichtet sind und daher unprotokolliert
gesendet werden (Beispiel: Aussendung der Routing- Informationen
durch NetROM, auch Baken k�nnen in diesem Sinne als Broadcast
betrachtet werden)
Device
hier im Sinne eines sogenannten �virtuellen Ger�ts� gebraucht,
d.h., ein Treiber (Driver) stellt ein Software-Interface zur
Verf�gung, das �hnlich wie eine Ger�tedatei angesprochen werden
kann. Auf diese Weise wird die Unterscheidung zwischen den
Protokollen realisiert - jedem dieser Devices ist genau ein
�bertragungsprotokoll zugeordnet. Sie k�nnen auf weiteren
Devices aufsetzen, also deren Geladensein voraussetzen.
Digipeater
Station, die die eigenen Pakete, so wie sie sie empf�ngt,
wiederholt (DIgital rePEATER), es erfolgt kein direkter
Verbindungsaufbau zu diesem Rechner, sondern man baut einen Link
"�ber" (via) ihn auf
Encapsulation
svw. Kapselung (hier auch so �bersetzt), bezeichnet einen Weg
der �bertragung �ber mit TCP/IP arbeitende Netzwerke, indem
AX.25-Pakete in spezielle IP-Datagramme hineingeschrieben
werden. Die Protokoll-Informationen des IP wirken dann wie eine
�Kapsel� um das AX.25-Frame herum, die dessen unbeschadeten
Transport und Identifikation erm�glicht
Heard, MHeard
Ausgabe, welche Stationen auf einem bestimmten Kanal geh�rt
(aufgenommen) werden konnten
Gateway
hier: mit mehreren Netzen gleichzeitig verbundener Rechner, an
den alle Pakete gehen, die innerhalb eines Netzes nicht
zugestellt werden k�nnen - diese Pakete werden dann in eines der
anderen erreichbaren Netze weitergeleitet
Nodes
meist TNCs mit spezieller Node-Software ohne daran
angeschlossenen Host-Rechner, aber auch PCs mit entsprechender
Software (z.B. node oder BPQ), zu denen man im Unterschied zu
den Digipeatern eine direkte Verbindung aufbaut und ihnen dann
den Befehl zum Weiterverbinden gibt
Obsolescence
(svw. Alterung) NetROM-Begriff, der die Aktualit�t einer
Verbindung angibt, Zeitspanne, die seit der letzten geh�rten
Aktivit�t der betreffenden Station vergangen ist, zur
Beurteilung der Qualit�t einer Funkverbindung hilfreich
Routing
Weiterleiten von Paketen/Daten auf einem vorgegebenen Weg/an
einen in der Routing-Tabelle (routing table) festgelegten
Rechner, evtl. auf einem dort definierten Weg (Routing-Path).
Switching
svw. Umschalten: Aussenden/Weiterleiten von Daten �ber einen
anderen Kanal/Port, netzwerktechnisch Schalten einer Punkt-zu-
Punkt-Verbindung zwischen Sender und Empf�nger f�r die Zeitdauer
der �bertragung des entsprechenden Paketes
Ein Wort zu Kernel 2.2 und dessen derzeitigem Entwicklungsstand
Aktuelle Mitteilung: Das AX.25-Subsystem ist im Kernel 2.2.x noch
unvollst�ndig. Wenn man beispielsweise ein AX.25-Netzwerk-Device bei
einem noch laufenden Connect herunterf�hrt, bekommt man einen
Systemabsturz (�Oops�). Um das System wieder nutzbar zu machen, ist
anschlie�end ein Neustart f�llig.
Ich wurde gefragt, weshalb der aktuelle Kernel 2.2 momentan in diesem
HOWTO keine ausf�hrlichere Erw�hnung findet. Meine pers�nliche Meinung
dazu gibt folgendes Statement wieder:
Zum derzeitigen Zeitpunkt ist ein Upgrade auf den Kernel 2.2 keine
gute Wahl. Der Kernel verwendet in vielen Bereichen eine andere
Treiberarchitektur, was zur Folge hat, da� bestimmte Hardware neu
eingerichtet werden mu�. Was auf die Hardware-Treiber zutrifft, ist
auch beim Kernel-AX.25 der Fall - eine v�llige Neueinrichtung wird
f�llig.
Da die Systemschnittstelle auch im AX.25-Bereich abgewandelt wurde,
werden �ltere Bin�rversionen der AX.25-Programme nicht mehr
vollst�ndig funktionieren. Es kann nur geraten werden, abzuwarten, bis
das neue AX.25-Subsystem und die Programmierschnittstelle
fertiggestellt ist.
Zu deren Neu�bersetzung siehe Bemerkung am Ende dieses Textes. Fakt
ist weiterhin, da� der Kernel 2.2 h�here Speicheranforderungen als die
2.0.x-Reihe stellt. Da aber als PR-Rechner meistens �ltere und weniger
gut ausgestattete Systeme zum Einsatz kommen, ist ein Upgrade auch aus
diesem Grunde nicht ratsam.
Hinzu kommt noch die Tatsache, da� laut Alan Cox auch die Kernel der
2.0.x-Reihe weiterentwickelt werden sollen. Man kann sich also die
Upgrade-Orgie noch etwas aufsparen (neben den neuen Kernelsourcen wird
die Aktualisierung einiger anderer Programmpakete f�llig) und
abwarten, bis es beispielsweise Version 2.2.30 gibt. Nicht ohne Grund
beobachtet man derzeit eine sehr rasche Folge neuer Versionen in der
2.2.x-Reihe.