routeros-scripts/doc/dhcp-to-dns.md
2023-06-11 22:45:29 +02:00

86 lines
3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Create DNS records for DHCP leases
==================================
[⬅️ Go back to main README](../README.md)
> **Info**: This script can not be used on its own but requires the base
> installation. See [main README](../README.md) for details.
Description
-----------
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.
Requirements and installation
-----------------------------
Just install the script:
$ScriptInstallUpdate dhcp-to-dns;
Then run it from dhcp server as lease script. You may want to use
[lease-script](lease-script.md).
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;
Configuration
-------------
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`](../global-config.rsc) (the one without `-overlay`) to
> your local `global-config-overlay` and modify it to your specific needs.
### Host name from DHCP lease comment
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](dhcp-lease-comment.md), though it comes with a delay
then due to script execution order. Decrease the scheduler interval to
reduce the effect.
See also
--------
* [Collect MAC addresses in wireless access list](collect-wireless-mac.md)
* [Comment DHCP leases with info from access list](dhcp-lease-comment.md)
* [Create DNS records for IPSec peers](ipsec-to-dns.md)
* [Run other scripts on DHCP lease](lease-script.md)
---
[⬅️ Go back to main README](../README.md)
[⬆️ Go back to top](#top)