summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2019-03-08 20:26:33 +0100
committerChristian Poessinger <christian@poessinger.com>2019-03-08 20:37:50 +0100
commit0fefe3c3b9250ad2ba841287a94036119728c708 (patch)
tree3eab61065bf25dbfdf6bd2b896db2ff076003869
parent993c2975141a255ca7dece41bbaf4271ae264515 (diff)
downloadvyos-1x-0fefe3c3b9250ad2ba841287a94036119728c708.tar.gz
vyos-1x-0fefe3c3b9250ad2ba841287a94036119728c708.zip
T103: [dhcp-server] add support to configure host declarative names
-rw-r--r--interface-definitions/dhcp-server.xml6
-rwxr-xr-xsrc/conf_mode/dhcp_server.py9
2 files changed, 15 insertions, 0 deletions
diff --git a/interface-definitions/dhcp-server.xml b/interface-definitions/dhcp-server.xml
index 2002f0c65..87999f496 100644
--- a/interface-definitions/dhcp-server.xml
+++ b/interface-definitions/dhcp-server.xml
@@ -36,6 +36,12 @@
<valueless/>
</properties>
</leafNode>
+ <leafNode name="host-decl-name">
+ <properties>
+ <help>Instruct server to use host declaration name for forward DNS name</help>
+ <valueless/>
+ </properties>
+ </leafNode>
<tagNode name="shared-network-name">
<properties>
<help>DHCP shared network name [REQUIRED]</help>
diff --git a/src/conf_mode/dhcp_server.py b/src/conf_mode/dhcp_server.py
index 12d138218..e57bad28b 100755
--- a/src/conf_mode/dhcp_server.py
+++ b/src/conf_mode/dhcp_server.py
@@ -58,6 +58,9 @@ on expiry {
execute("/usr/libexec/vyos/system/on-dhcp-event.sh", "release", ClientName, ClientIp, ClientMac, ClientDomain);
}
{% endif %}
+{%- if host_decl_name %}
+use-host-decl-names on;
+{%- endif %}
ddns-update-style {% if ddns_enable -%} interim {%- else -%} none {%- endif %};
{% if static_route -%}
option rfc3442-static-route code 121 = array of integer 8;
@@ -242,6 +245,7 @@ default_config_data = {
'ddns_enable': False,
'global_parameters': [],
'hostfile_update': False,
+ 'host_decl_name': False,
'static_route': False,
'wpad': False,
'shared_network': [],
@@ -274,6 +278,11 @@ def get_config():
if conf.exists('hostfile-update'):
dhcp['hostfile_update'] = True
+ # If enabled every host declaration within that scope, the name provided
+ # for the host declaration will be supplied to the client as its hostname.
+ if conf.exists('host-decl-name'):
+ dhcp['host_decl_name'] = True
+
# check for multiple, shared networks served with DHCP addresses
if conf.exists('shared-network-name'):
for network in conf.list_nodes('shared-network-name'):