Dynamische IP

Vroeger was internet surfen, surfen en surfen. Vanaf je computertje thuis ging je het internet op. Doch vandaag is dit domein een beetje verandert. Zo is het heel handig dat je van buitenuit je thuisnetwerkje kan benaderen. Waarom zou je dat doen hoor ik je vragen? Wel, misschien omdat je thuis een bestandje staan hebt dat je nodig hebt? Of dat je misschien een IP-camera wil bekijken die je thuis hebt hangen?
Het nadeel in de huidige infrastructuur is dat de internet providers je publieke IP-adres van tijd tot tijd veranderen. Zo heb je vandaag 212.71.17.23, en ineens heb je morgen 193.53.13.49. Niet leuk natuurlijk, als je net op zo’n verandering toegang moet hebben, en je kent het nieuwe IP-adres niet.
Een oplossing die men hiervoor in het leven riep is bv dyndns.org. Het principe is eenvoudig. Een toestel in je thuisnetwerkje (meestal je server, je router…) stuurt op regelmatige basis je publieke IP-adres op naar het internet. En deze websites werken dan met subdomeinen (om kosten te sparen) om je publiek IP-adres te vertalen en makkelijk te onthouden.

Beeld je maar in:
Je hebt een naam aangemaakt bij dyndns.org. Meerbepaald mijnhuis.dyndns.org.
Je internetrouter stuurt elke 15 minuten een update door met je publieke IP-adres 212.71.17.23.
Jij surft gewoon naar mijnhuis.dyndns.org, en dyndns.org vertaalt dit netjes naar 212.71.17.23.
Morgen geeft je internet provider je opeens 193.53.13.49 als IP-adres. En dankzij je internetrouter wordt dit adres binnen de 15 minuten doorgegeven aan dyndns.org.
Jij surft vervolgens naar mijnhuis.dyndns.org, en dyndns.org vertaalt dit nu opeens netjes naar 193.53.13.49.
Als dat niet handig is? Jij hoeft enkel maar mijnhuis.dyndns.org te onthouden, de rest gebeurt vanzelf…

ps jammer genoeg moet je tegenwoordig betalen voor diensten zoals dyndns.org. Of je moet vragen aan je internetprovider om een vast IP te krijgen. Tja, we leven nu eenmaal in een commerciele wereld.

Op zich zal er altijd wel een gratis service zijn links of recht, doch vele internetrouter bieden maar een 3-tal dynamische dns providers aan. En jammer genoeg zijn die meestal te betalen. Een vorm van koppelverkoop?

Eigen server (linux) en eigen website?
Het idee is simpel, je hebt online een bestandje die je doorstuurt naar je interne IP. En jij hoeft enkel dit bestandje te updaten met je nieuwe IP-adres vanuit je server.
Laat me beginnen met te checken of je publieke ip is gewijzigd.

Check IP
Maak een bestandje ipchange.sh aan met volgende inhoud:

#!/bin/bash
rm -f index.html temp
touch old_ip.dat
wget icanhazip.com > /dev/null 2> /dev/null
read T1 < index.html
read T2 < old_ip.dat
if [ "$T1" = "$T2" ]; then
    echo "`date` -- ipchange script -- IP is the same: $T1 - doing nothing " | tee -a /var/log/syslog
else
    echo "`date` -- ipchange script -- THE NEW IP IS: $T1" | tee -a /var/log/syslog
    echo "`date` -- ipchange script -- Updating webserver with new data." | tee -a /var/log/syslog
    dynamic_dns_updates.sh 
fi
rm -f old_ip.dat temp
mv index.html old_ip.dat

Dit zal je publieke IP-adres controleren, en vergelijken met het IP-adresje in het bestand old_ip.dat. Als dit hetzelfde is, gebeurt er niks (behalve een melding in je syslog). Is dit gewijzigd? Dan zal een bestandje dynamic_dns_updates.sh uitgevoerd worden (zie hieronder).

Vergeet dit scriptje nu niet in bv een crontab te stoppen dat dit bv elke 6 minuten controleert of je IP-adres gewijzigd is.

Update webserver
Maak een bestandje aan dynamic_dns_updates.sh aan met volgende inhoud:

#!/bin/sh
pubip=$(wget -q -O - http://checkip.dyndns.org|sed s/[^0-9.]/g)
desturl=http://$pubip:1111 (wijzig hier eventueel uw poort)
fwfile=dynamic_dns_fwcorius.html (je kan verschillende bestandjes aanmaken)
HOST=‘www.ftpserver.be’ (uw webhosting / ftp server)
USER=‘yourlogin’ (uw login voor ftp)
PASSWD=‘uwwachtwoord’ (uw wachtwoord voor ftp)
#Maak het html bestand aan
echo “” > $fwfile ;
echo “<META HTTP-EQUIV=“cache-control” CONTENT=“no-cache”>” >> $fwfile ;
echo “<meta HTTP-EQUIV=“REFRESH” content=“0; url=$desturl”>” >> $fwfile ;
echo “” >> $fwfile ;
echo “” >> $fwfile ;
echo “Loading” >> $fwfile ;
echo “” >> $fwfile ;
#upload bestandje
ftp -n -v $HOST <<-END
ascii
user $USER $PASSWD
passive
put $fwfile
bye
END
Dit script roept je publieke ip op, en vertaalt dit in een html bestandje die ineens een forwarder maakt. En vervolgens wordt dit bestandje geupload naar de ftpserver of jouw webserver.

Simpel, toch?

Free DNS
De dienst Free DNS is voorlopig nog gratis. Laat ons hopen dat dit zo nog even blijft…

  1. Maak een gebruiker aan op de website FreeDNS

  2. Voeg een nieuw subdomein toe

  3. Klik op de ‘Registry’ link

  4. Kies een domein (bv mooo.com)

  5. Kies een subdomein (bv mijnhuis)

  6. Kopieer de dynamische dns link

  7. Klik op de ‘Dynamic DNS’ link

  8. Kopieer de directe URL

Cisco routers
Log in op de cisco router, en ga naar config mode
Geef volgende commado’s in:

ip sla 1
http get http://freedns.afraid.org/dynamic/update.php?VEcqqdf
of
ip sla monitor 1
type http operation get url http://freedns.afraid.org/dynamic/update.php?VEcqqdf

Zorg ervoor dat de link correct gekopieerd is! Doe dit eventueel in 2 stappen

Met volgend commando geef je aan om de hoeveel tijd een update gestuurd moet worden:

ip sla schedule 1 lifetime forever start-time now
of
ip sla monitor schedule 1 life forever start-time now

Om te debuggen kan je een van volgende commando’s gebruiken:

show ip sla configuration / show ip sla monitor configuration
show ip sla statistics / show ip sla monitor statistics
debug ip sla trace / debug ip sla monitor trace
debug ip sla error / debug ip sla monitor error

FeeDNS (mooo) Client

apt-get install ddclient

vim /etc/ddclient.conf

daemon=5m
timeout=10
syslog=no
pid=/var/run/ddclient.pid

ssl=yes
use=web, web=ip.me

server=freedns.afraid.org
protocol=freedns
login=username
password=‘password
YOURNAME.mooo.com

systemctl enable ddclient
systemctl restart ddclient