• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

ISDN über Fritz!Card DSL geht nicht

Sigi schrieb:
Das funktioniert. Das erste Mal, daß ich über ISDN Seiten angezeigt kriege.
Herzlichen Glückwunsch! :D
Wie kriege ich das wieder auf den ursprünglichen Stand?
mit
route del -net default
kommt der Hinweis "No such process".
Das ist aber richtig so; du kannst "-net" auch weg lassen.
Wenn die Default Route gelöscht ist kann sie dann mit
route add default gw 192.168.1.1 eth0
wieder auf den Router umgesetzt werden.
Will da jetzt natürlich nichts verkehrt machen.
Geht nicht - spätestens nach reboot ist alles wieder beim Alten.
Falls mal DSL ausfällt möchte ich halt gerne die Möglichkeit haben dann ISDN zu benutzen.
Gut - mit den weiter oben genannten Befehlen lassen sich zwei Scripts erstellen, mit denen du hin- und herschalten kannst.

Noch Fragen? Brauchst du noch weitere Hilfe?

Gruß switcher51
 
OP
S

Sigi

Member
Gut - mit den weiter oben genannten Befehlen lassen sich zwei Scripts erstellen, mit denen du hin- und herschalten kannst.

Noch Fragen? Brauchst du noch weitere Hilfe?

Jephhh !!! Übrigens hast Du recht, nach Rechnerneustart klappt die Router-DSL-Verbindung wieder optimal.

Also, dann mal meine Fragen. Wahrscheinlich hast Du damit schon gerechnet.

Wie genau stellst Du Dir das mit den beiden Scripts vor? Wie sollen sie aussehen, wie erstelle ich sie, wo kommen sie hin und wie wende ich sie dann an?

Viele Fragen, aber sie sollen ja halt das manuelle Verbinden, was ja endlich klappt ein wenig vereinfachen.

Gruß, Sigi
 
Sigi schrieb:
Also, dann mal meine Fragen. Wahrscheinlich hast Du damit schon gerechnet.

Wie genau stellst Du Dir das mit den beiden Scripts vor?
Ein Script ist nichts weiter als eine Textdatei, in die die Befehle hineingeschrieben werden, die du vorhin von Hand eingegeben hast. Die Befehle werden dann ausgeführt, wenn das Script aufgerufen wird.
Ein Script bekommt den Namen start-ISDN das andere den Namen start-DSL (oder wie immer es dir beliebt).
Ich weiss nicht, ob du noch weitere Aktionen brauchst, um die ISDN-Karte zu aktivieren, die kämen als erstes in das Script hinein. Danach folgen die beiden Befehle:
Code:
route del default
route add  default gw $(cat /etc/ppp/remote-ip) ippp0
"$(cat /etc/ppp/remote-ip)" ist ein Trick mit dem die immer unterschiedliche IP der Gegenstelle aus der Datei /etc/ppp/remote-ip ausgelesen und in das Kommando eingebaut wird.
Ob das bei dir die richtige Datei ist muss sich noch herausstellen - aber die Information wird sicherlich zu finden sein.
... wie erstelle ich sie, wo kommen sie hin und wie wende ich sie dann an?
Erstellt werden die Scripte mit einem beliebigen Editor. Um die Scripte ausführbar zu machen benutzt du die Befehle
Code:
chmod 700 start-ISDN
chmod 700 start-DSL
Das Ausführen der Scripte (natürlich als root) geht z.B. so:
Code:
 ./start-ISDN

Am besten liest du dich auch ein wenig in das Arbeiten an der Kommandozeile und das Erstellen von Scripten ein.

Wenn dir das alles zu kompliziert ist, dann kannst du auch mit HW-Profilen arbeiten, in denen alternativ die eine oder die anderen Internetverbindung konfiguriert ist.

Gruß switcher51[/quote]
 
OP
S

Sigi

Member
Hallo,
war für ein paar Tage weg und habe jetzt zuerst mal 9.2 prof installiert.

