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".

  • Utilizzo del servizio DHCP di Windows Server 2003 per fornire un router diverso a host specifici
  • DHCP: problemi DHCPREQUEST
  • Ho accidentalmente aggiornato un server a una distribuzione di test Debian. Adesso cosa?
  • Firmare un OpenSL .CSR con l'autorità di certificazione Microsoft
  • apache2ctl: 87: ulimit: limite di impostazione errore (funzionamento non consentito)
  • veth, macvlan o forse sth altro?
  • Memoria automatica della chiave host del server nella cache con plink
  • Controllare se un path supera il massimo per il socket di dominio Unix
  • Qualsiasi modo intelligente per inserire una password in una chiave SSH?
  • Come posso triggersre sia la password che l'authentication con chiave pubblica con OpenSSH
  • Cosa fa il rm -rf recur, quando viene utilizzato in un cron?
  • Doppio server debian
  • 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.