Acho que você está se deparando com o que acredito ser uma séria má característica do servidor isc-dhcp. Este programa registra o endereço Ethernet de cada dispositivo que já viu e o endereço IP que ele atribuiu a ele. Mas nunca usa essas informações para manter os mesmos dispositivos em endereços IP estáveis. Em vez disso, faz a suposição de que não há endereços IP suficientes disponíveis e reutiliza endereços preferencialmente.
A única maneira que encontrei para contornar isso é fazer com que seu servidor DHCP sempre atribua um endereço IP específico a cada dispositivo que você possui. Dessa forma, você tem o melhor dos dois mundos ... tudo é atribuído a um IP com dhcp, mas esse IP nunca muda.
OTOH, se você realmente quiser o endereço IP atribuído a um determinado endereço MAC, o melhor que você vai fazer sem ajuda externa é verificar a sub-rede. Se você tentar fazer ping de todos os endereços IP (locais), a tabela arp arp -a
incluirá todos os endereços MAC e seus IPs atribuídos. Existe até um comando especial para este arp-scan --localnet
que esquece de fazer o PING. NOTA: isso funciona mesmo se eles ignorarem os pacotes PING porque eles não podem ignorar as solicitações ARP que são enviadas primeiro.
Com ajuda externa, você pode fazer a pesquisa no servidor DHCP este DHCP O cliente , por exemplo, permite consultar qualquer MAC desejado. Claro que vai alocar também como efeito colateral.
Aqui está um exemplo usando arp-scan.
set -e
grep -v 'mac.local #DYN' /etc/hosts > /etc/hosts.new
arp-scan --localnet -qg |
grep ':..:..:..:..:' |
sed -e 's/:/_/g' -e 's/$/.mac.local #DYN/' >> /etc/hosts.new
[ -s /etc/hosts.new ] && {
cmp -s /etc/hosts.new /etc/hosts ||
mv /etc/hosts.new /etc/hosts
}
Obviamente, isso só funciona para máquinas na mesma sub-rede. O nome mudará se a placa Ethernet for substituída ou se a máquina for clonada para um novo hardware. Os endereços MAC podem ser alterados manualmente com o comando ifconfig
para tarefas como 'MAC Cloning', que podem ser exigidas por modems DSL ou por ligações de interface ou similares.