Nous avons un grand nombre de clients qui se connectent à notre machine DHCP. Nous voulons affecter certains d'entre eux à un bloc IP différent, qui est routé avec une priorité inférieure. À chaque renouvellement de bail DHCP, nous aimerions vérifier une base de données et décider à quel bloc IP nous aimerions attribuer un client.
Existe-t-il un moyen pour qu'un serveur DHCP exécute un script, regarde dans une base de données ou exécute du code dynamique pour décider quelle adresse attribuer dans quel pool? Chaque client est identifié de manière unique par l'option 82, alias «Option d'informations sur l'agent de relais DHCP».
Réponses:
Idéalement, vous modifieriez dhcpd pour prendre en charge l'attribution d'adresses basée sur l'option 82, équivalente aux lignes "matérielles" des objets hôtes. Je l'ai fait avec le dhcpd d'OpenBSD lorsque je travaillais chez un FAI, qui a une structure interne plus simple que isc-dhcpd.
Si vous n'êtes pas en mesure de le faire, regardez omapi (3) et omshell (1); vous utiliseriez OMAPI pour créer dynamiquement des objets "classe" et "pool", pour implémenter la suggestion de Zypher. Je viens de vérifier
dhcpd.h
et laclass
structure a unOMAPI_OBJECT_PREAMBLE
, donc cela devrait être possible. Attention, la documentation sur OMAPI peut être un peu ... maigre.la source
Je n'ai donc pas fait cela avec l'option 82, mais votre meilleur pari serait d'utiliser le classement dans isc dhcpd.
Ce que vous feriez serait d'installer une classe comme:
Puis dans votre relevé de pool:
Référence: dhcpd.conf
Cela devrait au moins vous mettre sur la bonne voie, je n'ai pas mon serveur de jeu pour le tester, mais j'ai fait quelque chose de similaire avec d'autres options.
la source
Vous pouvez peut-être partir d'ici:
http://blog.nominet.org.uk/tech/2005/12/21/using-omapi-object-management-application-programming-interface/
Jamais utilisé, mais avec un peu de script, je pense que cela pourrait fonctionner.
ÉDITER
man omshell (1) donnerait quelques autres exemples
la source
Une façon de procéder consiste à affecter ces clients à un VLAN distinct, puis l'adresse DHCP que ces clients obtiennent sera automatiquement dans un pool différent.
la source