logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 26-03-2018 21:09:03

galactic
Membre
Inscription : 16-01-2017

[Résolu] DNS dynamique : pas de mise à jour IP à partir d'un script

Bonsoir,

J'ai installé un client afin de mettre à jour mon IP dynamique vers un serveur noip.
Une fois le système démarré, en console :

root@giga:/home/hubert# /usr/local/bin/noip2


La mise à jour s'effectue correctement.

Par contre avec le script :

#! /bin/sh
### BEGIN INIT INFO
# Provides:     noip
# Required-Start: $network
# Required-Stop:
# Default-Start: 2
# Default-Stop: 0 6
# Short-Description:
# Description:
### END INIT INFO

. /lib/lsb/init-functions

case "$1" in
        start)
                /usr/local/bin/noip2
        ;;
        stop)
                killproc -TERM /usr/local/bin/noip2
        ;;
        *)
                echo "usage: $0 {start|stop}"
                exit 1
        ;;
esac
exit 0

 



Et la mise en place du service avec le runlevel 2 :

root@giga:/home/hubert# update-rc.d noip start 95 2 . stop 10 0 6 .
 Adding system startup for /etc/init.d/noip ...
   /etc/rc0.d/K10noip -> ../init.d/noip
   /etc/rc6.d/K10noip -> ../init.d/noip
   /etc/rc2.d/S95noip -> ../init.d/noip
 



Au redémarrage du système, je n'ai pas de mise à jour de l'IP sur le site noip
Par contre, le processus a bien été lancé, car si j'effectue la commande :

root@giga:/home/hubert# /usr/local/bin/noip2 -S
1 noip2 process active.

Process 724, started as noip2, (version 2.1.9)
Using configuration from /usr/local/etc/no-ip2.conf
Last IP Address set 0.0.0.0
Account fdata-serveur@free.fr
configured for:
        host  fdata.hopto.org
Updating every 20 minutes via /dev/eth0 with NAT enabled.
 



Donc ma question : qui empêche le script de fonctionner lors de l'init du système (réseau non opérationnel?, autre?)

Dernière modification par galactic (27-03-2018 15:01:17)

Hors ligne

#2 27-03-2018 13:23:17

galactic
Membre
Inscription : 16-01-2017

Re : [Résolu] DNS dynamique : pas de mise à jour IP à partir d'un script

Problème résolu : on enlève le script qui lance la commande /usr/local/bin/noip2

root@giga:/home/hubert# update-rc.d -f noip remove
 Removing any system startup links for /etc/init.d/noip ...
   /etc/rc0.d/K10noip
   /etc/rc2.d/S95noip
   /etc/rc6.d/K10noip
 



Dans /etc/rc.local on exécute la commande avec un délai :

.....
( sleep 40; /usr/local/bin/noip2 ) &
.....
 



Le script /etc/rc.local est exécuté par /etc/init.d/rc.local :

root@giga:/home/hubert# ls -l /etc/rc2.d
total 4
-rw-r--r-- 1 root root 677 Apr 14  2012 README
lrwxrwxrwx 1 root root  14 Dec  5  2012 S75sudo -> ../init.d/sudo
lrwxrwxrwx 1 root root  17 Jan  1  2010 S92tomcat7 -> ../init.d/tomcat7
lrwxrwxrwx 1 root root  17 Jan 28  2017 S99horloge -> ../init.d/horloge
lrwxrwxrwx 1 root root  18 Dec  5  2012 S99ondemand -> ../init.d/ondemand
lrwxrwxrwx 1 root root  18 Dec  5  2012 S99rc.local -> ../init.d/rc.local
 



Cependant toujours pas compris pourquoi la commande qui doit faire un accès réseau ne s'éxécute pas correctement quand on la met dans un script rc2.d

Dernière modification par galactic (27-03-2018 14:20:49)

Hors ligne

#3 28-03-2018 14:42:08

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] DNS dynamique : pas de mise à jour IP à partir d'un script

galactic a écrit :

Problème résolu


Pas vraiment. C'est un contournement, pas une résolution.

galactic a écrit :

Cependant toujours pas compris pourquoi la commande qui doit faire un accès réseau ne s'éxécute pas correctement quand on la met dans un script rc2.d


C'est le déplacement dans rc.local ou l'ajout de la temporisation qui a contourné le problème ?


Il vaut mieux montrer que raconter.

Hors ligne

#4 28-03-2018 15:26:55

galactic
Membre
Inscription : 16-01-2017

Re : [Résolu] DNS dynamique : pas de mise à jour IP à partir d'un script

raleur a écrit :

C'est le déplacement dans rc.local ou l'ajout de la temporisation qui a contourné le problème ?



Vraisemblablement, c'est la temporisation. Je vais faire quelques tests pour cerner la chose plus précisément; j'aimerais revenir à un fonctionnement standard en utilisant rc2.d.

Dernière modification par galactic (28-03-2018 15:29:09)

Hors ligne

#5 28-03-2018 15:34:06

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] DNS dynamique : pas de mise à jour IP à partir d'un script

Cela me semble vraisemblable aussi. Dans ce cas, il serait plus propre d'identifier l'élément nécessaire au bon fonctionnement (réseau opérationnel ?) et de tester sa présence plutôt qu'attendre un temps arbitraire qui pourrait être souvent trop long et quelque fois trop court.

Il vaut mieux montrer que raconter.

Hors ligne

#6 28-03-2018 15:46:59

