Eintrag-Details: IP Update Script für DD-WRT



21.06.09

IP Update Script für DD-WRT

Josef Kropf, 22:35:36, Kategorien: Computer, Hardware, Software
German (DE) 385 Wörter, 909 direkte Aufrufe

Eines der großen Probleme bei "billigen" Internetverbindungen ist die ständig wechselnde IP.
Nun ist es mit recht wenig Aufwand möglich die öffentliche IP an ein internes Gerät - wie mein Linksys WRT54G - mit DD-WRT weiterzugeben.

Was passiert allerdings, wenn der Provider die IP ändert? Richtig, der Router dahinter bekommt das nicht mit und die schönste VPN-Stecke aus dem Büro nach Hause funktioniert nicht mehr.

[Mehr:]

Ich habe dazu vor einiger Zeit ein kleines Script im Internet gefunden und es an meine Bedürfnisse angepasst.
In diesem Zusammenhang sehr zu empfehlen ist Wolfys und Andis EDV Tipps Seite, speziell wenn es um die Thomson ADSL Modems geht!

Dieses Script läuft bei mir jede Minute (Eintrag in "Zusätzliche Cron-Jobs") und checkt mittels ping die Verbindung zum default Gateway.

Funktioniert diese nicht, wird am ADSL-Modem eine neue IP abgeholt.

Um einwandfreien Zugriff aufs Internet zu bieten, ist zuerst ein kleines Script für die Firewall notwendig, das ändert einfach nur das default Gateway des Routers auf das externe Interface:

GW=$(nvram get wan_gateway)
route add -host $GW dev $(nvram get wan_iface)
route add default gw $GW

und dann das "custom" script, die besonderheit ist, daß auf die 10.0.0.138 als default geteway abgefragt wird, da würde dann zwar ein reply auf unser ping kommen, aber wir würden von außen noch nicht auf den Router zugreifen können, wegen der noch fehlenden öffentlichen IP, dann versucht es das Script auf eine neue Runde an eine globale IP zu kommen.

#!/bin/sh
# get default gateway
pingip=`ip route | awk '/default via/ {print $3}'`
# if it is TA-default, set it to nirvana
if [ $pingip = "10.0.0.138" ]; then
pingip="192.168.254.254"
fi
if ping -c 3 $pingip ; then
sleep 1
else
logger Check_DHCP: DHCP Renew Required
# Send a RELEASE signal
kill -USR2 `cat /var/run/udhcpc.pid` 2> /dev/null
# Ensure udhcpc is not running
killall udhcpc 2> /dev/null
# Send a RENEW signal
udhcpc -i vlan1 -p /var/run/udhcpc.pid -s /tmp/udhcpc
sleep 5
# Find New Internet IP
newip=`ip route | awk '/dev vlan1/ {print $9}'`
# Log New Internet IP
logger Check_DHCP: Automatic DHCP renew was performed. New Internet IP is: $newip
fi

Bin für jede Anregung dankbar!

Edit: Leider gibt die Forensoftware hier in Code-Abschnitten anscheinend keine Leerzeichen her.... :-/

Permalink Kommentieren Google it!Drucken

Februar 2012
Mo Di Mi Do Fr Sa So
<<  <   >  >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        

Suche

Kategorien

Familie Kropf




b2evolution

Page generated in 0.107465982437 sec.