modifique o dhcpd.conf via script para converter a sub-rede inteira em reservas DHCP

1

Temos uma miscelânea de sistemas que são endereços IP estáticos ou reservas DHCP. (Não distribuímos nenhum endereço, exceto os reservados). Alguns servidores possuem vários cartões Nics e ILO. Está ficando chato ter que varrer a sub-rede para encontrar IPs gratuitos para poder usar, especialmente porque um servidor pode ficar offline por alguns minutos quando eu faço a varredura. Qualquer anúncio parece ser esquecido rapidamente ...

Eu gostaria de criar uma reserva para cada endereço IP nas minhas sub-redes. Isso tornaria as coisas um pouco mais fáceis de gerenciar / visualizar. (e depois, olhe para configurar o DHCP para fazer atualizações de DNS também)

Eu executei o seguinte comando:

sudo arp-scan -I eth0 10.10.10.0/24

E tenha uma lista de todos os endereços IP e Mac. Eu estou prestes a obter uma lista de todos os nomes de host / dns também. (e se eles não tiverem um nome de host, eu o chamarei ip-last octet, então para 10.10.10.100, "ip-100".). Isso é fácil de fazer com algum trabalho no Open Office Calcl

Existe uma maneira de adicionar automaticamente reservas ao arquivo dhcpd.conf?

Eu realmente não quero editar isso manualmente, pois existem centenas (várias sub-redes).

existe uma maneira fácil de chamar um comando para criar uma reserva ou importar uma lista do CSV? Eu poderia encontrar muitas maneiras de fazer isso com o Windows DHCP, usando o Net Sh, mas não com o meu servidor DHCP baseado em CentOS.

Eu prefiro usar um modo existente, então tenho que escrever minha própria ferramenta.

TL: DR - Eu preciso de uma maneira de modificar o DHCPd do Cento a partir da linha de comando, como você pode no Windows com o Netsh

    
por Brian 24.05.2011 / 19:07

3 respostas

1

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";
    
por 24.05.2011 / 22:32
1

Dê uma olhada no omshell , ele pode fazer o que você quiser. Ele permite que você crie novos objetos host que reservar o endereço IP para um determinado endereço MAC.

Para ouvir o omapi no seu servidor dhcp

crie uma chave para proteger o acesso

dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_key 

que gera arquivos como

Komapi_key.+157+24472.key  
Komapi_key.+157+24472.private

Eu usei o conteúdo da linha Key: do arquivo privado

fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==

Edite seu arquivo dhcp.conf e adicione

omapi-port 9999;
key omapi_key {
algorithm HMAC-MD5;
secret fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==;

}; omapi-key omapi_key;

usando a chave gerada acima.

Iniciar o dhcpd

/usr/sbin/dhcpd

agora você pode usar o omshell para adicionar hosts

/usr/bin/omshell
> port 9999
> server 192.168.200.207
> key omapikey fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==
> connect
obj: <null>
> new host
obj: host

Agora você pode adicionar entradas de host conforme explicado na página do manual.

    
por 24.05.2011 / 22:36
1

Se você estiver fazendo algo com OMshell, por sugestão de Iain, tenha em mente que essas mudanças são transitórias. Se você criar um novo objeto de concessão para um determinado endereço MAC via OMAPI, o objeto será perdido na próxima vez em que o servidor for reiniciado.

Você precisa fazer as duas coisas - OMAPI para adicionar a reserva ao servidor em execução imediatamente e um script que atualize o dhcpd.conf para a posteridade.

    
por 15.08.2011 / 16:16