Hallo Michael, hallo Leute, Am Samstag, 6. September 2003 12:59 schrieb Michael Messner:
Am Samstag, 6. September 2003 00:25 schrieb Christian Boltz:
Am Freitag, 5. September 2003 13:43 schrieb Michael Messner:
Christian Boltz <christian.boltz@nexgo.de> 09/04 11:43 >>>
Am Montag, 1. September 2003 14:00 schrieb Michael Messner:
Hast Du diesen Block inzwischen nachgetragen? Ist zwar aus der Sicht der Shell nur Kommentar, aber für insserv ist dieser Infoblock wichtig, damit das Script an der richtigen Stelle gestartet wird (also z. B. nach dem Netzwerk).
Nein, habe ich noch nicht, ich möchte eigentlich dass das Script vorher mal fehlerfrei läuft! Oder hab ich bei einem händischen Aufruf durch den fehlenden Block irgendwelche Nachteile?
Für die Shell sieht der Block aus wie ein Kommentar, er stört also nicht. Er nützt beim händischen Aufruf aber auch nicht ;-)
Was mir jetzt noch aufgefallen ist, ich muss das Script 2 x aufrufen! Beim ersten mal bricht es ab: --------------------------------------------------------------------- --------------- linuxmike:/home/micmes # Linux_Diverses/linux_CD3/ADSL/xdsl start Connecting to XDSL@inodeanon warn[pptp_gre_bind:pptp_gre.c:78]: connect: Network is unreachable anon fatal[main:pptp.c:183]: Cannot bind GRE socket, aborting. startproc: exit status of parent of /usr/sbin/pptp: 1
failed
Findet sich dazu was in den Logs (/var/log/messages)?
*** Gateway: 172.16.204.1 --------------------------------------------------------------------- route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.138 172.16.204.1 255.255.255.255 UGH 0 0 0 eth0 172.16.204.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 196.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Es sind also nur Routen gesetzt auf Deine Netzwerkkarten eth0 und eth1 sowie zu 10.0.0.138 (IIRC Dein DSL-Modem) über eth0
Beim 2ten mal läuft es durch, allerdings ist dabei die Gateway-Variable leer?!?
Siehe unten.
[...] Danke Christian, das Script arbeitet nun, allerdings kommt noch ein Fehler beim Aufruf:
================./xdsl start================ SIOCDELRT: No such process ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Das kommt von irgendwo oberhalb der zugehörigen echo-Zeile.
Ich bau den betreffenden Block des Scripts mal hier ein:
# fetching default gateway from internal lan GATEWAY="`/sbin/route -n | /usr/bin/grep "^0.0.0.0" | /usr/bin/cut -c17-32`" return=$rc_done case "$1" in start) echo -n "Connecting to XDSL@inode"
Füge mal testweise am Anfang des Scripts set -v ein und sieh dann nach, nach welchem Befehl die Fehlermeldung kommt.
beim ersten Aufruf des Scriptes mit set -v rattert das ganze Script runter,
Stimmt. Ich hab inzwischen nochmal in man bash nachgesehen, ein set -x wäre wohl geschickter ;-)
die letzten Meldungen sind:
echo "Usage: $0 {start|stop|status|restart}" exit 1 esac Connecting to XDSL@inodeanon warn[pptp_gre_bind:pptp_gre.c:78]: connect: Network is unreachable
Der Rest dürfte ein Folgefehler sein.
anon fatal[main:pptp.c:183]: Cannot bind GRE socket, aborting. startproc: exit status of parent of /usr/sbin/pptp: 1
failed *** Gateway: 172.16.204.1
Hmm, die Bash arbeitet wohl erst den kompletten case-Block ab und führt dann die Befehle aus. Wie gesagt: probiers mal mit set -x Allerdings stört mich das "Network is unreachable" mehr als der Zeitpunkt, zu dem die Bash einen Befehl ausführt.
test "$return" = "$rc_done" || exit 1
beim 2ten Aufruf:
echo "Usage: $0 {start|stop|status|restart}" exit 1 esac Connecting to XDSL@inode done *** Gateway: Usage: inet_route [...]
Erklärung hierzu siehe unten
Hmm, Schuss ins Blaue: ist die Variable $GATEWAY korrekt gesetzt? Ein echo "*** Gateway: $GATEWAY" direkt vor dem route-Aufruf sollte Klarheit verschaffen.
siehe weiter oben, ich hoffe dir sagen die Ausgaben etwas mehr als mir!
Ich sehe daran, dass nicht immer eine default route gesetzt ist (die wird nämlich mit dem grep ... | cut ermittelt)
Wie sieht eigentlich die Ausgabe von route -n bei Dir aus (offline und online)?
nach dem Bootvorgang:
linuxmike:/home/micmes #route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.204.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 196.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 0.0.0.0 172.16.204.1 0.0.0.0 UG 0 0 0 eth0
Es ist also eine default route (0.0.0.0) über eth0 gesetzt.
mit dem xdsl-Script online gegangen:
linuxmike:/home/micmes # route -n Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface 62.99.171.186 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 10.0.0.138 172.16.204.1 255.255.255.255 UGH 0 0 0 eth0 172.16.204.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 196.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 0.0.0.0 62.99.171.186 0.0.0.0 UG 0 0 0 ppp0
Da hat sich einiges getan ;-) - Das DSL-Modem hat einen eigenen Routing-Eintrag (statt default route) - Anfragen an 62.99.171.186 (vermutlich die IP, die Du bei der Einwahl erhalten hast), gehen über ppp0 - Die default route geht ebenfalls über ppp0
mit dem xdsl die Verbindung gestoppt:
linuxmike:/home/micmes #route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.204.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 196.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Ähnelt dem Zustand nach dem Booten, allerdings fehlt die default route zum DSL-Modem (10.irgendwas), was wohl zu obigem "Network unreachable" führen dürfte. Für den passenden Route-Befehl bin ich jetzt zu müde, schau selbst mal in man route nach ;-) BTW: Ich wage zu behaupten, dass Du nicht rcnetwort restart befehlen müsstest - ein rcroute restart sollte genügen ;-) Gruß Christian Boltz -- - Macs sind für die, die nicht wissen wollen, warum Ihr Rechner funzt. - Linux ist für die, die wissen wollen, warum er funzt. - DOS ist für die, die wissen wollen, warum er nicht funzt, und - Windows ist für die, die nicht wissen wollen, warum er nicht funzt.