Host dhcp corrigido para expirar automaticamente qualquer concessão

3

Eu tenho a seguinte situação: Vários escritórios com vários servidores de firewall / dhcp.

Sempre que a equipe de TI de algum escritório conecta uma nova impressora de rede, preciso criar uma entrada fixed-address e excluir a concessão que essa impressora já recebeu antes que essa reserva ocorra. Às vezes eu sou avisado de que a impressora já está on-line e este ip fixo é necessário por outro aplicativo (cups server).

Existe uma maneira de "expirar automaticamente" um lease quando você adiciona um fixed-address ? Na situação atual eu preciso remover manualmente a concessão ou aguarde as 3 horas que é meu configurado max-lease-time .

Por que eu quero isso? Para tornar mais dinâmica a criação de novos hosts de endereços fixos através do ssh sem a necessidade de login nesse servidor e apagar uma concessão (ou editar 2 arquivos a cada vez). dhcp-relay não é uma opção porque temos um circuito no nosso isp que não irá suportá-lo.

Snip de alguns arquivos de configuração

ddns-update-style ad-hoc;
authoritative;
allow bootp;
deny declines;
deny duplicates;
option domain-name "xxx.net";
option domain-name-servers y.y.y.y, y.y.y.2;
option interface-mtu 1500;
option ntp-servers ntp.xxx.xxx.xxx;
default-lease-time 7200; # default lease 2 hours
max-lease-time 10800; # max lease 3 hours
one-lease-per-client true; # 1 lease per client

subnet 10.0.0.0 netmask 255.255.255.0 {
        range 10.0.0.100 10.0.0.200;
        option routers 10.0.0.254;
        option broadcast-address 10.0.0.255;
}


host printserver001 {
        hardware ethernet 00:24:81:XX:XX:XX;
        fixed-address 10.0.0.30;
}

Solução que eu já tentei : crie um class chamado impressoras, adicione todos os endereços fixos a essa classe e adicione um deny members of "printers" nesse intervalo de IP / pool. Não funcionará e a impressora ainda obterá o lease até expirar.

Solução que acho que pode funcionar: Zere o parâmetro default-lease-time . Só não sei se o comportamento padrão de todas as impressoras quando elas são reiniciadas será solicitar a mesma concessão ou enviar um novo DHCPREQUEST e como isc-dhcp gerenciará essa solicitação.

Editar 1 : o uso do omapi também não funciona. Eu estou tentando excluir um contrato sabendo apenas o endereço MAC, e é isso que eu recebo quando tento excluí-lo:

omshell << END_OF_INPUT
server localhost
port 7911
key omapi_key my_key_xxxxxxxxxxxxxxxxxx==
connect
new lease
set hardware-address = 00:e0:c5:4e:2d:a4
open
remove
END_OF_INPUT


> can't destroy object: not implemented
obj: lease
hardware-address = 00:e0:c5:4e:2d:a4
state = 00:00:00:02
ip-address = c0:a8:03:e6
dhcp-client-identifier = 01:00:e0:c5:4e:2d:a4
client-hostname = "xxxxx03"
subnet = 00:00:00:06
pool = 00:00:00:07
hardware-type = 00:00:00:01
ends = 53:72:14:ce
starts = 53:71:f8:ae
tstp = 00:00:00:00
tsfp = 00:00:00:00
atsfp = 00:00:00:00
cltt = 53:71:f8:ae
flags = 00
ddns-fwd-name = "xxxxx03.xxxxx.net"
ddns-rev-name = "xx.xx.xx.192.in-addr.arpa."

Estou usando o ISC-dhcp 3.1.1.

Alguma idéia?

    
por nwildner 07.05.2014 / 15:04

4 respostas

0

Você não pode excluir as concessões via OMAPI. No entanto, você pode liberá-los à força, o que fará com que o dhcpd o veja como não sendo mais um contrato de locação ativo. Faça a entrada de endereço fixo, liberte à força a concessão obtida anteriormente pela impressora e, na próxima negociação DHCP, a impressora será movida para o endereço fixo, incluindo o NAK da solicitação de renovação e o novo IP do cliente.

    
por 16.05.2014 / 18:08
0

A maneira normal de fazer isso seria criar um pool dinâmico (possivelmente pequeno) e mantê-lo separado de seus endereços fixos. Coloque um tempo de locação pequeno (< 1 hora) para a pequena piscina.

Em seguida, ligue ou desligue o dispositivo ou espere até que ele renove sua concessão (o servidor DHCP NAK o endereço e fornecerá seu endereço correto - novo).

    
por 12.05.2014 / 13:07
0

LDAP.

Supondo que você esteja usando o dhcp-4.2 +, ele está embutido no isc-dhcp-server-ldap

Guia completo aqui:

link

Ou: link

ldap-server "localhost";
ldap-port 389;
ldap-username "cn=dhcp-service,ou=users,dc=yourdomain,dc=com";
ldap-password "secret";
ldap-base-dn "dc=yourdomain,dc=com";
# Dynamic = Hosts are looked up every time a DHCP request comes in
# Static = Read entire configuration, including hosts, only once at startup
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";

Certamente, você pode apenas gerenciar seus clientes a partir do banco de dados LDAP, com todas as APIs que trabalham com ele para automatizar pesquisas de MAC, > IP etc. Cada servidor DHCP pode se referir ao banco de dados global LDAP para administração de ponto-de-contato.

    
por 13.05.2014 / 07:47
0

Altere max-lease-time para um valor mais baixo, 10 minutos.

    
por 02.10.2017 / 20:26