Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


ISDN

Analog-Modem ] [ ISDN ] DSL ] Verbindungssteuerung ]


Etwas mehr Datenübertragung (64 KBit/s bzw. 128 KBit/s bei Kanalbündelung) und einen schnelleren Verbindungsaufbau bietet ein ISDN-Zugang. In diesem Unterkapitel wird der Internet-Zugang mittels ISDN-Karte unter Debian-Linux beschrieben, dabei wird ein Zugang mit einer passiven ISDN-Karte anhand des Providers 'Arcor' als Beispiel aufgeführt. Auch wird nur das Einbinden der ISDN-Karte nur mit fertigen Modulen im System vorgestellt. Anleitungen, wie Treiber für ISDN im Linux-Kernel,  bzw. wie spezielle Karten (aktive Karten) in System einzubinden sind, können im Internet gefunden werden.
Die folgende Abbildung zeigt schematisch die Kette vom Übergabe-Anschluss, über den NTBA (Network Termination BasisAnschluss), bis hin zur ISDN-Karte die sich im Computer befindet:

Der NTBA wandelt die ankommende ISDN-Zwei-Draht-Verbindung von Telefon-Netzbetreiber auf eine ISDN-Vier-Draht-Verbindung.

Installation ISDN-Karte

Damit die ISDN-Karte im Linux-System genutzt werden kann, sind zunächst einige Module zu laden. Es ist nicht zwingend notwendig einen neuen Kernel zu übersetzen; alle benötigten Module wurden zusammen mit dem Debian-Kernel installiert. Bei ISDN-Karten wird zwischen Aktiven- und Passiven-Karten unterschieden. Aktiv-Karten benötigen meist vom Hersteller spezielle Treiber/Module, eventuell müssen diese auch zwingend im Kernel eingebunden werden. Bei fast allen gängigen Passiven-Karten kann das Modul 'hisax' genutzt werden. Eine genaue Übersicht der unterstützten Karten, kann mit 'man hisax' gewonnen werde. Aus der Manualseite kann auch die Typ-Nr. zum Laden des Treibers und die weiteren notwendigen Parameter entnommen werden.

Die notwendigen Module zum Einbinden der ISDN-Karte sollten zunächst von Hand als Benutzer 'root' mit dem Kommando 'modprobe' geladen werden. Später, wenn sich das ISDN-System als funktionstüchtig erwiesen hat, sind die notwendigen Module in der Datei '/etc/modules' einzufügen, damit sie automatisch beim Systemstart mitgeladen werden.

Zunächst sollten die Module 'isdn' und 'hisax' geladen werden:

modprobe isdn
modprobe hisax type=5 protocol=2 io=0x340 irq=10

Das korrekte Laden der Module sollte mittels 'tail -f /var/log/syslog' beobachtet werden. Dabei sollte beim Laden des Moduls 'isdn' automatisch das Modul 'slhc' mitgeladen werden.
Beim Laden des Moduls 'hisax' müssen je nach verwendeter ISDN-Karte unterschiedliche Parameter mitgegeben werden. Die Reihenfolge der Parameter ist beliebig. Mit dem Parameter 'type' wird die Hardware festgelegt (Kartentyp, '5'='AVM Fritz PCI-Karte'). Mit 'protocol=2' wird EURO/DSS1 festgelegt, 'io' entspricht der I/O-Adresse und 'irq' legt den Interrupt der Karte fest.
Mit 'cat /proc/interrupts'  und  'cat /proc/ioports' können freie bzw. nach dem Laden die aktuelle irq/io-Port-Belegung  geprüft werden. Ob die Module geladen sind, sollte abschließend mit 'lsmod' kontrolliert werden.

Als Bemerkung ist noch zu erwähnen, dass bei modernen Linux-Distributionen die Module für die ISDN-Karte evtl. beim Systemstart durch automatischer Hardware-Erkennung gefunden und geladen werden, sodass man sich im besten Fall um nichts kümmern brauch. Leider kann es evtl. auch zur Fehlerkennungen kommen und eine Nacharbeit zum Laden der Module ist notwendig. Genaue Hilfestellungen lassen sich meist für die eingesetzte ISDN-Karte und die verwendete Distribution im Internet finden.

