Assegnazione block DHCP on-the-fly

Abbiamo un gran numero di clienti che si connettono alla nostra macchina DHCP. Vogliamo assegnare alcune di esse a un diverso block IP, che viene indirizzato con priorità minore. Ogni rinnovo del leasing di DHCP, vorremmo controllare un database e decidere quale block IP vorremmo assegnare a un cliente.

C'è un modo per avere un server DHCP eseguire uno script, guardare in un database o eseguire un codice dinamico quando decidete quale indirizzo assegnare in quale pool? Ogni client è identificato in modo univoco con option82, ovvero "DHCP Relay Agent Information Option".

  • Come rimuovere il supporto DNSSEC da un dominio?
  • disabilitando i nomi di interface di networking prevedibili in xubuntu 15.10
  • Mantenendo configurazioni, id di utenti, gruppi e password coerenti su server Linux
  • Ridurre PID_MAX in modo sicuro
  • Disabilitazione di DHCP su SBS 2008?
  • iftop - come generare file di text con la sua output?
  • Fornire password per aprire la connessione avviata tramite start-stop daemon
  • Come posso distribuire privatamente un pacchetto di Ubuntu (Debian) che sostituisce qualsiasi versione ufficiale?
  • Accendere una macchina Linux in remoto
  • Come aggiungere vlan senza command vconfig?
  • L'authentication SSH tra il mio VPS e Bitbucket fallisce
  • Nascondere i messaggi del kernel di linux dalla console
  • 4 Solutions collect form web for “Assegnazione block DHCP on-the-fly”

    Idealmente, modificare dhcpd per supportre l'assegnazione di indirizzi basata su Option82, equivalente alle righe "hardware" negli oggetti host. Lo ho fatto con il dhcpd di OpenBSD quando ho lavorato ad un ISP, che ha una struttura interna più semplice per isc-dhcpd.

    Se non sei in grado di farlo, guarda poi omapi (3) e omshell (1); utilizzare OMAPI per creare dynamicmente oggetti "class" e "pool", per implementare il suggerimento di Zypher. Ho appena controllato dhcpd.h e la class struct ha un OMAPI_OBJECT_PREAMBLE , quindi questo dovrebbe essere ansible. Attenzione che la documentazione su OMAPI possa essere un po 'scadente.

    Quindi non ho fatto questo con l'opzione 82, ma la tua scommessa migliore sarebbe quella di utilizzare la classifica in isc dhcpd.

    Quello che dovresti fare è impostare una class come:

     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>"; } 

    Quindi nell'istruzione 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; } 

    Riferimento: dhcpd.conf

    Questo dovrebbe alless essere sulla buona strada, non ho il mio server di gioco per provarlo, ma ho fatto qualcosa di simile con altre opzioni.

    Forse puoi partire da qui:

    http://blog.nominet.org.uk/tech/2005/12/21/using-omapi-object-management-application-programming-interface/

    Mai usato, ma con un po 'di script ho pensato che potrebbe funzionare.

    EDIT

    l'uomo omshell (1) darebbe alcuni altri esempi

    Un modo per farlo è quello di assegnare questi client a una VLAN separata, quindi l'indirizzo DHCP che i client ottengono verranno automaticamente in un pool diverso.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.