Natürlich ist das nicht zu kompliziert. Besser kann man es nicht erklären und die Script laufen.

Allerdings mußte ich bei dem Script "start-ISDN" den Befehl auf "route del default
route add default gw 62.53.158.1 ippp0" ändern, da bei "route del default
route add default gw $(cat /etc/ppp/remote-ip) ippp0" dieser Hinweis kam "cat: /etc/ppp/remote-ip: No such file or directory".

Wo finde ich den raus wo die Information zu finden ist?

Desweitern gibt es noch eine Grundfrage in Sachen Scripts. Ist es nicht möglich das beide Scripts durch anklicken in Terminal-Programm geöffnet werden? Das heißt, daß ich dort mich nach anklicken einer Datei lediglich als root anmelde und das Script damit läuft. Derzeit ist es halt so, daß ich mich als root im Terminalfenster einlogge und dann mühsam den Pfad zur Datei eintippe.

Gruß, Sigi
 
..... /etc/ppp/remote-ip: No such file or directory".
Wo finde ich den raus wo die Information zu finden ist?
Habe nachgeforscht - die Datei wird mit einem Script ip-up.local erzeugt. Dieses Script läuft ab, wenn eine Verbindung hergestellt wurde. Das Scriot muss man selber schreiben und ist eine 'Hook' von ip-up. Es liegt in/etc/ppp. Hier ein Beispiel:
Code:
#! /bin/bash
#
# /etc/ppp/ip-up.local    to do when link comes up
#                           -> set time
#                           -> fetch mail
#                           -> send  mail
# vd 31.7.2000
#

BASENAME=`basename $0`
INTERFACE=$1
DEVICE=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5

logger "ip-up.local: $INTERFACE $DEVICE $SPEED $LOCALIP $REMOTEIP"

case "$INTERFACE" in
  ippp*)
        #--- write local and remote IP adress of interface into file
        echo $LOCALIP  > /etc/ppp/local-ip
        echo $REMOTEIP > /etc/ppp/remote-ip
        #--- get time from time server
        /usr/sbin/netdate -v wrzx03.rz.uni-wuerzburg.de
        /sbin/clock --systohc --utc
        #--- mail transfer  
        /root/bin/mailxfer
        ;;
  ppp*)
        #--- some other code ---
         ;;

  *)
        ;;
esac

# === EOF ip-up.local ===
In diesem Script kann aber auch gleich das Umschalten der Routen erfolgen.
Analog gibt es auch ein Script ip-down.local.

Desweitern gibt es noch eine Grundfrage in Sachen Scripts. Ist es nicht möglich das beide Scripts durch anklicken in Terminal-Programm geöffnet werden? Das heißt, daß ich dort mich nach anklicken einer Datei lediglich als root anmelde und das Script damit läuft.
Das muss gehen, ich habe es aber noch nicht ausprobiert.

Gruß switcher51
 
OP
S

Sigi

Member
:oops: Das ist mir jetzt zu hoch.

Heißt das jetzt das ich dieses "Hook" mit einen Namen "ip-up.local" versehe und als root in /etc/ppp lege.

Oder ist es nur ein Beispiel? Nur wie sieht dann diess "Hook" für meine Bedürfnisse aus? Dann gibt es natürlich auch noch die Fragen wie in diesem Script das Umschalten der Routen erfolgt und wie das anloge ip-down.local aussieht?

Also wenn's noch komplizierter wird laß ich es so wie es jetzt ist.

Gruß, Sigi
 
Also 'Hook' steht für einhaken, d.h. hier kann man in eine Systemroutine seinen eigenen Kram einhaken.

Das Script, das ich geschickt habe, setzt u.a. die benötigte IP-Adresse in die fragliche Datei ein. (Der Rest kann rausfliegen)
Da das Script zu genau dem Zeitpunkt läuft, wenn die ISDN-Verbindung hergestellt wurde, ist das ja auch der richtige Zeitpunkt, um die Routen für den ISDN-Betrieb umzuschalten. Was liegt näher, als die beiden Befehle
Code:
route del ...
route add..
genau hier hinein zustellen. Das Script ist dann schon fertig.