Konfiguration eines ISP-Zugangs

Nachdem alle notwendigen Module für die ISDN-Karte geladen sind, kann diese für den Internet-Zugang konfiguriert werden. Die Konfiguration des Zugangs kann am einfachstem mit dem Kommandozeilen-Tool 'isdnconfig' erfolgen. 'isdnconfig' ist Bestandteil des Paketes 'isdnutils', welches mit 'apt-get install isdnutils' installiert werden sollte. Während der Installation von 'isdnutils' werden auf der Kommandozeile folgende Fragen gestellt:

  • Muss eine Firmware geladen werden? <keine>
    Bei passiven ISDN-Karten ist es nicht notwendig eine Firmware zu laden.
  • What is your ISP's telephone number? <manual>
    Kann auf Default-Wert belassen werden.
  • Entering isdnlog configuration: <Ok>
  • In welchem Land steht dieser Rechner? <DE>
    Für Deutschland ist 'DE' auszuwählen.
  • Wie ist die Ortsvorwahl, wenn verfügbar? <5251>
    Hier ist die Ortsvorwahl, ohne führende Null einzusetzen.
  • What number should vbox answer: <quit>
    Default-Wert kann so belassen werden.

Nach der Installation der 'isdnutils' kann nun 'isdnconfig' zur weiteren Konfiguration aufgerufen werden: Das eigenständige Programm macht im Prinzip nichts anderes, als vorkonfigurierte Skelett-Dateien für die Konfiguration der Netzwerkgeräte zu erzeugen.

Isdnutils configuration
=======================

1 network devices
2 synchronous ppp daemon
3 modem emulation
4 voice box configuration

Q Quit

Your choice :

Zur Konfiguration eines Internet-Zugangs brauchen nur die ersten beiden Punkte des Hauptmenüs durchlaufen werden, dazu ist zunächst im Punkt '1' ein Netzwerk-Device zu erstellen:

Isdnutils configuration network interfaces
======================= ------------------

Searching for existing configuration files...
Found : NONE


Devices should be named :
- rawip interface isdn0 isdn1 ...
- synchronous ppp interface ippp0 ippp1 ...

Name for new interface : ippp0
Installed new config file /etc/isdn/device.ippp0 .
This file is only an example.
You have to edit this file for it to work.
Press [Enter]

Bei der Erstellung des Devices ist zunächst ein Name anzugeben, in diesem Beispiel 'ippp0' für das erste ISDN-Gerät. Für weitere Devices sollte die Nummer entsprechend hoch gezählt werden ('ippp1', 'ippp2', usw.). Durch ein abschließendes 'Enter' gelangt man wieder zurück in das Hauptmenü.
Es kann nun Punkt '2', zur Erstellung des 'synchronous ppp daemon' aufgerufen werden:

Isdnutils configuration synchronous ppp daemon
======================= ----------------------

Searching for existing configuration files...
Found : NONE


Normal setup :  one ipppd for all devices: /dev/ippp0 /dev/ippp1 ...
                All ippp* network interfaces are handled by a single ipppd
                process using a single config file.

Special setup : one ipppd for each device: /dev/ippp0 /dev/ippp1 ...
                Each ippp* network interface is handled by its own ipppd
                process, using a specific config file for each.
                You need to use pppbind on each network interface to select
                which /dev/ippp* device will be used.

Usually only a single ippp interface is used (for connecting to an ISP), so
the above isn't really relevant to most users.

Name for new configuration (ippp0 ippp1 ...) : ippp0
Installed new config file /etc/isdn/ipppd.ippp0 .
Installed new config file /etc/ppp/auth-up .
Installed new config file /etc/ppp/auth-down .
These files are only an example.
You have to edit these files for them to work.
Press [Enter]

