Avete mai avuto l’esigenza di eseguire uno script per ogni client che si collega al dhcp server di Mikrotik?
Nelle recenti versioni di RouterOS è stata proprio aggiunta questa possibilità. Nella sezione DHCP server abbiamo una nuova opzione chiamata “Lease Script” che ci permette di eseguire un comando/script per ogni client a cui viene assegnato l’indirizzo ip dal nostro DHCP server o per ogni client che viene rilasciato/liberato dall’elenco dei leases (in quanto non più presente).
Come variabili, a livello global, nel nostro script possiamo utlizzare:
- $leaseBound
- $leaseServerName
- $leaseActMAC
- $leaseActIP
$leaseBound avrà valore 1 se il server ha dato l’ip a quel client, mentre ha valore 0 (zero) se il server ha liberato l’ip dai leases.
$leaseServerName avrà il nome del server DHCP che ha dialogato con il client.
$leaseActMAC conterrà il mac-address della macchina che ha ricevuto l’ip dal server.
$leaseActIP infine conterrà il l’ip assegnato in quel momento al client.
[nextpage title=”Esempi d’uso”]
Ma a cosa può servire? Beh come molte opzioni presenti in RouterOS può sembrare inizialmente oscura la sua applicazione pratica, ma potrebbe capitare di doverla usare.
Ad esempio potremmo creare un sistema che generi dei walled garden temporanei per gli host; una esigenza potrebbe essere quella di permettere per 10 minuti l’accesso a social network (ad esempio Facebook) per sfruttarne le sue API ed implementare sul nostro hotspot un Social Login.
Come tutti ben sanno, ad oggi, non è possibile implementare il Social Login di Facebook senza mettere nei walled garden tutto Facebook, ma grazie al Lease-script del DHCP di RouterOS possiamo “liberare” Facebook in maniera temporanea host per host.
Visto l’alto interesse riguardo a questo argomento (permettere temporaneamente l’accesso a Facebook per un tempo limitato), mi riprometto di creare una guida step-by-step nei prossimi giorni.
hey, did you ever do the tutorial? Really need to allow social networks based on MAC when user reaches hotspot for X mins. Just what im looking for. Can you help?
Yes I have do the tutorial. Have you found some mistake?