ℹ️ Info: This script can not be used on its own but requires the base installation. See main README for details.
This script adds (and updates & removes) dns records based on dhcp server leases. An A record based on mac address is created for all bound lease, additionally a CNAME record is created from host name if available.
Just install the script:
$ScriptInstallUpdate dhcp-to-dns;
Then run it from dhcp server as lease script. You may want to use lease-script.
A scheduler cares about cleanup:
/system/scheduler/add interval=15m name=dhcp-to-dns on-event="/system/script/run dhcp-to-dns;" start-time=startup;
On first run a disabled static dns record acting as marker (with comment
"--- dhcp-to-dns above ---
") is added. Move this entry to define where new
entries are to be added.
The configuration goes to dhcp server's network definition. The domain is used to form the dns name:
/ip/dhcp-server/network/add address=10.0.0.0/24 domain=example.com;
A bound lease for mac address 00:11:22:33:44:55
with ip address
10.0.0.50
would result in an A record 00-11-22-33-44-55.example.com
pointing to the given ip address.
Additional options can be given from comment, to add an extra level in dns name or define a different domain.
/ip/dhcp-server/network/add address=10.0.0.0/24 domain=example.com comment="domain=another-domain.com, name-extra=dhcp";
This example would result in name 00-11-22-33-44-55.dhcp.another-domain.com
for the same lease.
If no domain is found in dhcp server's network definition a fallback from
global-config-overlay
is used. This is the parameter:
Domain
: the domain used for dns records
ℹ️ Info: Copy relevant configuration from
global-config
(the one without-overlay
) to your localglobal-config-overlay
and modify it to your specific needs.
Overwriting the host name from dhcp lease comment is supported, just add
something like hostname=new-hostname
in comment, and separate it by comma
from other information if required:
/ip/dhcp-server/lease/add address=10.0.0.50 comment="my device, hostname=new-hostname" mac-address=00:11:22:33:44:55 server=dhcp;
Note this information can be configured in wireless access list with dhcp-lease-comment, though it comes with a delay then due to script execution order. Decrease the scheduler interval to reduce the effect.
- Collect MAC addresses in wireless access list
- Comment DHCP leases with info from access list
- Create DNS records for IPSec peers
- Run other scripts on DHCP lease