Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme de bail dhcp

8 réponses
Avatar
Sebastien Kirche
Bonsoir,

je viens de constater un disfonctionnement dhcp sur mon réseau local :
mon poste client perso fonctionne en dual boot linux/xp et s'appelle obelix
dans les 2 systèmes.
Lorsque je reboote sous xp après une session de travail sous linux, xp
n'arrive pas à obtenir la même adresse que précédemment.

Le syslog sur le serveur dhcp indique ceci au moment de la demande de bail
de xp :
dnsmasq: DHCPREQUEST(eth1) 192.168.0.155 00:30:1b:ac:53:f8
dnsmasq: DHCPACK(eth1) 192.168.0.155 00:30:1b:ac:53:f8 obelix
dnsmasq: not naming DHCP lease for obelix because it clashes with an
/etc/hosts
entry.

Selon /etc/hosts, obelix est censé être 192.168.0.10, or là je comprends
qu'il
indique que ce obelix(xp) est en conflit pour l'obtention de l'adresse avec
un
autre poste : obelix(linux) et il lui attribue une autre adresse dans le
pool
réservé aux invités.

Comment pourrais-je indiquer au serveur que c'est la même machine ?
Je suppose que même en utilisant les addresses MAC (plusieurs adresses MAC
pour
une même ip ?) ça sera pareil ?

Il faudrait que le lui fasse libérer l'adresse utilisée par linux en cas de
reboot ?
"ifconfig eth1 down" au moment du reboot ?

Merci pour vos avis.
Sébastien Kirche

8 réponses

Avatar
françois
Sebastien Kirche wrote:> une même ip ?) ça sera pareil ?

Il faudrait que le lui fasse libérer l'adresse utilisée par linux en cas de
reboot ?
"ifconfig eth1 down" au moment du reboot ?

Merci pour vos avis.
Sébastien Kirche




Bonsoir ,

en ce qui concerne dhcpcd , il existe l'option -k
envoyant le signal sighup au démon (sur le client) une fois le signal
reçu ,le démon envoi alors la requête (plutôt le message)dhcp_release au
serveur , ce qui provoque la fin du bail,le cache est également détruit.
.
Ce qui me parait bizarre c'est que lors d'un reboot les actions
précédentes devrai se dérouler (je pense que oui).
vérifiez alors si le cache du serveur concernant la machine en question
est bien détruit.

@+

Avatar
Sebastien Kirche
On 17 mai 2004, wrote:

Bonsoir ,


Bonsoir,

en ce qui concerne dhcpcd , il existe l'option -k
envoyant le signal sighup au démon (sur le client) une fois le signal
reçu ,le démon envoi alors la requête (plutôt le message)dhcp_release
au serveur , ce qui provoque la fin du bail,le cache est également
détruit.


Heu, oui j'avais effectivement trouvé (ou plutôt mon Ami) cette info.

Cependant je m'y prend peut-être mal, mais je n'ai pas de démon dhcpcd
(dhcpd ? dhcp-client-daemon ?):
ps aux |grep -i dhcp --> [résultat = rien]

Et le seul exécutable qui se nomme dhcp est dhcpd3 du démon dhcpd3 mais bien
qu'installé il ne tourne pas.

