ipupdate

version: 1.6.0 bash langage license LPRAB / WTFPL

client DNS dynamique, ipv4, ipv6

attention, sécurité fichier conf

requis

chargement

https://framagit.org/sdeb/ipupdate.git
 # or
git@framagit.org:sdeb/ipupdate.git
 # or
curl -L -o ipupdate.run https://framaclic.org/h/ipupdate-run
 # ou 
wget -nv -O ipupdate.run https://framaclic.org/h/ipupdate-run

 # si besoin: 
chmod +x ipupdate.run

./ipupdate.run
cd ipupdate-release

cp ipupdate.conf.sample ipupdate.conf

usage

   _                       _       _ 
  (_)_ __  _   _ _ __   __| | __ _| |_ ___   
  | | '_ \| | | | '_ \ / _' |/ _' | __/ _ \  
  | | |_) | |_| | |_) | (_| | (_| | ||  __/  
  |_| .__/ \__,_| .__/ \__,_|\__,_|\__\___|  
    |_|         |_|  1.5.0 22/06/2018       

  usage :  ipupdate [options]        ( les options et les arguments doivent etre séparés par 1 espace )

    sans option   : tous les services configurés sont vérifiés et une éventuelle nouvelle 
                    adresse IP est publiée si changement (root requis)
        --debug   : affichage mode verbeux (publication, session smtp)
        --dev     : utilisation branche dev pour mise à jour ou n° de version 
        --service <service> : réduit les actions sur un seul <service> de DNS dynamique
    -c, --clear   : efface l'ip dans la zone DNS (ou mise en mode hors-ligne) (root requis)
                    (voir à désinstaller ou désactiver l'exécution périodique)
    -f, --force   : force les mises à jours des DNS dynamiques (root requis)
                    -f --service <exemple> forcera uniquement le service <exemple>
    -h, --help    : cette aide
    -i, --install : installation (root requis)
    -r, --remove  : désinstallation (root requis)
    -u, --upgrade : provoque le chargement et le remplacement du script installé (root requis)
    -v, --version : version du script en ligne et installé

  script dir    : /opt/bin/
  conf file     : /etc/ipupdate.conf
  logs file     : /var/log/ipupdate.log
  tracking file : /var/log/track-ipupdate

  active protocols : ipv4 ipv6 
  services dynDns possibles: duckdns / dynu / freemyip / hn / noip
  services dynDns actifs (ip inscrites dans la zone du service dns dynamique:
    toto.duckdns.org (duckdns)  : 99.111.255.44   2001:db8:0:0:1::1
    toto.ddns.net (noip)        : 99.111.255.44
    toto.dynu.net (dynu)        : 99.111.255.44   2001:db8:0:0:1::1
    toto.hn.org (hn)            : 99.111.255.44
    toto.freemyip.com (freemyip): 99.111.255.44
  Ip publique:
    99.111.255.44      2001:db8:0:0:1::1

  plus d'infos: https://framaclic.org/h/doc-ipupdate

informations complémentaires:

exemples

ipupdate pour tous les services de DNS dynamique actifs, pour tous les protocoles activés et par service, met à jour l'ipv4 publique ou l'ipv6 si changement par rapport à celles déclarées dans les dns. Cette commande est celle destinée a être appelée régulièrement pour mettre à jour l'ip, en standard quand installé: toutes les 5 mn, dans le crontab.

ipupdate -f --debug force la publication des adresses ip auprès de tous les services de DNS dynamique activés, avec un affichage de la session smtp éventuelle et un log de la séquence de publication.

ipupdate --service dynu force la publication des adresses ip auprès de dynu (service de DNS dynamique), en mode standard

ipupdate -h aide succincte avec infos de configurations

ipupdate -c --service dynu efface l'enregistrement, ou active le mode offline auprès de dynu. le service de DNS dynamique doit supporter cette fonctionnalité, et le lancement périodique du script arrêté (désinstallation ou désinsciption crontab, )

ipupdate -c efface l'enregistrement, ou active le mode offline pour tous les services possibles.

ipupdate -i installation

ipupdate -v affichage versions, en place et en ligne

ipupdate -u upgrade, mise à jour (ipupdate -u --dev pour utiliser la version de la branche dev, version instable)

ipupdate -c effacement des services actifs si cette fonctionnalité est gérée

ipupdate -r remove, désinstallation

installation

le script n'a pas obligatoirement besoin d'être installé et peut être utilisé/mis à jour à n'importe quel emplacement. Dans ce cas, l'inscription dans un crontab ou comme service doit être faite manuellement.

avec l'option ipupdate -i:

configuration

surveillance, logs

taille par défaut:

une fois la taille atteinte, ces fichiers sont renommés en .1 avant un nouveau remplissage de (une seule rotation)

/var/log/ipupdate.log:
Si installé (droits root), ou si accessible en écriture, les évènements propres au script sont placés ici. En cas d'inaccessibilité, les logs sont placés, si possible, dans le répertoire courant du scriot.

/var/log/track-ipupdate:
Si le monitoring est activé (fichier ipupdate.conf, tracking="true"), si installé (droits root), ou si accessible en écriture, les évènements propres au script sont placés ici. En cas d'inaccessibilité, les logs sont placés, si possible, dans le répertoire courant du scriot.

Seuls les changements d'ip (ipv4 publique et/ou ipv6 globale), sont inscrits dans ce fichier, avec l'état de la connexion internet (ok/KO), l'ipv4 privé et la date locale

exemple:

99.111.255.44   2001:db8:0:0:1::1  ok  192.168.1.53    24/05/2018 17:00 +0000
                2001:db8:0:0:1::1  KO  192.168.1.53    29/05/2018 11:38 +0000
                                   KO  192.168.1.53    29/05/2018 12:03 +0000
                                   ok  192.168.1.53    29/05/2018 16:47 +0000
99.111.255.44   2001:db8:0:0:1::1  ok  192.168.1.53    29/05/2018 16:50 +0000

mise à jour

désinstallation

mails

si l'envoi de mails est configuré, voir ipupdate.conf et activé envoi_mail="true", lors d'une publication, si changement ip réelle par rapport à l'ip dans la zone du serveur de noms ayant autorité:

 ipv4: 99.111.255.44                    # ipv4 constatée
 ipv6: 2001:db8:0:0:1::1                # ipv6 constatée

  30/05/2018 11:55:02 +0000             # date locale d'envoi avec événement spécial (ou date de boot si moins de 10mn):
                                        # boot 30/05/2018 12:09 +0000

 duckdns (toto.duckdns.org)             # service & domaine traité
 -------
   update: ipv4 ipv6                    # ipv4 & ipv6 mises à jour


 noip (toto.ddns.net)           # erreur "critique", pas de ré-essai avant 1 heure. après résolution du souci:
 -------                        # effacer le fichier témoin (/tmp/ipupdate_noip_ip_pub) ou forcer pour tester:
                                # ipupdate -f --service <service>
   critical error: check dynamic Dns account, erase file /tmp/ipupdate_noip_ip_pub and test.  
   noip:  badauth Error: failed authentication, check all parameters (authentication, hostname...) 


 dynu (toto.dynu.net) 
 -------
                                        # aucune opération effectuée

 hn (toto.hn.org) 
 -------
   hn: 202 Error: server error.         # erreur non critique, ré-essai à la prochaine période (5mn)


 freemyip (toto.freemyip.com) 
 -------
   update: ipv4                         # ipv4 mise à jour (pas d'ipv6 possible ou nécessaire)


 ipupdate v1.0.0

essais services gratuits

sources

framagit (gitlab) (framasoft service)

license

compteur