desynchronisation dyndns

Depuis, que j'ai fait l'acquisition de mon routeur/modem ADSL Linksys WAG320N, je suis confronté à un problème de synchronisation de mon adresse IP avec DYNDNS. Mais, j'ai la solution, grâce à une page cachée au sein du système LINUX.

Avec mon abonnement ADSL Orange, je n'ai pas d'adresse IP fixe, j'utilise le service DYNDNS, qui permet d'avoir un nom de domaine du type nom.dyndns.org mappé à son adresse IP dynamique.

Le routeur Linksys WAG320N possède une fonction pour envoyer l'information de renouvellement de l'adresse IP vers DynDNS, mais celle-ci ne semble fonctionner que quand on clique sur le bouton, dans l'interface web :(

Mais, il existe un bon moyen de relancer la synchronisation : LE REBOOT ! Pour cela CISCO a caché une page dans son interface web, qui peut être appelée, via un wget . J'ai réalisé un script en Perl, qui test à intervalles réguliers si l'IP du routeur est identique à l'IP associée au nom de domaine.

#!/usr/bin/perl -w

my $ip=`wget http://checkip.dyndns.org/ -O - -o /dev/null`;
$ip=~/(\d+\.\d+\.\d+\.\d+)/;
$ip=$1;
my $dns=`host YOURDYNDNS.dyndns.org`;
$dns=~/(\d+\.\d+\.\d+\.\d+)/;
$dns=$1;
my $URL="http://admin:YOURPASS@192.168.1.1/setup.cgi?todo=reboot";
if($ip ne $dns) {
  system("wget -q $URL -O /dev/null");
}

Il suffit de placer un appel au script dans un cron et le tour est joué !