Mon bail est négocié au démarrage du client, via la directive dhcp dans le
fichier interfaces :
,----[ interfaces ]
| # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
|
| # The loopback interface
| # automatically added when upgrading
| auto lo
| iface lo inet loopback
|
| auto eth0
| iface eth0 inet dhcp
`----
Il ne me semble pas qu'il y ait de client logiciel qui tourne après ceci.

.
Ce qui me parait bizarre c'est que lors d'un reboot les actions
précédentes devrai se dérouler (je pense que oui).


Pardon ? J'ai du mal à suivre le sens de ceci...

vérifiez alors si le cache du serveur concernant la machine en
question est bien détruit.


Si j'arrive à résilier le bail, oui.

J'avais pensé utiliser une durée de bail réduite au niveau de la conf du
serveur dhcp (dnsmasq) mais cela me paraît un peu "rustine" comme solution.

Merci quand même.

Sébastien Kirche

Avatar
françois
Sebastien Kirche wrote:
Heu, oui j'avais effectivement trouvé (ou plutôt mon Ami) cette info.

Cependant je m'y prend peut-être mal, mais je n'ai pas de démon dhcpcd
(dhcpd ? dhcp-client-daemon ?):
ps aux |grep -i dhcp --> [résultat = rien]

Et le seul exécutable qui se nomme dhcp est dhcpd3 du démon dhcpd3 mais bien
qu'installé il ne tourne pas.



Bonjour,

un ps aux | grep dh ==> il y a bien un dhclient qui tourne ? .....



Mon bail est négocié au démarrage du client, via la directive dhcp dans le
fichier interfaces :
,----[ interfaces ]
| # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
|
| # The loopback interface
| # automatically added when upgrading
| auto lo
| iface lo inet loopback
|
| auto eth0
| iface eth0 inet dhcp
`----
Il ne me semble pas qu'il y ait de client logiciel qui tourne après ceci.


Voir plus haut



.
Ce qui me parait bizarre c'est que lors d'un reboot les actions
précédentes devrai se dérouler (je pense que oui).



Pardon ? J'ai du mal à suivre le sens de ceci...





heu , je reformule : quand la machine est en train de s'éteindre , donc
rentre dans le runlevel 6 , le script K?? ( de dhclient) s'execute ==>
le signal sighup est alors envoyé au démon dhclient qui lui même envoi
le message dhcp_request au serveur ,qui résilie le bail en question .

Ce que je trouve étrange c'est le fait que cela (la procédure)ne puisse
pas se produire dans dans votre cas ,et qu'il valait mieux se tourner
vers la config du serveur de toutes façon.

et "je pense que oui " ==> ça ne veut pas dire grand chose .......

Heu ...

Je n'ai en effet pas été trés clair .




vérifiez alors si le cache du serveur concernant la machine en
question est bien détruit.



Si j'arrive à résilier le bail, oui.

J'avais pensé utiliser une durée de bail réduite au niveau de la conf du
serveur dhcp (dnsmasq) mais cela me paraît un peu "rustine" comme solution.


Je le pense aussi , mais bon c'est peut-être la solution , voir le
fichier /var/lib/dhcp/dhclient.leases générer lors de la demande de bail
au serveur (sur le client) pour voir ce que cela dit .


Merci quand même.

De rien



Sébastien Kirche


François


Avatar
Sebastien Kirche
Bonjour,

On 18 May 2004, françois wrote:


un ps aux | grep dh ==> il y a bien un dhclient qui tourne ? .....


Ben non.
Ah, du coup ça m'a mis la puce à l'oreille, et en regardant la liste des
process, je suis tombé sur ceci : «pump -i eth0»

Là dessus «man pump» m'indique «pump - configure network interface via BOOTP
or DHCP protocol»
Bon, comme je n'avais pas de souci, je n'avais jamais cherché à voir
comment la config dhcp était goupillée sur le client. Maintenant je sais.

Dans les options décrite par man, je vois aussi ceci (extrait):
-k --kill Kill daemon (and disable all interfaces)
-l --lease=hours Lease time to request (in hours)
-r --release Release interface
-R --renew Force immediate lease renewal

Il apparaît que l'option -r pourrait bien être la solution.
Je verrais cela plus tard car pour le moment je suis connecté via ssh, et
je ne veux pas me saborder :)

Il ne me semble
pas qu'il y ait de client logiciel qui tourne après ceci.


Voir plus haut


Effectivement, sauf qu'il ne se nomme pas dh* pour tromper l'ennemi.

heu , je reformule : quand la machine est en train de s'éteindre ,
donc rentre dans le runlevel 6 , le script K?? ( de dhclient)
s'execute ==> le signal sighup est alors envoyé au démon dhclient qui
lui même envoi le message dhcp_request au serveur ,qui résilie le bail
en question .

