Linux |
CentOS 4.8 |
|
dhcpxd(8) |
DHCPXD − Client pour le protocole DHCP défini dans les RFC2131 et RFC2132 |
dhcpxd −k | −−kill [interface] | −l | −−renew [interface] | [−abcdehinprtwABCDHIOR] interface |
dhcpxd est un client pour le protocole DHCP. |
OPTIONS |
−a −−replybroadcasted |
Demande des réponses diffusées pour les requêtes. Cette option est nécessaire si la couche bas niveau du réseau impose que les hôtes IP reçoivent leurs paquets par diffusion. C’est généralement nécessaire pour les réseaux WAN et ATM. |
−b −−requestbroadcasted |
Diffuse les requêtes. Cette option est nécessaire pour les situations identiques à l’option −a, ou dans le cas où l’utilisation du protocole ARP doit être évitée. Cette option est communément utilisée pour les réseaux de transfert où la retransmission des pacquets IP est interdite. |
−c −−checkip |
Vérifie si l’adresse IP est déjà en cours d’utilisation. à chaque fois qu’une session est initialisée, cette vérification a lieu. S’il s’avère que cette adresse IP est déjà utilisée, le programme enverra un message DHCPDECLINE aux serveurs et cherchera à obtenir une autre adresse IP. |
−d −−ignoreipcache |
Découvre toutes les adresses IP. Le client ignore simplement le cache des adresses IP pour la séquence initiale des requêtes. |
−e −−scriptext extension |
Utilise l’extension spécifiée pour l’exécution des scripts. C’est utile aux utilisateurs qui désirent écrire leurs propres scripts shells (voir ci-dessous) pour configurer les interfaces. L’extension par défaut est « def ». |
−h −−help |
Affiche l’écran d’aide. |
−i −−inform |
Initialise la session d’information. Positionne une session sans requêtes qui ne demandera au serveur que les informations concernant le réseau. C’est utile dans les situations qui mettent en oeuvre des IP statiques. |
−−kill [interface] |
Si une interface est spécifiée, le processus fonctionnant sur cette interface sera tué, sinon le processus multisession par défaut sera tué. Un signal SIGTERM est envoyé au processus qui s’arrêtera dès qu’il aura fini de libérer toutes les adresses et de fermer les interfaces. |
−n −−replyunicasted |
Ne jamais répondre aux requêtes diffusées. Cette option est conseillée pour les modems-câbles. Cependant, ce mode est toujours préférable et est VIVEMENT recommandé. Le protocole DHCP définit un ensemble strict de règles indiquant si un client DOIT ou NE DOIT PAS répondre aux requêtes diffusées. Cette option indique au client d’ignorer cette spécification et de ne répondre qu’en mode point à point. Utiliser ce mode est intéressant puisqu’il permet d’avoir un protocole moins dispersé. |
−p −−setscriptvar VAR=VALUE |
Fournit les paramètres spécifiés aux scripts. Quand chaque script est exécuté, dhcpxd écrit les paramètres dans le fichier .pars pour l’interface en cours de traitement. C’est utile pour modifier le comportement par défaut. Format typique : −p "VARIABLE=VALEUR" |
−r −−leasetime number |
Fournit la durée (en heure) pour le renouvellement de la concession. Cette option est presque toujours remplacée par celle du serveur. La valeur par défaut est 24 heures. |
−t −−test |
Mécanisme de test de l’interface spécifiée. C’est utile pour déterminer le mode de fonctionnement du serveur DHCP. |
−w −−wait |
Attendre que la session se termine avec succès ou que le délai d’expiration s’écoule. Ceci indique à dhcpxd ne pas retourner dans le processus d’exécution du parent tant qu’il n’a pas acquis une adresse IP ou tant que le temps d’expiration ne s’est pas écoulé. |
−A −−appendclientid xx:xx:xx:xx:xx... |
Ajoute l’identifiant client spécifié à l’identifiant client par défaut (adresse MAC de l’interface réseau). Ceci est utile pour obtenir des adresses IP multiples.
(Une revue détaillée suit
ci-dessous) |
−B −−baseinterface real_interface |
Utilise l’interface réseau de base pour les requêtes. C’est utile si une session est en train de configurer une interface alias (par ex. ’eth0:1’). Par défaut il s’agit de l’interface cible. C’est utile pour obtenir plusieurs adresses IP. Une revue détaillée suit ci-dessous. |
−C −−clientid xx:xx:xx:xx:xx... |
Utilise l’identifiant client spécifié. C’est utile si on désire faire du masquage de concession. Par défaut c’est l’adresse matérielle MAC. |
−D −−deleteipcache |
Purger le cache des adresses IP avant de démarrer une session. |
−H −−hostname hostname |
Fournir le nom d’hôte spécifié dans les requêtes. |
−I −−classid string |
Fournir l’identifiant de classe spécifiée dans les requêtes. |
−O −−dhcpoption op_number string |
Fournir l’option spécifiée dans les requêtes. Utilisation: −O 89 "Jerry Walker" |
−R −−norelease |
Ne pas libérer l’adresse IP, et si cette option est indiquée 2 fois la concession sera renouvelée juste avant de quitter. Ceci est utile pour conserver la même adresse IP. |
−W −−nocollectoffers |
Ne pas attendre la collecte de plusieurs réponses DHCPOFFER. Cela permet d’« accélérer » le protocole. |
/etc/dhcpxd/dhcpxd.conf |
Contient la configuration pour le lancement de dhcpxd. Chaque ligne représente une ligne de commande qui est lue et traitée sur la base de la session. Les accolades (« { » et « } ») peuvent être utilisées pour grouper les sessions qui ont des attributs communs tel que le paramètre− w. Une virgule peut être placé après l’interface suivie par un numéro pour autoriser la configuration automatique de cette interface (par ex. eth0,1). |
/etc/dhcpxd/ifcfg.def |
Script shell qui exécute des actions diverses sur l’interface Il est exécuté avec la syntaxe : /etc/dhcpxd/ifcfg.def action interface [base_interface main_path] action peut être init (initialiser), open (ouvrir), update (mettre à jour) ou close (fermer). |
/etc/dhcpxd/cfg.def |
Script qui été exécuté par TOUS les scripts par défaut. Il contient les paramètres indiquant les interfaces à configurer et la manière de le faire. ADDHOST indique les IP des interfaces qui doivent être ajoutées au fichier /etc/hosts. ADDNETWORK indique les réseaux qui doivent être ajoutés à la table de routage. ADDGATEWAY indique les passerelles qui doivent être ajoutées à la table de routage. ADDNAMESERVER indique les serveurs de noms qui doivent être ajoutés au fichier /etc/resolv.conf. CFGHOSTNAME indique l’interface utilisée pour configuer le nom d’hôte de la machine. CFGSEARCH indique quelle interface utilisée pour configurer le champ « search » dans le fichier /etc/resolv.conf. CFGDOMAINNAME indique quelle interface est utilisée pour configurer le nom de domaine. CFGDNSDOMAINNAME indique quelle interface est utilisée pour configurer le nom de domaine DNS Ceci indique aux scripts d’ajouter l’entrée au début du fichier /etc/hosts plutôt qu’à la fin. |
/etc/dhcpxd/INTERFACE.ifcfg |
/etc/dhcpxd/INTERFACE.ifcfg.* |
/etc/dhcpxd/ifcfg.def.* |
Minis scripts qui, s’ils existent sont exécutés avant et après chaque action que le script ifcfg.def fait. Ces scripts sont invoqués avec la syntaxe suivante : source SCRIPT_FILE [pre | post] $* |
/etc/dhcpxd/INTERFACE.pars |
Là où l’utilisateur fournit les paramètres pour les scripts. |
/etc/dhcpxd/INTERFACE.cache |
Là où l’adresse IP de la concession précédente est enregistrée. |
/var/dhcpxd/dhcpxd.pid |
Ce fichier contient le PID (identificateur de processus) du dhcpxd actif. |
Pour utiliser cette fonctionnalité, premièrement, le support des alias doit avoir été compilé dans le noyau. Regardez dans /usr/src/linux/Documentation pour connaître la manière de procéder. Deuxièmement, aucune session DHCP ne doit être en train de fonctionner sur l’interface voulue. Toutefois, si vous souhaitez, il peut y avoir un réseau configuré statiquement sur cette interface. Chaque session initialisée sur cette interface doit ressembler à quelque chose comme ceci : −nwABH 01 eth0 Experimental1 eth0:1 Ceci indique au client d’ajouter XX à l’identifiant client, d’utiliser l’interface eth0 pour le trafic et « ExperimentalX » comme nom d’hôte. |
Pour gérer des sessions pour quelqu’un autre, ajouter simplement quelque chose comme ceci : −benBCR masq eth0 xx:xx:xx:xx:xx:xx:xx... masq0 Où masq est l’extension pour le script qui ne fait rien, et où les « x » représente l’identifiant client. Ces derniers sont typiquement de type matériel (1 dans la plus par des cas) ajouté à l’adresse matérielle MAC 01:00:12:34:45:AB:CD:EF est un exemple typique |
Le protocole est décrit dans la RFC2131 et se fonde sur la RFC2132. |
Pourquoi un autre client DHCP ? (NdT : ces commentaires sont issus de la documentation originale en anglais et n’engagent en rien les opinions du traducteur) Tous les autres clients DHCP ne sont fondamentalement que des jouets, des petits utilitaires réalisés en une soirée. J’ai consacré beaucoup d’effort pour réaliser celui-ci, et il peut être facilement personnalisé. Pour de futures considérations, contrairement à d’autres client DHCP, la fonction C ioctl() n’est utilisée que pour récupérer l’adresse MAC. De cette manière, le code du client peut être facilement porté et modifié. Pourquoi choisir ce client ? |
1 |
Il donne à l’utilisateur un ensemble abondant d’options. |
||
2 |
Il sert plusieurs sessions avec un processus unique. |
||
3 |
L’activité des sessions traitées peut être enregistré dans les logs. |
||
4 |
Comme ce client tourne avec un seul processus, il n’y a jamais plus d’un socket d’ouvert par dhcpxd. Les développeurs du noyau froncent les sourcils lorsque un programme ouvre plus d’un socket car ils considèrent que c’est mal. |
||
5 |
Il supporte l’utilisation de plusieurs passerelles et serveurs de noms. |
||
6 |
Les mécanismes de « deuxième chance » sont intégrés au client, autorisant un échec du protocole ou une perte de paquets. |
||
7 |
L’utilisation d’ARP et des passerelles est intégré dans le client, aussi le code ne changera pas même si celui du noyau était amené à l’être. |
Le protocole UNARP est utilisé. Certains serveurs ne supportent pas ce protocole. Cependant cela ne devrait pas poser de problèmes. Chaque paramètre d’entrée est limité à 128 caractères. La longueur totale des paramètres de l’option −p ne doit pas dépasser 128 caractères. |
RFC2131 − Dynamic Host Configuration
Protocol (définition du standard) |
Garth Pickell (ArchDragon@SoftHome.net) |
Sébastien Blanchet, 2002 <sebastien.blanchet@free.fr> |
dhcpxd(8) |