galactic
Membre
Inscription : 16-01-2017

Re : [Résolu] DNS dynamique : pas de mise à jour IP à partir d'un script

Merci.
Le fonctionnement du script est correct car dans le fichier de config de /usr/local/bin/noip2, j'ai un scan de l'IP locale toute les 30 minutes, et si au boot l'IP n'est pas mise à jour sans le sleep 20, au bout de 30mn la nouvelle IP est validée sur le serveur noip le sleep étant enlevé. et tout ceci dans rc2.d sans passer par rc.local.
Pourtant j'introduis la nécessité de tous les services dans l'entête du script /etc/init.d/noip

....
# Required-Start: $all
.....
 



Après quelques essais sans rc.local dont report du delai (15s) dans le scipt /etc/init.d/noip le fonctionnement est correct.
Donc il doit y avoir un service qui n'est pas disponible lors de l'éxécution du script au démarrage; alors à quoi sert # Required-Start: $all

Dernière modification par galactic (28-03-2018 16:31:00)

Hors ligne

#7 29-03-2018 12:47:47

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] DNS dynamique : pas de mise à jour IP à partir d'un script

Attention à la signification de "service démarré", notamment dans le cas des service de configuration du réseau.

Par exemple dans le cas du service "networking" qui configure le réseau tel que défini dans /etc/network/interfaces, il ne configure au démarrage que les interfaces marquées "auto" (ou allow-auto). Par défaut, seulement l'interface de loopback lo. Si l'interface Ethernet est marquée "allow-hotplug", elle est configurée lors de sa détection, indépendamment du démarrage du service. Donc le service peut être démarré sans que le réseau soit opérationnel.

Même chose avec le service NetworkManager : notamment si une connexion réseau n'est pas partagée entre tous les utilisateurs, elle n'est démarrée que lors de l'ouverture de session de son utilisateur propriétaire.

Il vaut mieux montrer que raconter.

Hors ligne

#8 31-03-2018 18:25:02

galactic
Membre
Inscription : 16-01-2017

Re : [Résolu] DNS dynamique : pas de mise à jour IP à partir d'un script

Après investigation, j'arrive à la conclusion qu'il s'agit d'un pb d'IP statique et de DNS.

Au final, ce serveur web est situé sur un site distant ou je partage une connexion internet par l'intermédiaire d'un routeur Zyxel.
Je n'ai aucune maitrise sur ce routeur : je dispose d'une plage de ports et tout trafic sur ces ports est redirigé vers 192.168.1.253.
Cette IP est codée en "dur" sur le serveur web : pas de dhcp accessible sur le routeur.

Pour le développement à mon domicile, j'ai d'abord utilisé une attribution d'adresse statique par dhcp au niveau de la box :


# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        address 192.168.1.253
        netmask 255.255.255.0
        gateway 192.168.1.254
        dns-nameservers 172.16.0.23
 



Le problème apparait lors du passage à une IP statique. Le DHCP étant désactivé au niveau de la box.

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.1.253
        netmask 255.255.255.0
        gateway 192.168.1.254
        dns-nameservers 172.16.0.23
 


Avec cette config, malgré l'indication du gateway (qui devrait suffire pour relayer la requête) la résolution de nom est longue (quand elle se fait - et à l'init elle ne se fait pas) : la box ne semble pas traiter correctement une demande d'un client DNS qui provient d'un équipement situé sur le même réseau. Dans ce cas la box ne connait pas l'adresse MAC de l'équipement.

Au final, le problème semble résolu en enlevant le délai dans le script /etc/init.d/noip et en ajoutant la box comme serveur DNS :

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.1.253
        netmask 255.255.255.0
        gateway 192.168.1.254
        dns-nameservers 172.16.0.23 192.168.1.254
 



Merci pour les éclaircissements apportés et les idées émises pour la résolution du problème.

Dernière modification par galactic (31-03-2018 20:46:19)

Hors ligne

#9 31-03-2018 23:27:17

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] DNS dynamique : pas de mise à jour IP à partir d'un script

Je n'ai pas compris un point : actuellement le serveur est sur ton réseau derrière ta box ou sur le réseau derrière le routeur ?

galactic a écrit :

une attribution d'adresse statique par dhcp


Ceci ne veut rien dire, c'est un oxymore. Le D de DHCP signifie "dynamique". Par définition une configuration par DHCP n'est pas statique et vice versa.
Les options "address", "netmask", "gateway" ne sont prises en compte que par la méthode "static" et ignorées par la méthode "dhcp". Par contre l'option dns-nameservers est prise en compte quelle que soit la méthode (si le paquet resolvconf est installé), et peut entrer en conflit avec l'option domain-name-servers reçues du serveur DHCP avec la méthode "dhcp".

A quoi correspond l'adresse de DNS 172.16.0.23 qui est hors du sous-réseau configuré sur l'interface ?

galactic a écrit :

la box ne semble pas traiter correctement une demande d'un client DNS qui provient d'un équipement situé sur le même réseau. Dans ce cas la box ne connait pas l'adresse MAC de l'équipement.


Qu'est-ce qui te fait dire cela ? La suite semble prouver le contraire, car il n'y a aucun lien entre résolution DNS et adresse MAC.

J'ai plutôt l'impression que l'adresse de DNS 172.16.0.23 n'est pas valide et que la bonne solution aurait été de la supprimer.


Il vaut mieux montrer que raconter.

Hors ligne

Pied de page des forums