Hier ist wieder der Name der Konfigurationsdatei einzugeben ('ippp0') und mit 'Enter' zu bestätigen.

Wieder zurück im Hauptmenü, kann dieses mit 'q' verlassen werden. Nach dem Beenden sollten sich die jetzt erzeugten Skelett-Dateien, in diesem Fall die Dateien: 'ippd.ippp0' und 'device.ippp0', im Verzeichnis '/etc/isdn' befinden. In beiden Dateien ist die Konfiguration weiter fortzusetzen.

In der Datei 'ippd.ippp0' sind zunächst die Kommentarzeilen (grüne Markierung) zu löschen. Dabei sollten die Zeilen auch wirklich gelöscht werden, ein Auskommentieren reicht nicht aus.

Auszug aus: /etc/isdn/ipppd.ippp0 (ca. Zeile: 6, 42)

# Options file for ipppd.
# ipppd will not read /etc/ppp/options or /etc/ppp/ioptions or any other
# config file. Everything has to be in here.

# REMOVE the next line once configuration is complete #########################
# Warning! not configured yet!
# REMOVE the above line once configuration is complete ########################


...
# AUTHENTICATION

name arcor # set local name for auth XXX_

Weiterhin wichtig ist vor allem die Sektion 'AUTHENTICATION', in der Zeile 'name' ist die Benutzerkennung beim Provider einzutragen, in diesem Fall 'arcor'.

Auch in der Datei 'device.ippp0' ist zunächst die grün markierten Zeilen zu entfernen. Unter 'LOCALMSN' ist die eigene MSN (Multiple Subscriber Number) einzutragen. Vor der MSN ist jedoch die Ortskennzahl (Vorwahl) ohne die führende '0' zu setzen. In der Zeile 'REMOTEMSN' ist die Einwahlnummer des Internet-Providers, ebenfalls ohne '0', einzutragen.

Auszug aus: /etc/isdn/device.ippp0 (ca. Zeile: 3, 77)

#!/bin/sh

# REMOVE the next line once configuration is complete #########################
echo "Warning! $0 not configured yet! Aborting..."; exit 1
# REMOVE the above line once configuration is complete ########################


...
...

LOCALMSN=52518719917 # XXX_
REMOTEMSN=1920781    # XXX_
LEADINGZERO=0        # XXX_ use LEADINGZERO='' if you have no areacodes.

# DIALMODE:
# New with kernel 2.0.36 is the `dialmode' setting.
# dialmode=auto is compatible with the old behaviour (dial-on-demand enabled).
# Read the isdnctrl manpage for more info.
# Change the value below if you want a different setting when the interface is
# started.
# For slave devices (channel bundling) dialmode _must_ be auto,
# so for slave devices this setting is ignored.

DIALMODE=manual      # XXX_ other values can be 'on' and 'off'

...

Der Eintrag 'DIALMODE' kann den Wert 'auto' oder 'manual' annehmen. 'auto' entspricht 'Dial-on-Demand', d.h. wenn eine Internet-Adresse eingegeben wird, wird automatisch der Provider angewählt. Bei Fehlkonfiguration kann dieses evtl. zu hohen Kosten führen, besser ist vielleicht der Wert 'manual'.

In der Datei 'pap-secrets' ist weiterhin die Konfiguration zur Authentifizierung zu vervollständigen:

Auszug aus: /etc/ppp/pap-secrets (ca. Zeile: 40)

...

# OUTBOUND connections

# Here you should add your userid password to connect to your providers via
# PAP. The * means that the password is to be used for ANY host you connect
# to. Thus you do not have to worry about the foreign machine name. Just
# replace password with your password.
# If you have different providers with different passwords then you better
# remove the following line.

#       *       password
"arcor"        "*"        "internet"

Dazu ist das zur Authentifizierung notwendige Passwort für diejenige Verbindung eingetragen, deren Name 'arcor' lautet. Das Passwort ist in diesem Fall 'internet'; der Stern '*' bedeutet, das dass Passwort für jeden Host genutzt wird, zudem eine Verbindung aufgebaut wird.

