Internetverbindung überwachen und Reboot im Fehlerfall
-
Hallo,
ich habe jahrelang IPCops gepflegt und da hat sich ein Skript bewährt, welches zwar recht rabiat arbeitet, aber das Internet doch recht sicher wiederhergestellt hat, so es zu einem Problem kam.
Es funktioniert folgendermaßen. Es wird versucht eine Reihe von wirklich hoch verfügbaren Internetdomänen anzupingen. Falls keine der Domänen erreichbar ist, spricht das für einen Internetausfall (warum auch immer) und Reboot tut normalerweise gut. :-)Kann man dieses Skript auch abgewandelt auf der Pfsense einsetzen? Am liebsten per Package.
Hier das Skript, welches ich alle 5 Minuten auf der IPCop laufen lies. Es hat die Verfügbarkeit deutlich verbessert.
Ein ähnliches Skript habe ich auch noch für die Überwachung von IPSec Netz zu Netz Tunneln, welches den Tunnel neu gestartet hat, wenn ein Ping durch den Tunnel nicht möglich war. Die IP-Adresse, die man zur Überprüfung im IPSec bei der pfSense eintragen kann wird ja scheinbar komplett ignoriert. Skripte sind natürlich unter der GPL :-)################## Internet Check Anfang ####################
#!/bin/shchmod 700 Check
fcrontab -e
*/5 * * * * /Skripte/Check
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
‹berpr¸fen, ob Ping auf diverse Internetserver mˆglich ist.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CONNECT_OK=0
for IP in www.telekom.de www.focus.de www.spiegel.de pop.1und1.com smtp.1und1.com
do
ping -c 1 -i 10 $IP
if [ "$?" = "0" ] ; then
CONNECT_OK=1
sleep 3
fi
doneif [ $CONNECT_OK -eq 0 ] ; then
/bin/echo "Red-Ping Probleme, IPCop rebootet"date
>>/var/log/Check-Red-Fehler
/sbin/shutdown -r now
else
/bin/echo "Red-Ping funktioniert am "date
>>/var/log/Check-Red-OK
fi
################# Internet Check Ende ###########################################
#############################
####### ab hier das 2. Skript ########
#############################
############################################## VPN Check Anfang ################
#!/bin/sh/Skripte/Tools/ping1.3 -i 5 -c 5 -n -I Eigene-Green Remote-Green
/Skripte/Tools/ping1.3 -i 5 -c 5 -n -I 192.168.0.1 192.168.1.1
if test $? -ne 0; then/bin/mv /var/log/Fehler-Log /var/log/Fehler-Log.tmp
/bin/echo "VPN Name Down und Restart"date
>>/var/log/Fehler-Log
/bin/cat /var/log/Fehler-Log.tmp >>/var/log/Fehler-Log
/bin/rm /var/log/Fehler-Log.tmp
/usr/sbin/ipsec auto –replace Name
/usr/sbin/ipsec auto --rereadsecrets
/usr/sbin/ipsec auto --up Name
else
/bin/mv /var/log/OK-Log /var/log/OK-Log.tmp
/bin/echo "VPN Name Up am"date
>>/var/log/OK-Log
/bin/cat /var/log/OK-Log.tmp >>/var/log/OK-Log
/bin/rm /var/log/OK-Log.tmpfi
exit 0
################### VPN Check Ende ####################any hints
Guido
-
Hall Guido,
hast du das Problem mittlerweile gelöst?
Das Script sieht auf den ersten Blick so aus, als würde es auf pfsense funktionieren, aber ich bin alles andere als ein Experte, was Scripte angeht. Der Shutdown-Befehl sollte richtig sein, ansonsten geht auch "reboot".
Kannst einfach cron als Package installieren und dort diese Zeile aus dem Script eintragen: */5 * * * * /Skripte/Check
Putty unter windows benutzen, zum router verbinden mit username admin und deinem webgui passwort
Dann musst du noch das Verzeichnis /Skripte/Check erstellen: cd.., cd .., mkdir /Skripte/
Skript erstellen: cd Skripte, ee Check
dort den Text des obigen scripts einfügen. Speichern mit escape.
script schreibfähig machen: chmod +x Check
reboot
Wenn alles klappt, wird eine Logdatei unter /var/log/Check-Red-OK fünf Minuten nach dem Neustart entstehen. -
Ich wollte dazu anmerken, dass ich bislang in Jahren des Einsatzes von pfSense noch keinen ISP hatte, bei dem solch ein Skript notwendig war um die Connectivity wiederzubekommen. Ich würde an so einer Stelle auch eher beim Problem ansetzen als mittendrin. Aber prinzipiell kann man sowas natürlich basteln.