Content-type: text/html
L'agent relais DHCP écoute les requêtes et les réponses DHCP et BOOTP. Lorsqu'il reçoit la demande d'un client, dhcrelay la renvoie à la liste des serveurs DHCP spécifiée sur la ligne des commandes. Quand il reçoit la réponse d'un serveur, il la diffuse ou la transmet en mode point à point (en fonction des capacités de l'agent relais et des demandes du client) sur le réseau d'où est partie la requête initiale.
Les noms des interfaces réseaux que dhcrelay doit tenter de configurer peuvent être spécifiés sur la ligne de commande en utilisant l'option -i. Si aucun nom d'interface n'est spécifié sur la ligne de commande, dhcrelay identifiera toutes les interfaces réseaux, en éliminant celles qui ne permettent pas la diffusion, et tentera de configurer chacune d'elles.
L'option -i peut être utilisée pour spécifier les interfaces réseaux sur lesquelles l'agent relais doit écouter. En général, il doit écouter non seulement sur les interfaces réseaux sur lesquelles les clients sont rattachés, mais aussi sur les interfaces réseaux sur lesquelles le serveur (ou le routeur qui atteint le serveur) est rattaché. Pour exclure certains réseaux, vous devez faire la liste des interfaces réseaux qui NE doivent PAS être exclues en utilisant l'option -i.
Dans certains cas, il est utile pour l'agent relais de faire suivre les requêtes qui proviennent de réseaux sur lesquels un serveur DHCP fonctionne vers d'autres serveurs DHCP. Par exemple, on peut utiliser deux serveurs DHCP sur des réseaux différents et ainsi assurer une redondance pour résister aux pannes.
Si dhcrelay doit écouter et émettre sur un autre port que le port standard (port 67), l'option -p peut être utilisée. Elle doit être suivie du numéro de port UDP que dhcrelay doit utiliser à la place. Cette option sert principalement pour le déverminage.
Dhcrelay fonctionne normalement en tâche de premier plan jusqu'à ce qu'il ait configuré une interface, puis il poursuit son exécution en arrière-plan. Pour forcer dhcrelay à toujours fonctionner en tant que processus d'avant-plan, l'option -d peut être utilisée. C'est utile pour faire fonctionner dhcrelay au sein d'un déboggueur, ou en dehors de l'inittab sur les systèmes System V.
Dhcrelay affiche normalement sa configuration réseau au démarrage. Cela peut être gênant dans un script de démarrage système - pour désactiver ce comportement, spécifiez l'option -q.
Le champ option d'agent contient deux types d'options : la sous-option « identificateur de circuit » (Circuit ID) et la sous-option « identificateur d'agent » (Agent ID). Actuellement, Circuit ID est le nom l'interface sur laquelle la requête du client a été reçue. L'Agent ID est la valeur que l'agent enregistre dans le champ giaddr du paquet DHCP. Le client supporte aussi l'inclusion de la sous-option d'identificateur distant (Remote ID), mais ce n'est pas utilisé par défaut.
Remarque : Agent ID n'est pas défini dans la norme actuelle des options de l'agent relais (draft-ietf-dhc-agent-options-03.txt), mais il a été proposé pour ajout dans la prochaine version de la norme.
Les options de l'agent relais sont ajoutées au paquet DHCP sans que le client ne le sache. Le client peut donc théoriquement avoir rempli complètement le tampon réservé pour les options du paquet DHCP, et il n'y aurait donc théoriquement plus de place pour les options de l'agent. Cependant le serveur DHCP peut être capable de traiter des paquets bien plus grands que ce que la plupart des clients DHCP pourront envoyer. La norme actuelle des options d'agent spécifie que l'agent relais peut utiliser des paquets de taille maximale égale à 576 octets.
Il est recommandé qu'avec le serveur DHCP de l'Internet Software Consortium, la taille maximale des paquets soit autour de 1400, fournissant ainsi beaucoup d'espace pour les champs options de l'agent relais, tout en restant inférieure à l'unité de transfert maximale des réseaux Ethernet. Ceci peut être spécifié avec l'option -A, suivie de la taille maximale désirée pour les paquets (par ex. 1400).
Remarquez que ceci est raisonnable sûr, même si l'unité de transfert maximale entre le serveur et le client est inférieure à 1500, du moment que les hôtes qui hébergent le serveur et le client supportent la fragmentation IP (et ça devrait vraiment être le cas). Avec un peu de connaissance sur la taille des options d'agents qui seront reçues, ce paramètres peut être réglé avec autant de finesse que nécessaire.
Un agent relais peut recevoir un paquet qui contient déjà un champ option d'agent. Si ce paquet n'a pas le champ giaddr positionné, le standard impose que le paquet soit ignoré.
Si giaddr est positionné, le serveur peut gérer la situation de quatre manière différentes. Il peut ajouter son propre jeu d'option relais, et laissant les données déjà présentes intactes, remplacer le champ existant d'option d'agent, faire suivre le paquet inchangé, ou l'ignorer.
Le comportement que doit suivra l'agent relais de l'Internet Software Consortium DHCP Relay Agent peut être configuré avec l'option -m suivie de respectivement append, replace, forward, discard pour ajouter, remplacer, faire suivre et ignorer.
Lorsque l'agent relais reçoit la réponse d'un serveur et qu'il est supposé la faire suivre à un client, et que l'option de traitement d'information de l'agent relais est activé, l'agent relais scanne le paquet pour les options de l'agent relais et les supprime. Lors de son scan, s'il trouve un champ option d'agent relais contenant une sous-option Agent ID qui correspond à l'une de ses adresses IP, cette option est reconnu comme il se doit. Si une telle option n'est pas trouvée, l'agent relais peut soit ignorer le paquet, soit le relayer. Si l'option -D est spécifiée, tous les paquets qui ne contiennent pas une telle correspondance seront rejetés.
L'agent relais peut être incapable de relayer les paquet reçus sur un réseau physique qui hébergent des serveurs DHCP - ou s'il y parvient, le serveur recevra des paquets dupliqués. Pour corriger ce problème, l'agent relais a besoin d'apprendre la topologie du réseau, ce qui nécessiterait un fichier de configuration.