Damit auch eine Namensauflösung im Internet stattfindet, sind weiterhin noch die Nameserver des Internet-Providers in der 'resolv.conf' einzutragen:

Auszug aus: /etc/resolv.conf

search eusterholz.tld
nameserver 145.253.2.11
nameserver 145.253.2.75

Die Nameserver können bei den jeweiligen Internet-Provider in Erfahrung gebracht werden.

Damit nun die Änderungen aktiv werden ist das ISDN-Subsystem neu zu starten:

/etc/init.d/isdnutils restart

Während des Starts sollten die log-Dateien, unter '/var/log/syslog', beobachtet werden.

Test / Handling ISDN-Systems

Als erster Test sollte auf der Kommandozeile mit 'ifconfig' nachgesehen werden, ob das konfigurierte Interface 'ippp0' als 'Protokoll:Punkt-zu-Punkt Verbindung' vorhanden ist.

Zur Steuerung des ISDN-Interfaces dient das Programm '/usr/sbin/isdnctrl', welches mit entsprechenden Parametern aufzurufen ist. Hier einige Basis-Kommandos zum Handling der Verbindung des Interfaces 'ippp0':

  • 'isdnctrl dial ippp0'
    Die ISDN-Verbindung wird aufgebaut.
  • 'isdnctrl hangup ippp0'
    Die Verbindung wird abgebaut.
  • 'isdnctrl dialmode ippp0 auto'
    Der Wählmodus wird auf  'auto' gestellt ('Dial-on-Demand'); weitere Parameter für den Wahlmode können 'manual' oder 'off' sein.
  • 'isdnctrl status ippp0'
    Der aktuelle Status des Interfaces wird ausgegeben.

Bei den ersten Auf- bzw. Abbau-Versuchen der Verbindung sollte unbedingt parallel die log-Datei ('/etc/var/syslog') beobachtet werden. Hier kann am einfachsten eine evtl. Fehlkonfiguration festgestellt werden. Untern ist ein Link mit Beispielen von log-Dateien beim Auf-/Aufbau der Verbindung zu finden.

Weitere Test sollten mit einen einfachen ping-Kommando auf eine Internet-Adresse geschehen. Auch sollte, falls installiert, das Surfen mittels dem Browser 'lynx' auf der Textkonsole funktionieren.

Anmerkungen

Mit den Kommandozeilen-Tools 'imon' und 'imontty' kann der aktuelle Verbindungszustand ausgegeben werden. Mittels 'isdnrep' wird ein Bericht mit allen ISDN-Verbindungen und Kosten ausgegeben.

Mittels der Kanalbündelung (Multilink) können zwei ISDN-Kanäle (128 KBit/s) gleichzeitig zur Übertragung von Daten genutzt werden. Dies kann die Downloadzeiten im besten Fall halbieren, hat aber auch im allgemeinen die doppelten Kosten für die zweite Leitung zur Folge. Detaillierte Anleitungen, wie dieses unter Debian-Linux zu realisieren ist, können im Internet gefunden werden.

Weitere Infos

Homepage: ISDN4Linux http://www.isdn4linux.de/
ISDN4LINUX - FAQ (deutsche Version) http://www.isdn4linux.de/faq/
Linux ISDN HOWTO http://www.klaus.franken.de/DE-ISDN-HOWTO/html/DE-ISDN-HOWTO.html
Manualseiten zu: hisax man hisax
Manualseiten zu: isdnctrl man isdnctrl
Manualseiten zu: ipppd man ipppd
System-Dokumentation: isdnutils /usr/share/doc/isdnutils
Beispiele von Log-Dateien beim Auf-/Aufbau der Verbindung. LOG-Files

Home ] Nach oben ] Analog-Modem ] [ ISDN ] DSL ] Verbindungssteuerung ]

letzte Änderung: 15. November 2006

 

Copyright © 2004 Norbert Eusterholz