Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Andre@s

Praktikant

  • "Andre@s" started this thread

Posts: 25

Date of registration: Oct 15th 2004

Location: Hannover

1

Saturday, September 8th 2007, 3:55pm

VPN Linux reconnect Skript

Hallo,
weiss nicht inwieweit das Thema schon angesprochen wurde,
habe nichts im Forum gefunden.
Kenn ihr das Problem, dass die Verbindung nach einiger Zeit verloren geht,
und die Seite vom RRZN angezeigt wird?
Nach welchen Regeln bricht die Verbindung ab? (Inaktivität, Zeit, Anzahl Nutzer)
Was kann man dagegen tun? Könnte man nicht ein Skript (Linux) schreiben, welches
die Trennung erkennt (mit Ping zB), den laufenden Client beenden und danach wieder startet.
Oder muss der vpnc mit bestimmten Parametern gestartet werden?

MfG

hyperion

Erfahrener Schreiberling

  • "hyperion" is male

Posts: 422

Date of registration: Oct 8th 2004

2

Saturday, September 8th 2007, 4:10pm

Hallo,

die Gründe sind unterschiedlich, von Inaktivität bis hin zu einfachen Störungen im WLAN. ZB. mein iBook verliert manchmal die VPN Verbindung, sobald ich nur für wirklich sehr kurze Zeit keinen Empfang habe (was manchmal recht häufig passiert).

Sicher ist so ein Script möglich. Ich weiß nicht wie sich VPNC auf Linux verhält, ob der Client auch gleichzeitig mit der Verbindung abschmiert, so wie es mit dem Cisco Client auf meinem Laptop ist. Sollte dies der Fall sein, dann könnte man ja ganz einfach den Prozess überwachen und event. neu starten.
"Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit." --Marie von Ebner-Eschenbach

Andre@s

Praktikant

  • "Andre@s" started this thread

Posts: 25

Date of registration: Oct 15th 2004

Location: Hannover

3

Saturday, September 8th 2007, 5:00pm

Der VPNC Prozess bleibt weiterhin bestehen.

wgaa

Trainee

  • "wgaa" is male

Posts: 54

Date of registration: Dec 13th 2003

4

Sunday, September 9th 2007, 8:37pm

Hallo,

du kannst das mal probieren:

Source code

1
2
3
4
5
6
7
8
9
10
# vpnc-neustart.sh
while true; do
        if [ `ping -c 3 -W 4 www.uni-hannover.de 2>&1 | grep "bytes from" | wc -l` == 0 ]
        then
                vpnc-disconnect
                sleep 1
                vpnc vpnc-profildatei-name
                sleep 14
        fi
done


Lässt sich nicht mit strg-c beenden, also im Shell-Fenster laufen lassen und das dann schließen, wenn du fertig bist oder du musst dir noch was dafür ausdenken.

BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male

Posts: 244

Date of registration: Oct 11th 2005

5

Sunday, September 9th 2007, 9:46pm

Quoted

Original von wgaa
Lässt sich nicht mit strg-c beenden

Gedrückt halten sollte helfen.

Musst du wirklich ständig Pings senden? Hinter dem "fi" würde ich zumindest noch ein kurzes "sleep" einbauen.

Außerdem reicht es vllt., den Rückgabewert von "ping" zu prüfen, anstatt mit grep usw. zu hantieren.

Andre@s

Praktikant

  • "Andre@s" started this thread

Posts: 25

Date of registration: Oct 15th 2004

Location: Hannover

6

Sunday, September 9th 2007, 10:48pm

@ wgaa:
Dein Skript prüft, ob ping eine "Namensadresse" erreichen kann.
Das Problem ist, das zb die Adresse www.uni-hannover.de
in eine gueltige IP Adresse aufgelöst wird.
Das kann man beobachten, wenn man sich zu einem UHWLAN
Access Point verbindet aber den VPN Client noch nicht startet.
Wird nun eine Adresse zb uni-hannover.de im Browser eingegeben,
so erscheint sofort eine Seite vom RRZN(wo man die VPN Software laden kann).
Vielleicht sollte man versuchen, einen Ping auf eine bekannte IP Adresse
auszuführen.
Werde das bei Gelegenheit ausprobieren und berichten

Rick

Mädchen

  • "Rick" is male

Posts: 1,266

Date of registration: Mar 17th 2004

Location: ::1/128

Occupation: Forentroll

7

Monday, September 10th 2007, 11:49am

ich denke while not ping sollte das skript schöner machen, wobei dann das sleep einbauen wohl etwas schwieriger wird.
man kann ja ein script aufrufen, dass ping und sleep kombiniert und den ping rückgabewert übergibt...

Sometimes you've got to ask yourself: Is xkcd shitty today?

wgaa

Trainee

  • "wgaa" is male

Posts: 54

Date of registration: Dec 13th 2003

8

Tuesday, September 11th 2007, 10:13pm

Quoted

Original von BLUESCREEN

Quoted

Original von wgaa
Lässt sich nicht mit strg-c beenden

Gedrückt halten sollte helfen.

@bluescreen: Hatte ich auch gehofft, funktioniert aber nicht.

So, das hier pingt google || web.de || t-online.

Source code

1
2
3
4
5
6
7
8
9
10
while true; do
        if ! (ping -c 2 -W 3 66.249.93.104 || ping -c 2 -W 3 217.72.195.42 || ping -c 2 -W 3 62.153.159.92) > /dev/null
        then
                vpnc-disconnect
                sleep 1
                vpnc vpnc-profildatei-name
                sleep 14
        fi
        sleep 1
done

neweb

Erfahrener Schreiberling

  • "neweb" is male

Posts: 496

Date of registration: Jun 16th 2006

Location: Hannover

