Die TCP/IP-Nutzung wird komplett über die Konfigurationsdatei abgewickelt, in der die Routen eingetragen werden.
Nach dem starten des Masterprogrammes sollten dann mit dem Befehl "route" eine Routingtabelle angezeigt werden, in der Routen für die konfigurierten Systeme angezeigt werden.
Der Befehl "ifconfig" sollte dann die interfaces und die Point-To-Point Verbindungen zu den entfernten Rechner anzeigen.
Anmerkung des Setzters: Hat das interface "str" eigentlich einen besonderen Hintergrund?
der Befehl "ping <IP-Nummer der Gegenstelle>" sollte dann eine Verbindung aufbauen.
Mit dem Befehl AT/L im Terminalbetrieb (siehe Terminal ) läßst sich kontrollieren, ob die Verbindung aufgebaut wurde bzw. wird.
So ein TCP/IP-Draht über ISDN mag ja ganz nett sein, aber irgendwie müssen andere wissen, wie sie vom lokalen Netz zum IP-Rechner zur Gegenstelle können. Und umgekehrt.
Das ganze Thema ist zu kompliziert, um es hier abzuhandeln. Man lese ein gutes Buch über den Kram, zB Stevens.
Wichtige Spezialfälle
Es fällt außerdem auf, daß ich nichts von routed und ähnlichen Programmen gesagt habe. Das ist Absicht. Konfiguriert eure Routen lieber statisch, das ist gesünder...
Mit 'cu -l /dev/isdn/isdn1' kann U-ISDN im Terminalbetrieb benutzt werden.
Anmerkung: Einige Terminalprogramme (z.Bs. Minicom) wollen lieber /dev/ttyi1 haben.
Alle Schlüsselbuchstaben können groß oder klein geschrieben werden. Das "AT" muß entweder vollständig groß oder vollständig klein geschrieben werden. Zeichen vor dem "AT" werden ignoriert.
Schaltet Verbindung <n> von "off" auf "down" um. Siehe AT/L .
Beendet alle laufenden Verbindungen. Kann nur vom Superuser ausgeführt werden.
Beendet die Verbindung <n>, beendet das betreffende Programm.
Listet den momentanen Status aller Verbindungen für die angegebene Karte (kann weggelassen werden: alle Karten).
<[minor:]id> <Art> <Partner> <Key> <pid> <Modus/Karte> <UnitNow> <UnitAll> <Status> <minor> Nummer der Verbindung, für AT/K o.ä. <n> interne Folgenummer der Statusmeldung; Meldungen, die einen alten Status ersetzen, bekommen dieselbe Nummer. <pid> PID des Prozesses, der für die Verbindung gestartet wurde. <Modus> off Verbindung nicht aktiv, wird bei ankommendem Ruf reaktiviert. down Standby; sobald ein Datenpaket ansteht, wird die Verbindung aufgebaut. up Verbindung steht ->down ->up Verbindung wird gerade ab- bzw. aufgebaut. Zusätzlich kann hinter <Modus> erscheinen: .N Nter Anwahlversuch -N ... nachdem N Serien fehlgeschlagen sind. <UnitNow> Einheiten in der aktuellen Verbindung. <UnitAll> Einheiten insgesamt seit Start des Prozesses. <Flags> interner Zustand der Verbindung, komma remote-Nummer, strichpunkt lokale-Nummer (jeweils wenn bekannt/vorhanden). Interner Zustand: :in Ruf ankommend :ou Ruf abgehend :dP virtuelle Verbindung :dL Festverbindung :dM Dialup, mehrfachaktiv :dD Dialup, nur einmal aktiv :is Verbindung ist unterbrechbar :nc entfernte Nummer ist vollständig :lc lokale Nummer ist vollständig :oc Info für abgehende Verbindung ist vollständig :si Verbindung ist neu gestartet :sl Verbindung wird wieder aufgebaut :nj, :xi, :yi, :bi, :il, :fX, :fr, :ib siehe P-Zeile. Der interne Zustand existiert in permanenter (bleibt mehr doer weniger konstant) und in transienter (wird pro Verbindungsaufbau neu generiert) Form. Der permanente Teil wird zuerst ausgegeben, danach folgt entweder ein / (der transiente Teil fängt bei Null an) oder ein ^ (der zweite Teil übernimmt die vorher angegebenen Flags; nochmals aufgeführte Flags werden wieder gelöscht). <Status> Text; Meldung der Vermittlung (Groß/Kleinschreibung) oder interner Zustand (Großschreibung).Ein Ausrufezeichen an erster Stelle bedeutet, daß die Verbindung intern nicht mehr bekannt ist, der Zustand aber noch eine Zeitlang aufgehoben wird.
Ein Minuszeichen am Anfang meldet die Löschung dieses internen Zustands; das ist für Monitorprogramme interessant, die den Status anzeigen wollen, ohne sich darum zu kümmern, wie lange sie alte Meldungen aufheben wollen.
Jede Minute wird außerdem ein Zeitstempel der Form "#xx: hh:mm" ausgegeben. xx ist die Zahl der Minuten, die der Master aktiv ist; hh und mm sind die aktuelle Uhrzeit.
Bis zum nächsten AT-Befehl bleibt der Kanal im Monitormodus und meldet alle Zustandsänderungen automatisch. Außerdem kommt jede Minute eine "Keepalive"-Zeile mit der aktuellen Uhrzeit sowie der Anzahl der Minuten, die der Masterprozeß diesmal durchgelaufen ist. ;-)
Listet den internen Zustand. In der ersten Zeile stehen die erkannten ISDN-Karten, die zweite Zeile enthält den internen Zustand des ISDN-Systems. Zum Debuggen.
Beobachtet den Traffic auf den D-Kanälen der Karte (kann ein Pattern sein: AT/W* auf allen Karten). Dazu muß :de in der DL-Zeile stehen. Bei aktiven Karten sind das die Protokolldaten, zB. CAPI-Nachrichten. Die Daten werden _nicht_ interpretiert.
Zusätzlich werden dieselben Daten wie bei AT/L angezeigt.
Sendet den Systembefehl "foo" nach unten. Gefährlich. Kann zum Online-Rekonfigurieren von Modulen verwendet werden. Beispiel: AT/M pr :mi 2 ::ms :ms timer :tr 30 :tw 30 :ti 10 würde auf Verbindung 2 den automatischen Verbindungsabbau dazu überreden, alle 10 Sekunden nachzusehen, ob in den letzten 30 Sekunden keine Daten übertragen wurden, und die Verbindung gegebenenfalls beenden.
Programmende. Kann nur vom Superuser ausgeführt werden.
Reload der Konfigdatei. Kann nur vom Superuser ausgeführt werden. Alle wegen eines Fehlers deaktivierten Programme werden wieder aufgeweckt.
Abbruch der Verbindung <n>. Kann nur vom Superuser ausgeführt werden.
Sucht Nummer und Protokoll in der Konfigdatei, wählt, macht Verbindung auf.
trennt die Verbindung.
wechselt vom Online- in den Befehlsmodus, falls erlaubt. Der Interpreter antwortet mit OK. (zum Verbieten: entsprechenden Konfigurationsbefehl für das proto -Modul verwenden.)
"+++" zum Wechseln funktioniert _nicht_.
Diverse andere Befehle sind 100% ungetestet. <BREAK> habe ich seit Ewigkeiten nicht mehr ausprobiert. ATA existiert nicht; stattdessen Konfigdatei ändern.
AT OK Der Interpreter im Kontrollprogramm tut so, als wäre er ein Modem mit Hayes-Befehlssatz, und schickt ein OK zurück. Hinweis: Das Ding ist minimal und kann nichtmal ATEx oder ATVx. ATD/subnet/login [ Virtuelles Rappeln einer Wählscheibe ] RRING CONNECT login: Die Verbindung steht. Viel Spaß beim Hacken eines Paßworts. ;-)
Statt ATD/name funktioniert auch ATDnummer; /login ist der Default für das Protokoll.
Beispielkonfiguration mit X.75
Anmerkung des Setzters: Vielen Dank an Michael Povel für diesen Abschnitt.
Anmerkung des Setzters: Vielen Dank an Edmund Mergl für diesen Abschnitt.
set DxJNumber "01910" if {[CeptdOpenISDN /dev/isdn/isdn68 ATD/cept/cept] == -1} { set stat $CeptdStatus } else { CeptdSendStatus ISDNCONNECT return 0 } CeptdSendStatus $stat return -1
user@host
btx 20005/tcp ceptd
btx stream tcp nowait uucp /usr/local/bin/ceptd ceptd
Nicht vergessen: auch der ceptd braucht die libtcl! Das Frontend xcept laeuft bei mir auf einem anderen Rechner. Das ist aber natuerlich nicht notwendig. Alles auf einem Rechner muesste genau so funktionieren.
Beispielkonfiguration für BTX/XCept
Anmerkung des Setzers: Vielen Dank an Andreas Haumer für diesen Abschnitt.
Derzeit kann UISDN noch keine Login-Verbindung aufbauen und diese dann nachträglich in den SLIP-Modus schalten.
Eine Möglichkeit das Problem zu umgehen ist die Verwendung von DIP oder Diald mit einem UISDN-tty.
Über das DIP- oder CHAT-Script kann die Login-Sequenz konfiguriert und nachdem man sich erfolgreich eingeloggt hat kann in den SLIP-Modus ge- schaltet werden.
Im Prinzip wird Diald bzw. DIP genauso konfiguriert, als würden die Daten über analoge Modems ausgetauscht. Diese Programme "wissen" daher nicht, daß sie über eine digitale ISDN-Strecke kommunizieren.
In UISDN selbst wird für die hier beschriebene Anwendung eine einfache Login-Verbindung konfiguriert. In der Regel werden dabei X.75 Pakete mit HDLC verwendet.
Anmerkung: Wichtig ist, daß für UISDN nur eine normale Login-Verbindung konfiguriert wird; ein ISDN SLIP-Modul wird für die hier beschriebene Anwendung nicht benötigt (Im Linux Kernel muß SLIP allerdings schon konfiguriert sein!) Das " timer "-Modul kann bei Verwendung von Diald auch weggelassen werden, da dieses selbst eine umfangreiche Zeitüberwachung besitzt.
Anmerkung des Setzers: Da ich bisher noch nicht mit diald gearbeitet habe, muss ich mich erst noch selber durch die Anleitung von Andreas ackern, bis ich das richtig setzten kann (und auch die Zeit dazu habe ;-)
Vor dem Einsatz von DIP muß ein entsprechendes DIP-Script erstellt werden.
Dieses könnte wie folgt aussehen:
[----- Begin Example tu-isdn.dip -----]
main:
port ttyi1
init AT
send AT\r
wait OK 2
if $errlvl != 0 goto error
send atd/tu/login\r
wait CONNECT 10
if $errlvl != 0 goto error
login:
sleep 1
send \r\n
wait name: 10
if $errlvl == 0 goto got_name
send \r\n
wait name: 10
if $errlvl != 0 goto error
got_name:
send myusername\n
wait word: 10
if $errlvl != 0 goto error
send mypassword\n
wait TS> 10
if $errlvl != 0 goto error
send slip /compressed\n
get $locip remote 10
get $rmtip IPB.IPB.IPB.IPB
get $mtu 1500
print $locip CONNECTED to $rmtip
default
mode CSLIP
goto exit
error:
print CONNECT FAILED!
exit:
exit
[----- End Example -----]
Anmerkung:Weitere Informationen zu DIP entnehme man bitte der Manual-Page zu DIP. Ich verwende dip-3.3.7n-uri.
Leider sind die erzielten Datenraten für ISDN nicht sonderlich hoch, da die Pakete zwischen Kernel und Userprozess kopiert werden müssen.
Beispiel: Übertragung einer komprimierten Binärdatei (986431 Bytes) mit FTP. UISDN-System: i386DX-33, 8MB Ram, Teles.S0, UISDN-33, diald-0.11 ISDN Gegenstelle: unbekannt Folgende Werte habe ich gemessen: +-----------+-----------+ | put | get | +--------------------+-----------+-----------+ | Anzahl Meßwerte | 10 | 10 | | Mittelwert | 3.68 | 3.6 | | Standardabweichung | 0.139 | 0.067 | | Variationsbreite | 0.3 | 0.2 | +--------------------+-----------+-----------+ [Alle Durchsatzangaben in kB/s]
Der Datendurchsatz ist für ISDN nicht gerade berauschend, was aber auch an meiner langsamen Hardware liegt.
In Zukunft kann die Anwahl eines derartigen Systems vielleicht von einem UISDN "chat"-Modul vorgenommen werden (wenn sich jemand findet, der so etwas schreibt).
Beispielkonfiguration für X.75
Anmerkung des Setzers: Vielen Dank an Dirk Sommerfeld für diesen Abschnitt.
Die SPV ist eine besondere Form der TCP-Anwendung und wird von der Deutschen Telekom AG nur in Verbindung mit einem 1TR6-Anschluß angeboten. Hierbei wird die Nutzung pauschal abgerechnet.
Anmerkung:Auch der bei einer SPV benutzte 1TR6-Anschluß ist ein Anschluß mit 2 B-Kanälen, sodaß durchaus der 2. Kanal auch genutzt werden kann.
Next Chapter, Previous Chapter
Table of contents of this chapter, General table of contents
Top of the document, Beginning of this Chapter