Differences

This shows you the differences between two versions of the page.

Link to this comparison view

freebsd:reconnection_auto [2010/01/12 13:29] (current)
Line 1: Line 1:
 +  * INTRODUCTION
 +J'ai configuré récemment un vieux PPro 200 en passerelle ADSL. Pour cela, je me suis notamment servi du script de reconnection automatique proposé par shado (Tip FreeBSD/​PPPoE). Mais je me suis permis de l'​améliorer et maintenant j'​apporte à mon tour ma pierre à l'​édifice.
 +
 +  * LE SCRIPT
 +<​code>​
 +----------- Début du script -----------
 +#​!/​usr/​local/​bin/​bash
 +# Script de reconnection automatique
 +
 +#​216.239.39.101 est l'ip de google.com au 24/02/2002
 +
 +testconnect() {
 +CONNECT=`/​sbin/​ping -c 3 216.239.39.101 | grep packets | cut -d' ' -f4`
 +}
 +
 +doconnect() {
 +logger -t reconnect Essai reconnection.
 +/​usr/​bin/​killall -HUP ppp
 +/​usr/​sbin/​ppp -ddial wanadoo
 +sleep 5
 +}
 +
 +displayip() {
 +IP=`/​sbin/​ifconfig | grep -A 1 tun0 | grep inet | cut -d' ' -f2`
 +logger -t reconnect Adresse IP : "​$IP"​
 +}
 +
 +logger -t reconnect Test connection.
 +testconnect
 +if [ "​$CONNECT"​ = "​0"​ ];
 +   then
 +   ​logger -t reconnect Connection perdue.
 +   ​doconnect
 +   ​testconnect
 +   if [ "​$CONNECT"​ != "​0"​ ];
 +      then
 +      logger -t reconnect Reconnection OK.
 +      displayip
 +      else
 +      logger -t reconnect Reconnection manquee.
 +   fi
 +   else
 +   ​logger -t reconnect Connection OK.
 +   ​displayip
 +fi
 +
 +exit 0
 +
 +# FIN
 +----------- Fin du script -----------
 +</​code>​
 +
 +  * QUELQUES EXPLICATIONS
 +La procédure testconnect récupère le nombre de paquets IP revenus après un ping sur une URL quelconque. Ici c'est un serveur de google.com parce que je suis abonné à Wanadoo et que leur serveur/​routeur (wanadoo.fr) n'​autorise pas le ping. Ce nombre est stocké dans CONNECT.
 +
 +La procédure doconnect tente une reconnection (le nom de ma connection (configuré dans /​etc/​ppp/​ppp.conf) est wanadoo : à remplacer par le nom que vous avez configuré) et attend 5 secondes.
 +
 +La procédure displayip récupère l'​adresse IP attribuée par mon provider à l'​interface tun0 et l'​envoie au logger. Ça c'est parce que j'ai une adresse IP dynamique et que je veux surveiller la fréquence de changement.
 +
 +Le "wait 5" de la procédure doconnect est nécessaire car sans elle l'​appel de testconnect juste après doconnect ne laisse pas le temps à la reconnection de s'​effectuer entièrement et le script pense que la connection n'est pas rétablie, ce qui est faux.
  
freebsd/reconnection_auto.txt · Last modified: 2010/01/12 13:29 (external edit)