9

Tuesday, September 11th 2007, 11:56pm

Man kann aus dem Uni-WLAN nicht nach draußen pingen. Es sind nur Uni-Interne ICMP-Pakete zugelassen. Somit hilft es nicht Google, T-Online, etc zu pingen.

Aber ein HTTP-Request sollte helfen:

Source code

1
2
3
4
5
6
7
8
9
10
while [ 1 ]; do
	printf "GET / HTTP/1.1\r\nConnection: close\r\n\r\n" | nc www.google.de 80 -w 5 | grep "http://www.google.de/" >> /dev/null
        if [ $? != 0 ]; then
                vpnc-disconnect
                sleep 1
                vpnc vpnc-profildatei-name
                sleep 14
        fi
	sleep 30
done


So lange Google nicht die Seite ändert, sollte das funktionieren. Die 304-Seite hat sich seit 3-4 Jahren nicht geändert. Und dort landet man unweigerlich aufgrund des unvollständigen HTTP-Requests.
Das Wesen der Dinge ist es, dass sie plötzlich verschwinden und dann unerwartet an einem ganz anderen Ort wieder auftauchen.

This post has been edited 4 times, last edit by "neweb" (Sep 12th 2007, 12:11am)


wgaa

Trainee

  • "wgaa" is male

Posts: 54

Date of registration: Dec 13th 2003

10

Wednesday, September 12th 2007, 12:46am

Quoted

Original von neweb
Man kann aus dem Uni-WLAN nicht nach draußen pingen. Es sind nur Uni-Interne ICMP-Pakete zugelassen. Somit hilft es nicht Google, T-Online, etc zu pingen.


Das war jahrelang so, ist aber seit irgendwann in 2007 wieder möglich. Ping funktioniert.

hyperion

Erfahrener Schreiberling

  • "hyperion" is male

Posts: 422

Date of registration: Oct 8th 2004

11

Wednesday, September 12th 2007, 8:12am

Wäre es nicht interessant, einen Wrapper für den VPNC zu schreiben, oder den VPNC einfach so zu verändern, dass er beim Verbindungsverlust abschmiert?

So läuft ja irgendwie immer eine busy wait Schleife im Hintergrund.
"Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit." --Marie von Ebner-Eschenbach

neweb

Erfahrener Schreiberling

  • "neweb" is male

Posts: 496

Date of registration: Jun 16th 2006

Location: Hannover

12

Wednesday, September 12th 2007, 6:03pm

Quoted

Original von hyperion
Wäre es nicht interessant, einen Wrapper für den VPNC zu schreiben, oder den VPNC einfach so zu verändern, dass er beim Verbindungsverlust abschmiert?

So läuft ja irgendwie immer eine busy wait Schleife im Hintergrund.


Habe ich auch schon mal dran gedacht. Leider bräuchte man dafür die Zeit...

Das Problem ist nur, dass VPNC selbst nicht merkt, dass die Verbindung weg ist, da es ja keine Persistente-Verbindung ist sondern UDP. Das Problem ist, dass man somit regelmäßig checken müsste ob die Verbindung noch da ist oder nicht, also wieder eine Schleife bräuchte.
Das größte Problem ist, dass der VPNC kein Rekeying unterstützt und dass sowieso jedes mal die Verbindung abbricht, wenn der Schlüssel abläuft.
Das Wesen der Dinge ist es, dass sie plötzlich verschwinden und dann unerwartet an einem ganz anderen Ort wieder auftauchen.


13

Saturday, October 6th 2007, 4:02pm

Hab es noch nicht ausprobieren können, aber automatisches "reconnecten" ist mitunter eines der Features von KVpnc.

chacky

Praktikant

  • "chacky" is male

Posts: 30

Date of registration: Dec 12th 2003

Location: Hannover

Occupation: Informatik

14

Wednesday, October 10th 2007, 9:13am

Ich hatte eine Zeit lang ein ähnliches Problem. Es hat sich herausgestellt, dass der resolvconf-Daemon nach einer unbestimmten Zeit automatisch die NamensServer aktualisiert. Danach fehlten die Server vom VPN in der resolv.conf. Ein einfaches

/etc/init.d/resolvconf disable-updates

nach dem Verbinden mit dem VPN hat das Problem behoben.

neweb

Erfahrener Schreiberling

  • "neweb" is male

Posts: 496

Date of registration: Jun 16th 2006

Location: Hannover

15

Wednesday, October 10th 2007, 2:11pm

Dann bleibt da aber immer noch das Problem, dass der VPN-Server irgendwann mal zwischendurch einen neuen Schlüssel vergibt. Den kann VPNC auch nocht nicht annehmen, so dass dann die Verbindung wieder abbricht.
Das Wesen der Dinge ist es, dass sie plötzlich verschwinden und dann unerwartet an einem ganz anderen Ort wieder auftauchen.


  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

16

Wednesday, October 10th 2007, 2:50pm

Quoted

Original von neweb
Dann bleibt da aber immer noch das Problem, dass der VPN-Server irgendwann mal zwischendurch einen neuen Schlüssel vergibt. Den kann VPNC auch nocht nicht annehmen, so dass dann die Verbindung wieder abbricht.
Laut http://www.unix-ag.uni-kl.de/~massar/vpnc/: "rekeying is now supported as of svn revision 126!"
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

neweb

Erfahrener Schreiberling

  • "neweb" is male

Posts: 496

Date of registration: Jun 16th 2006

Location: Hannover

17

Wednesday, October 10th 2007, 6:22pm

Okay, dann vergesst meinen letzten Post. ;)
Das Wesen der Dinge ist es, dass sie plötzlich verschwinden und dann unerwartet an einem ganz anderen Ort wieder auftauchen.