Normalmente, dnsmasq faz isso por padrão. Atualiza o DNS com os nomes de host enviados pelos clientes DHCP.
Isso (e sua grande flexibilidade de implantação) é provavelmente o motivo pelo qual você costuma vê-lo usado em soluções de virtualização como libvirt , convirt , openstack nova ...