Quel daemon pour DHCP

Fermé
mali44 Messages postés 180 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 24 novembre 2005 - 16 avril 2005 à 21:50
mali44 Messages postés 180 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 24 novembre 2005 - 28 avril 2005 à 11:06
slt,

pour configurer squid avec mon adresse IP qui est dynamique j'ai besoin de savoir quel programme change mon IP pour relancer le service squid.

merci
a+
A voir également:

11 réponses

kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
16 avril 2005 à 21:58
Il y a trois possibilites:

dhcpcd
dhclient
pump

Cherche avec "ps aux" lequel des trois tourne. Tous les trois tournent comme daemon et sont capables de changer ton numero IP dynamiquement si le serveur le demande.
0
Slt à tous!!

ou est ce que je pourrais trouver une documentation complete pour kdevelop.

Je suis allé sur kdevelop.org mais le lien semble mort, si c'est le bon lien (il y en a tellement lol).

Je cherche plus precisement un tuto pour faire du GTK avec kdevelop.

Merci d'avance. Chris
0
Sorry, je me suis trompé de fenetre. Merci msn, ca deconcentre lol. Dsl

Chris
0
mali44 Messages postés 180 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 24 novembre 2005 3
16 avril 2005 à 22:44
a priori c'est dhclient chez moi
mais j'avoue ne pas trop savoir ou ajouter ma ligne:
service squid restart


a moins de voir ds var/log et de lancer un script?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
16 avril 2005 à 23:44
Je crois tu peux bricoler dans le script "/sbin/dhclient-script" qui semble execute a chaque fois il change de numero IP (fais avant toute modification une copie de saufgarde de ce ficher).

Moi, je proposerais tout betement:
cd /sbin/
mv dhclient-script dhclient-script-orig
emacs dhclient-script

dans le "nouveau" script tu appelles simplement l'ancien script et tu mets ta ligne pour redemarrer ton squid. Il faut que ce soit un truc que tu peux lancer en commande. Si "service squid restart" marche effectivement comme une commande c'est ca. Dans le nouveau fichier dhclient-script il faut donc mettre:

/sbin/dhclient-script-orig
"la bonne commande pour redemarrer ton squid"

Apres saufegarde du nouveau script tu le rends executable avec:
chmod +x dhclient-script


Tu peux aussi directement editer le script original mais ca me parrait plus complique.

Regarde aussi les options dans le fichier /etc/dhclient.conf, notamment si pour ton system le nom ou repertoire du script n'a pas ete modifie par rapport au defaut "/sbin/dhclient-script". Si oui tu fais la meme chose avec le nom/repertoire modifie.

-----
Complement: Avec dhcpcd comme client DHCP au lieu de dhclient c'est dans le script /etc/dhcpc/dhcpcd.exe ou tu peux mettre la bonne commande.
0
mali44 Messages postés 180 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 24 novembre 2005 3
18 avril 2005 à 18:22
/sbin/dhclient-script-orig
service squid restart


:-(( ça n'a pas fonctionné et planté ma connexion. Je suis sur de ma cde, c'est comme ça que je relance squid et mon fichier etait bien executable???
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
18 avril 2005 à 19:06
Je crois il y a deux causes possibles:
1) Il est possible que le script doit aussi transmettre/recevoir de parametres de la ligne de commande.
2) Il faut bien transmettre le "exit status" de l'ancien script vers le nouveau script.

Tu peux essaier avec ca:
STATUS=1
/sbin/dhclient-script-orig $@  && STATUS=0
service squid restart
exit $STATUS

Le "$@" represente tous les parametres que ton nouveau script recoit et qui seront tramis.
La variable STATUS sera 0 si "/sbin/dhclient-script-orig" fournit 0 (donc "succes") comme "exit status" sinon c'est 1. C'est ca qui sera fournit comme "exit status" du nouveau script. Dans tous les cas ta commande "service squid restart" sera execute et ne change pas "exit status"

Une autre facon, peut-etre plus intelligente, serait:
/sbin/dhclient-script-orig $@  && service squid restart && exit 0
exit 1

ici ton restart n'est execute qu'au cas ou le script dclient termine avec succes et le status final sera seulement succes si les deux marchent correctement!

Ca depend de tes intentions (tu souhaite faire le "squid ..." si le dhclient-script plante pour une raison ?) laquelle des deux solutions tu preferes. J'espere ca marchera, ce n'est pas teste.

Regarde avec "man bash" comment ca fonctionne avec le "exit status" et le && ou || pour enchainer les commandes.
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
18 avril 2005 à 19:34
Je viens de decouvrir qu'il y a une autre solution plus correcte ou plus officielle si on veut et certainement plus facile. Tu mets simplement la ligne: "service squid restart" dans le fichier: /etc/dhclient-exit-hooks a creer (il n'existe pas par defaut) et tu le rends aussi executable. Pour ca il faut aussi remettre l'ancien script en place. Donc en total il te faut faire:

echo "service squid restart" > /etc/dhclient-exit-hooks
chmod +x /etc/dhclient-exit-hooks
cp /sbin/dhclient-script-orig /sbin/dhclient-script

Apres redemarrer le daemon dhclient
(avec: "/etc/rc.d/init.d/dhclient restart" ou similaire) et ca devrait etre bon.
(ici le truc avec: "echo ... > ..." permet d'eviter de lancer emacs pour une petite ligne)


Pour infos/explications:
Regarde avec "man dhclient.script" la partie avec "HOOKS" ou c'est explique. Si on veut executer un script avant l'execution du dhclient-script on fait avec: /etc/dhclient-enter-hooks. Mais pour toi c'est bien sur apres donc avec: etc/dhclient-exit-hooks.
0
mali44 Messages postés 180 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 24 novembre 2005 3
27 avril 2005 à 23:54
bon, je suis de retour ;-))

ta soluce impeccable, sauf :-(( apparemment le test de mon ip avec dhclient est pratiquement permanent donc squid se relance en permanence, je ne m'en suis pas tout de suite aperçu, mais je ne comprenais pas pourquoi souvent ds mes surf avec squid en service j'étais bloqué sur des pages avec le message

ERROR
The requested URL could not be retrieved

While trying to retrieve the URL: http://www.commentcamarche.net/forum

The following error was encountered:

This cache is in the process of shutting down and can not service your request at this time. Please retry your request again soon.

Your cache administrator is root. 


et puis ça a fait tilt, et en supprimant la ligne ds le fichier /etc/dhclient-exit-hooks et bien plus de pb, sauf biensur le changement d'IP :-(( c'est insoluble ce truc.
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
28 avril 2005 à 09:52
Quand j'etais encore en non-degroupe chez Free (avec la Freebox qui fait serveur DHCP) le client dhcp refaisait une requete toutes les minutes mais bien sur le numero IP ne changais pas toutes les minutes mais il fallait apparament avoir un tres petit delai pour etre pret. Typiquement un numero IP restait pour 24 heures avec un changement a minuit.

J'ai l'impression selon ton temoignage que le script est execute chaque fois quand il y a une requete meme sans changement du numero IP (je suppose ton numero IP reste quand meme stable pendant un certain temps ?). Tu peux essayer d'ecrire/programmer un script plus complique qui ecrit le numero IP dans un petit fichier et quand le script est lance il lit d'abord l'ancien numero IP et il compare avec la nouvelle et il redemarre le squid uniquement quand le numero IP change vraiement.
Apres il recrit le numero IP vers le meme fichier.


Apart ca, tu peux aussi essayer l'autre client DHCP qui s'appelle dhcpcd. Il prevoit aussi un script mais pour ca je suis assez sur que c'est execute uniquement avec le changement d'un numero IP. Si ce n'est pas dans ta distribution (dans le Mandrake il y est, il faut seulement l'installer) tu peux trouver le paquet avec les sources ici:
http://www.phystech.com/ftp/dhcpcd-1.3.22-pl4.tar.gz
Ca s'installe tres bien avec ./configure, make etc. (regarde le tuto:
http://www.commentcamarche.net/faq/1328-%5BLinux%5D-Installer-les-programmes-gestion-des-paquets-compil
section III si tu n'as jamais fais ca).
En principe apres l'installation il suffit de lancer ce daemon avec:
/sbin/dhcpcd eth0

ou
/usr/local/sbin/dhcpcd eth0

selon l'endroit d'installation. Ici eth0 c'est pour la carte reseau ou il ecoute pour le dhcp, ca peut aussi etre eth1, eth2, ... selon ta configuration chez toi (par exemple: 2 cartes reseau ou carte reseau plus wifi etc.).
Apres le script de relancement est:
/etc/dhcpc/dhcpcd.exe

Il y a un fichier exemple pour le "dhcpcd.exe" qui est dans le paquet source que je te conseille de prendre. Apres tu y ajoutes au bon endroit ta ligne supplementaire. Regarde la doc dans le repertoire des sources (fichiers README, INSTALL etc.).

Tu peux installer dhcpcd sans deranger le dhclient mais bien sur il ne faut pas lancer les deux en meme moment (sur la meme carte reseau). Avant lancement du dhcpcd tu dois arreter le dhclient (je crois avec: "/etc/rc.d/init.d/dhclient stop" ou similaire). Si ca marche mieux avec dhcpcd tu peux reflechir apres comment le mettre des le boot, en principe c'est tres facile.
0
mali44 Messages postés 180 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 24 novembre 2005 3
28 avril 2005 à 11:06
merci pour toutes tes explications, comme tjs tres claires ;-)
je vais ds un premier tps opté pour le script avec comparaison de l'adresse IP.
Si pas de nouvelles alors bonnes nouvelles ;-))
a+
0