Ce que je trouve étrange c'est le fait que cela (la procédure)ne
puisse pas se produire dans dans votre cas ,et qu'il valait mieux se
tourner vers la config du serveur de toutes façon.


Je vais voir si et comment je peux modifier l'extinction/reboot qui semble
ne pas comporter de script pour pump (?) afin de lui faire résilier le bail.

Si j'arrive à résilier le bail, oui. J'avais pensé utiliser une
durée de bail réduite au niveau de la conf du
serveur dhcp (dnsmasq) mais cela me paraît un peu "rustine" comme
solution.


Je le pense aussi , mais bon c'est peut-être la solution , voir le
fichier /var/lib/dhcp/dhclient.leases générer lors de la demande de
bail
au serveur (sur le client) pour voir ce que cela dit .


On verra ce que ça donne avec le pump -r sinon j'essaierai ça en plan B.

Merci et bonne journée :)

Sébastien Kirche


Avatar
françois
françois wrote:
heu , je reformule : quand la machine est en train de s'éteindre , donc
rentre dans le runlevel 6 , le script K?? ( de dhclient) s'execute ==>
le signal sighup est alors envoyé au démon dhclient qui lui même envoi
le message dhcp_request au serveur ,qui résilie le bail en question .



Rectification:
Il n'y a pas de script K??dhclient , c'est le script
/etc/init.d/networking qui s'occupe de l'arret
et la mise en service du réseau , en consultant
/etc/network/interfaces.
c'est tout @+ .

Ce que je trouve étrange c'est le fait que cela (la procédure)ne puisse
pas se produire dans dans votre cas ,et qu'il valait mieux se tourner
vers la config du serveur de toutes façon.



Avatar
françois
Sebastien Kirche wrote:
Bonjour,

On 18 May 2004, françois wrote:



un ps aux | grep dh ==> il y a bien un dhclient qui tourne ? .....



Ben non.


chez moi j'ai "dhclient -pf eth1"


Ah, du coup ça m'a mis la puce à l'oreille, et en regardant la liste des
process, je suis tombé sur ceci : «pump -i eth0»



Un peu vieux le client pump ..... ,mais bon il fait le même boulot.
avec la bonne option ,comme tu le suggère , ça devrai passez.

Merci et bonne journée


De même .


Avatar
Sebastien Kirche
Bonsoir,

On 18 mai 2004, wrote:

françois wrote:
heu , je reformule : quand la machine est en train de s'éteindre , donc
rentre dans le runlevel 6 , le script K?? ( de dhclient) s'execute
==> le signal sighup est alors envoyé au démon dhclient qui lui
même envoi le message dhcp_request au serveur ,qui résilie le bail
en question .



Rectification:
Il n'y a pas de script K??dhclient , c'est le script
/etc/init.d/networking qui s'occupe de l'arret
et la mise en service du réseau , en consultant
/etc/network/interfaces.
c'est tout @+ .

Ce que je trouve étrange c'est le fait que cela (la procédure)ne
puisse pas se produire dans dans votre cas ,et qu'il valait mieux se
tourner vers la config du serveur de toutes façon.




Ça y est j'ai enfin trouvé du temps pour bosser là-dessus.
C'est pas encore ça : après essais, pump -r se contente de libérer
l'interface sans en informer le démon dhcp ce qui ne change rien à mon
problème.

Puisqu'il était question dans le fil de dhcpcd, je l'ai donc installé à la
place de pump.
- en «commande mannuelle» j'ai constaté qu'à la demande de bail je devais
passer lui demander d'ajouter le hostname à la requête pour que le dhcp
attribue correctement l'adresse (dnsmasq consulte /etc/hosts pour cela)
- en cas de dhcpd -k le dhcp reçoit bien un DHCPRELEASE : ça roule

J'ai donc configuré le fichier interfaces comme suit :

