Community discussions

MikroTik App
 
User avatar
Alessio Garavano
Member
Member
Topic Author
Posts: 306
Joined: Sat May 29, 2004 12:49 am
Location: Corrientes, Argentina
Contact:

Setting DHCP-Server static leases active-server as server

Fri Mar 03, 2023 10:26 am

Hi everybody!

In DHCP-Server Lease we need to set the current "active-server" as "server" in each leased address.
After a backup restore, we have all the static leases with "server=all", and we have a lot of DHCP-Servers configured in different vlans.

We test something like that script in a lot of combinations, but is not working...
:local servers [/ip dhcp-server find]
:put "Servidores encontrados:"
:put $servers
:foreach server in=$servers do={
    :local active [/ip dhcp-server lease get $server active-server]
    :local leases [/ip dhcp-server lease find dynamic=no server=all]
    :foreach lease in=$leases do={
        /ip dhcp-server lease set $lease server=$active
    }
}
The most rare is when i check the variable "leases" with the command :put $leases, and the result is empty, can be a bug of v7.8?

Thanks in advanced and regards!
 
User avatar
rextended
Forum Guru
Forum Guru
Posts: 11982
Joined: Tue Feb 25, 2014 12:49 pm
Location: Italy
Contact:

Re: Setting DHCP-Server static leases active-server as server

Fri Mar 03, 2023 1:41 pm

Is not clear...

active-server is readonly, and has a value only when a device is actively taken one IP, till the lease expire.
if valorized again when device take again the IP.

Your script is a mess, for example:
:foreach server in=$servers do={
    :local active [/ip dhcp-server lease get $server active-server]
For each dhcp-server go on leases and get active-server.... of server....
On the leases are present leases, not servers....

etc.


Use this:
/ip dhcp-server lease
    :foreach item in=[find where ((server="all") and ([:typeof $"active-server"]="str"))] do={
        set $item server=[get $item active-server]
    }
 
User avatar
Alessio Garavano
Member
Member
Topic Author
Posts: 306
Joined: Sat May 29, 2004 12:49 am
Location: Corrientes, Argentina
Contact:

Re: Setting DHCP-Server static leases active-server as server

Mon Mar 06, 2023 5:51 pm

Hi bro, thanks for you reply and suggestion, how you see, we are don´t good in scripting :D because this we need help...
We tested your suggested code and others variants without success...

Something like that:
:foreach i in=[/ip/dhcp-server/lease find where ((server="all") and (dynamic=no) and (status=bound))] do={
/ip/dhcp-server/lease set $i server=(get $i active-server)
}
Thanks in advanced and hope you can try and send a fix,
Regards!

Who is online

Users browsing this forum: drpioneer, rogerioqueiroz and 25 guests