O ideal seria modificar o dhcpd para suportar a atribuição de endereços com base na Option82, equivalente às linhas de "hardware" nos objetos de host. Eu fiz isso com o dhcp do OpenBSD quando trabalhei em um ISP, que tem uma estrutura interna mais simples para o isc-dhcpd.
Se você não estiver em condições de fazer isso, então olhe para omapi (3) e omshell (1); você usaria o OMAPI para criar dinamicamente objetos "class" e "pool", para implementar a sugestão do Zypher. Acabei de verificar dhcpd.h
e a class
struct tem OMAPI_OBJECT_PREAMBLE
, então isso deve ser possível. Esteja ciente de que a documentação do OMAPI pode ser um pouco ... fraca.