,----[ interfaces ]
| # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
|
| # The loopback interface
| # automatically added when upgrading
| auto lo
| iface lo inet loopback
|
| auto eth0
| iface eth0 inet dhcp
| pre-up dhcpcd -h `hostname` eth0
| pre-down dhcpcd -k
`----

Je constate en cas de «ifup -a» manuel que l'adresse est configurée comme il
faut, mais apparemment ifup tente de lancer dhcpcd 2 fois mais je n'ai pas
trouvé où :

,----
| :/home/seki# ifup -a
| eth0: Setting 100mbps full-duplex based on auto-negotiated partner ability
| 45e1.
| dhcpcd.exe: interface eth0 has been configured with new IP2.168.0.10
| Dhcpcd is already running. <==== ????
`----

Enfin d'après le foutu manuel, il semble que par conception en cas de reboot
le signal SIGTERM reçu lors du shutdown empèche dhcpcd de libérer le bail
pour pouvoir retrouver dans son cache l'adresse qui était attribuée et la
reprendre.
Le problème c'est que moi je reboote alors pour aller dans un autre système.

Il faudrait alors sans doute que je tape dans les scripts init.d mais je ne
suis pas trop sûr...

Donc j'ai progressé, mais pas tellement :(

Sébastien Kirche


Avatar
françois
Sebastien Kirche wrote:

Bonjour,


Puisqu'il était question dans le fil de dhcpcd, je l'ai donc installé à la
place de pump.
- en «commande mannuelle» j'ai constaté qu'à la demande de bail je devais
passer lui demander d'ajouter le hostname à la requête pour que le dhcp
attribue correctement l'adresse (dnsmasq consulte /etc/hosts pour cela)
- en cas de dhcpd -k le dhcp reçoit bien un DHCPRELEASE : ça roule


En ce qui concerne dnsmasq ,je connais pas du tout...

J'ai donc configuré le fichier interfaces comme suit :

,----[ interfaces ]
| # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
|
| # The loopback interface
| # automatically added when upgrading
| auto lo
| iface lo inet loopback
|
| auto eth0
| iface eth0 inet dhcp
| pre-up dhcpcd -h `hostname` eth0
| pre-down dhcpcd -k
`----




Pas besoin de pre-up et pre-down.
Par défaut lors de l'extinction de la machine le démon est averti (-k
est l'option par défaut )...
Supprime donc ces 2 lignes .

*(en tous cas pour dhclient ==> voir la fin du fil)

Je constate en cas de «ifup -a» manuel que l'adresse est configurée comme il
faut, mais apparemment ifup tente de lancer dhcpcd 2 fois mais je n'ai pas
trouvé où :

,----
| :/home/seki# ifup -a
| eth0: Setting 100mbps full-duplex based on auto-negotiated partner ability
| 45e1.
| dhcpcd.exe: interface eth0 has been configured with new IP2.168.0.10
| Dhcpcd is already running. <==== ????
`----



je ne suis pas sûre mais il se peut que cela soit du aux lignes pre-up
et pre-down justement.

*(en tous cas pour dhclient ==> voir la fin du fil)



Enfin d'après le foutu manuel, il semble que par conception en cas de reboot
le signal SIGTERM reçu lors du shutdown empèche dhcpcd de libérer le bail
pour pouvoir retrouver dans son cache l'adresse qui était attribuée et la
reprendre.
Le problème c'est que moi je reboote alors pour aller dans un autre système.

Il faudrait alors sans doute que je tape dans les scripts init.d mais je ne
suis pas trop sûr...

Donc j'ai progressé, mais pas tellement :(

Sébastien Kirche


Que dit ps aux | grep dhcli*
moi ça donne ==>

dhclient -pf /var/run/dhclient.eth1.pid eth1 (exactement...) .

* J'utilise sous debian , dhclient , c'est le paquet dhcp-client ou
dhcp3-client , il faut que je passe sous gentoo pour voir la config de
dhcpcd ( de mémoire c'est le même processus , donc essai dejà de virer
les deux lignes suspectes pre-up et pre-down ==> à moins qu'elles soient
nécessaire pour dnsmasq ) ...pour le moment c'est difficile .

tu devrais tout de même t'en sortir avec dhcpcd . ( je crois qu'il y a
enore plus d'options que dhclient ) .
@+