Atribuição de bloco em tempo real DHCP

8

Temos um grande número de clientes que se conectam à nossa máquina DHCP. Queremos atribuir alguns deles a um bloco IP diferente, que é roteado com menor prioridade. Toda renovação de concessão de DHCP, gostaríamos de verificar um banco de dados e decidir qual bloco de IPs gostaríamos de atribuir a um cliente.

Existe uma maneira de um servidor DHCP executar um script, procurar em um banco de dados ou executar algum código dinâmico ao decidir qual endereço atribuir em qual pool? Cada cliente é identificado de forma exclusiva pela opção 82, também conhecida como "Opção de Informações do Agente de Retransmissão DHCP".

    
por Andomar 30.11.2009 / 11:17

4 respostas

2

O ideal seria modificar o dhcpd para suportar a atribuição de endereços com base na Option82, equivalente às linhas de "hardware" nos objetos de host. Eu fiz isso com o dhcp do OpenBSD quando trabalhei em um ISP, que tem uma estrutura interna mais simples para o isc-dhcpd.

Se você não estiver em condições de fazer isso, então olhe para omapi (3) e omshell (1); você usaria o OMAPI para criar dinamicamente objetos "class" e "pool", para implementar a sugestão do Zypher. Acabei de verificar dhcpd.h e a class struct tem OMAPI_OBJECT_PREAMBLE , então isso deve ser possível. Esteja ciente de que a documentação do OMAPI pode ser um pouco ... fraca.

    
por 15.07.2010 / 09:46
3

Então eu não fiz isso com a opção 82, mas sua melhor aposta seria usar a classificação em isc dhcpd.

O que você faria é configurar uma turma como:

class "userclass1" { 
    match if substring(option agent.circuit-id, 2, 2) = "<your_id1>";
}
class "userclass2" { 
    match if substring(option agent.circuit-id, 2, 2) = "<your_id2>";
}

Em seguida, na sua declaração de pool:

pool {
  allow members of "userclass1";
  range 10.0.0.11 10.0.0.50;
}
pool {
   allow members of "userclass2";
   range 10.0.0.51 10.0.0.100;
}

Referência: dhcpd.conf

Isso deve, pelo menos, colocá-lo no caminho certo, não tenho meu servidor de jogo para testá-lo, mas fiz algo semelhante com outras opções.

    
por 14.07.2010 / 23:50
1

Talvez você possa começar daqui:

link

Nunca usei, mas com um pouco de script, acho que poderia funcionar.

EDITAR

man omshell (1) daria alguns outros exemplos

    
por 15.07.2010 / 09:58
0

Uma maneira de fazer isso é atribuir esses clientes a uma VLAN separada e, em seguida, o endereço DHCP obtido pelos clientes será automaticamente em um pool diferente.

    
por 14.07.2010 / 20:38