mirror of
https://github.com/eworm-de/routeros-scripts.git
synced 2024-05-11 05:55:19 +00:00
dhcp-to-dns: handle duplicate mac-address and host-name
* several leases for one mac address (changed client id, different net): -> take address from last lease Most likely this is the same devices which booted different OS or changed to different network. * several leases for one host name: -> take address from first lease We see either different devices with same name or one device with several network interfaces. Keep the first name to mitigate stealing dns name.
This commit is contained in:
11
dhcp-to-dns
11
dhcp-to-dns
@ -44,9 +44,14 @@
|
||||
:if ([ :len $DnsRecord ] > 0) do={
|
||||
:local DnsIp [ / ip dns static get $DnsRecord address ];
|
||||
|
||||
:local HostLeases [ / ip dhcp-server lease find where mac-address=($LeaseVal->"mac-address") dynamic=yes ];
|
||||
:if ([ :len $HostLeases ] > 1) do={
|
||||
:set ($LeaseVal->"address") [ / ip dhcp-server lease get ($HostLeases->([ :len $HostLeases ] - 1)) address ];
|
||||
:local DupMacLeases [ / ip dhcp-server lease find where mac-address=($LeaseVal->"mac-address") dynamic=yes ];
|
||||
:if ([ :len $DupMacLeases ] > 1) do={
|
||||
:set ($LeaseVal->"address") [ / ip dhcp-server lease get ($DupMacLeases->([ :len $DupMacLeases ] - 1)) address ];
|
||||
}
|
||||
|
||||
:local DupHostLeases [ / ip dhcp-server lease find where host-name=($LeaseVal->"host-name") dynamic=yes ];
|
||||
:if ([ :len $DupHostLeases ] > 1) do={
|
||||
:set ($LeaseVal->"address") [ / ip dhcp-server lease get ($DupHostLeases->0) address ];
|
||||
}
|
||||
|
||||
:if ($DnsIp = $LeaseVal->"address") do={
|
||||
|
Reference in New Issue
Block a user