Suponho que você esteja usando o ISC DHCPd. Neste caso, basta adicionar
host client_name {
hardware ethernet 00:00:de:ad:be:ef;
fixed-address 10.10.10.100;
}
para o seu escopo em /etc/dhcpd.conf.
Naturalmente, você não "editaria" isso manualmente, mas sim criaria um script curto que usaria as definições de host necessárias por escopo. Algo assim faria:
#!/bin/bash
function hostdef {
echo host $1 {
echo -e \thardware ethernet $2\;
echo -e \tfixed-address $3\;
echo }
echo
}
cat $1 | while read name mac ip; do hostdef $name $mac $ip; done
chamando-o com um arquivo simples com conteúdo como este:
ip-100 00:00:de:ad:be:ef 10.10.10.100
ip-101 00:00:0b:ad:be:ef 10.10.10.101
ip-102 00:00:0b:ad:de:ed 10.10.10.102
ip-103 00:00:de:af:be:ef 10.10.10.103
geraria as linhas necessárias para colar em seu arquivo de configuração ou gravar a saída em um arquivo separado que você incluiria em sua configuração do dhcpd.conf assim:
include "/etc/dhcpd-reservations-10-10-10.conf";