Das Script ist die Datei /etc/ppp/ip-up.local
Du musst das Script noch nicht einmal selber aufrufen, das passiert automatisch, wenn die ISDN-Verbindung aufgebaut wird.

Das Script /etc/ppp/ip-down.local wird automatisch beim Abbau der Verbindung aufgerufen. Hier hinein kommen die Routing-Befehle für die Umschaltung zurück auf den Routerbetrieb (siehe ein paar Postings weiter oben).

Eigentlich ist es gar nicht so kompliziert - man muss nur wissen was abläuft. (Nachzulesen in den Manpages von pppd)

Gruß switcher51
 
OP
S

Sigi

Member
Ich habe jetzt folgende Datei mit der Bezeichnung "ip-up.local" in etc/ppp geladen:

Code:
#! /bin/bash
#
# /etc/ppp/ip-up.local    to do when link comes up
#                           -> set time
#                           -> fetch mail
#                           -> send  mail
# vd 31.7.2000
#

BASENAME=`basename $0`
INTERFACE=$1
DEVICE=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5

logger "ip-up.local: $INTERFACE $DEVICE $SPEED $LOCALIP $REMOTEIP"

case "$INTERFACE" in
  ippp*)
        #--- write local and remote IP adress of interface into file
        echo $LOCALIP  > /etc/ppp/local-ip
        echo $REMOTEIP > /etc/ppp/remote-ip
route del default
route add  default gw $(cat /etc/ppp/remote-ip) ippp0 
        ;;
  ppp*)
        #--- some other code ---
         ;;

  *)
        ;;
esac

# === EOF ip-up.local ===

Wahrscheinlich ist da ein Fehler drinnen. Finde den aber nicht. Deweiteren, welche Rechte braucht diese Datei?

Gruß, Sigi
 
Sigi schrieb:
Ich habe jetzt folgende Datei mit der Bezeichnung "ip-up.local" in etc/ppp ....
das sieht doch gut aus!
Hier ein paar Änderungen:::
Code:
#! /bin/bash
#
# /etc/ppp/ip-up.local    to do when link comes up
#     ->  change route

BASENAME=`basename $0`
INTERFACE=$1
DEVICE=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5

# logger schreibt in Syslog zur Kontrolle - kann nach den Tests auch gelöscht werden
logger "ip-up.local: $INTERFACE $DEVICE $SPEED $LOCALIP $REMOTEIP"

case "$INTERFACE" in
  ippp0)
        #--- write local and remote IP adress of interface into file
        echo $LOCALIP  > /etc/ppp/local-ip
        echo $REMOTEIP > /etc/ppp/remote-ip
        route del default
        route add  default gw $REMOTEIP ippp0 
        ;;
  ppp*)
        #--- some other code ---
         ;;

  *)
        ;;
esac

# === EOF ip-up.local ===

Wahrscheinlich ist da ein Fehler drinnen. Finde den aber nicht. Desweiteren, welche Rechte braucht diese Datei?
So sehe ich zunächst keinen Fehler.
Die Datei muss ausführbar sein und root gehören
Code:
chown root.root ip-up.local
chmod 700 ip-up.local
Falls das nicht der Fehler war, sag mir wie er sich äußert und, ob im Syslog der Eintrag des Loggers zu sehen ist.

Gruß switcher51
 
OP
S

Sigi

Member
Habe Dein Script jetzt eingesetzt. Klappt nicht

Die Datei /etc/ppp/ip-up.local hat jetzt die Eigentümer root - root und die Rechte -rwx------

Bei der syslog in /etc/init.d (ist hoffentlich die richtige die ich aufrufe), erscheinen folgende Hinweise:

Code:
#! /bin/sh
#
# Copyright (c) 1996-2001 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002-2003 SuSE Linux AG, Nuernberg, Germany.
#
# Author: Florian La Roche <florian@suse.de>, 1996
#	  Werner Fink <werner@suse.de>, 1998-2001
#
# /etc/init.d/syslog
#
### BEGIN INIT INFO
# Provides:       syslog
# Required-Start: network
# Required-Stop:  network
# Default-Start:  2 3 5
# Default-Stop:
# Description:    Start the system logging daemons
### END INIT INFO

. /etc/sysconfig/syslog

BINDIR=/sbin

case "$SYSLOG_DAEMON" in
    syslog-ng)
	syslog=syslog-ng
	config=/etc/syslog-ng/syslog-ng.conf
	params="$SYSLOG_NG_PARAMS"
	;;
    *)
	syslog=syslogd
	config=/etc/syslog.conf
	params="$SYSLOGD_PARAMS"
	# add additional sockets to SYSLOGD_PARAMS
	for variable in ${!SYSLOGD_ADDITIONAL_SOCKET*}; do
	    eval value=\$$variable
	    test -n "${value}" && test -d ${value%/*} && \
	    params="$params -a $value"
	done
	;;
esac
syslog_pid="/var/run/${syslog}.pid"

# check config and programs
test -s ${config}	  || exit 6
test -x ${BINDIR}/$syslog || exit 5
test -x ${BINDIR}/klogd   || exit 5

#
# Do not translate symbol addresses for 2.6 kernel
#
case `uname -r` in
0.*|1.*|2.[0-4].*)
    ;;
*)
    KLOGD_PARAMS="${KLOGD_PARAMS:+$KLOGD_PARAMS }-x"
    ;;
esac

. /etc/rc.status
rc_reset
case "$1" in
    start)
	if ! test -e /dev/xconsole ; then
	    mkfifo -m 0600 /dev/xconsole
	    chown root:tty /dev/xconsole
	fi
	test -s /var/run/klogd.pid && killproc ${BINDIR}/klogd
	test -s ${syslog_pid} && {
	    killproc -p ${syslog_pid} ${BINDIR}/${syslog}
	    echo -n "Re-"
	}
	echo -n "Starting syslog services"
	test -z "$KERNEL_LOGLEVEL" && KERNEL_LOGLEVEL=1

	startproc -p ${syslog_pid} ${BINDIR}/${syslog} $params
	rc_status
	if test $? -eq 0 ; then
	    startproc ${BINDIR}/klogd -c $KERNEL_LOGLEVEL $KLOGD_PARAMS
	    rc_status
	fi
	rc_status -v
	;;
    stop)
	echo -n "Shutting down syslog services"
	killproc		  -TERM ${BINDIR}/klogd     ; rc_status
	killproc -p ${syslog_pid} -TERM ${BINDIR}/${syslog} ; rc_status -v
	;;
    try-restart)
	$0 stop && $0 start
	rc_status
	;;
    restart)
	$0 stop
	$0 start
	rc_status
	;;
    reload|force-reload)
	echo -n "Reload syslog service"
	killproc		  -TSTP ${BINDIR}/klogd     ; rc_status
	killproc -p ${syslog_pid} -HUP  ${BINDIR}/${syslog} ; rc_status
	killproc		  -CONT ${BINDIR}/klogd     ; rc_status
	killproc		  -USR2 ${BINDIR}/klogd     ; rc_status -v
	;;
    status)
	echo -n "Checking for service syslog:"
	checkproc		  	${BINDIR}/klogd     ; rc_status
	checkproc -p ${syslog_pid}	${BINDIR}/${syslog} ; rc_status -v
	;;
    probe)
	test ${config} -nt ${syslog_pid} && echo reload
	;;
    *)
	echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
	exit 1
	;;
esac
rc_exit

Also, ich glaube weit weg sind wir nicht mehr von der entgültigen Lösung :D

Gruß, Sigi
 
Oben