Skip to content

Commit

Permalink
dhcp-to-dns: support host name from dhcp lease comment
Browse files Browse the repository at this point in the history
The lease comment is supposed to be a human readable string... But we
could allow parsable information.
  • Loading branch information
eworm-de committed Mar 28, 2023
1 parent 40f0d54 commit d700dbc
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
4 changes: 3 additions & 1 deletion dhcp-to-dns.rsc
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,10 @@
:global ServerNameInZone;

:global CharacterReplace;
:global EitherOr;
:global IfThenElse;
:global LogPrintExit2;
:global ParseKeyValueStore;
:global ScriptLock;

$ScriptLock $0 false 10;
Expand Down Expand Up @@ -62,7 +64,7 @@ $ScriptLock $0 false 10;
:if ([ :len ($LeaseVal->"address") ] > 0) do={
:local Comment ($CommentPrefix . $LeaseVal->"mac-address");
:local MacDash [ $CharacterReplace ($LeaseVal->"mac-address") ":" "-" ];
:local HostName [ $CharacterReplace ($LeaseVal->"host-name") " " "" ];
:local HostName [ $CharacterReplace [ $EitherOr ([ $ParseKeyValueStore ($LeaseVal->"comment") ]->"hostname") ($LeaseVal->"host-name") ] " " "" ];
:local Domain ([ $IfThenElse ($ServerNameInZone = true) ($LeaseVal->"server" . ".") ] . $Zone);

:local DnsRecord [ /ip/dns/static/find where name=($MacDash . "." . $Domain) ];
Expand Down
13 changes: 13 additions & 0 deletions doc/dhcp-to-dns.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,19 @@ The configuration goes to `global-config-overlay`, these are the parameters:
* `PrefixInZone`: whether or not to add prefix `dhcp`
* `ServerNameInZone`: whether or not to add DHCP server name

### 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
--------

Expand Down

0 comments on commit d700dbc

Please sign in to comment.