Page Menu
Home
VyOS Platform
Search
Configure Global Search
Log In
Files
F119063612
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
12 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/data/templates/dhcp-server/dhcpd.conf.tmpl b/data/templates/dhcp-server/dhcpd.conf.tmpl
index da2f28ced..dbd864b5e 100644
--- a/data/templates/dhcp-server/dhcpd.conf.tmpl
+++ b/data/templates/dhcp-server/dhcpd.conf.tmpl
@@ -1,231 +1,231 @@
### Autogenerated by dhcp_server.py ###
# For options please consult the following website:
# https://www.isc.org/wp-content/uploads/2017/08/dhcp43options.html
#
# log-facility local7;
{% if hostfile_update is defined %}
on release {
set ClientName = pick-first-value(host-decl-name, option fqdn.hostname, option host-name);
set ClientIp = binary-to-ascii(10, 8, ".",leased-address);
execute("/usr/libexec/vyos/system/on-dhcp-event.sh", "release", "", ClientIp, "", "");
}
on expiry {
set ClientName = pick-first-value(host-decl-name, option fqdn.hostname, option host-name);
set ClientIp = binary-to-ascii(10, 8, ".",leased-address);
execute("/usr/libexec/vyos/system/on-dhcp-event.sh", "release", "", ClientIp, "", "");
}
{% endif %}
{{ 'use-host-decl-names on;' if host_decl_name is defined }}
ddns-update-style {{ 'interim' if dynamic_dns_update is defined else 'none' }};
option rfc3442-static-route code 121 = array of integer 8;
option windows-static-route code 249 = array of integer 8;
option wpad-url code 252 = text;
{% if global_parameters is defined and global_parameters is not none %}
# The following {{ global_parameters | length }} line(s) have been added as
# global-parameters in the CLI and have not been validated !!!
{% for parameter in global_parameters %}
{{ parameter }}
{% endfor %}
{% endif %}
{% if failover is defined and failover is not none %}
# DHCP failover configuration
failover peer "{{ failover.name }}" {
{% if failover.status == 'primary' %}
primary;
mclt 1800;
split 128;
{% elif failover.status == 'secondary' %}
secondary;
{% endif %}
address {{ failover.source_address }};
- port 520;
+ port 647;
peer address {{ failover.remote }};
- peer port 520;
+ peer port 647;
max-response-delay 30;
max-unacked-updates 10;
load balance max seconds 3;
}
{% endif %}
{% if listen_address is defined and listen_address is not none %}
# DHCP server serving relay subnet, we need a connector to the real world
{% for address in listen_address %}
# Connected subnet statement for listen-address {{ address }}
subnet {{ address | network_from_ipv4 }} netmask {{ address | netmask_from_ipv4 }} { }
{% endfor %}
{% endif %}
# Shared network configration(s)
{% if shared_network_name is defined and shared_network_name is not none %}
{% for network, network_config in shared_network_name.items() if network_config.disable is not defined %}
shared-network {{ network | replace('_','-') }} {
{% if network_config.authoritative is defined %}
authoritative;
{% endif %}
{% if network_config.name_server is defined and network_config.name_server is not none %}
option domain-name-servers {{ network_config.name_server | join(', ') }};
{% endif %}
{% if network_config.domain_name is defined and network_config.domain_name is not none %}
option domain-name "{{ network_config.domain_name }}";
{% endif %}
{% if network_config.domain_search is defined and network_config.domain_search is not none %}
option domain-search "{{ network_config.domain_search | join('", "') }}";
{% endif %}
{% if network_config.ntp_server is defined and network_config.ntp_server is not none %}
option ntp-servers {{ network_config.ntp_server | join(', ') }};
{% endif %}
{% if network_config.ping_check is defined %}
ping-check true;
{% endif %}
{% if network_config.shared_network_parameters is defined and network_config.shared_network_parameters is not none %}
# The following {{ network_config.shared_network_parameters | length }} line(s)
# were added as shared-network-parameters in the CLI and have not been validated
{% for parameter in network_config.shared_network_parameters %}
{{ parameter }}
{% endfor %}
{% endif %}
{% if network_config.subnet is defined and network_config.subnet is not none %}
{% for subnet, subnet_config in network_config.subnet.items() %}
{% if subnet_config.description is defined and subnet_config.description is not none %}
# {{ subnet_config.description }}
{% endif %}
subnet {{ subnet | address_from_cidr }} netmask {{ subnet | netmask_from_cidr }} {
{% if subnet_config.name_server is defined and subnet_config.name_server is not none %}
option domain-name-servers {{ subnet_config.name_server | join(', ') }};
{% endif %}
{% if subnet_config.domain_name is defined and subnet_config.domain_name is not none %}
option domain-name "{{ subnet_config.domain_name }}";
{% endif %}
{% if subnet_config.domain_search is defined and subnet_config.domain_search is not none %}
option domain-search "{{ subnet_config.domain_search | join('", "') }}";
{% endif %}
{% if subnet_config.ntp_server is defined and subnet_config.ntp_server is not none %}
option ntp-servers {{ subnet_config.ntp_server | join(', ') }};
{% endif %}
{% if subnet_config.pop_server is defined and subnet_config.pop_server is not none %}
option pop-server {{ subnet_config.pop_server | join(', ') }};
{% endif %}
{% if subnet_config.smtp_server is defined and subnet_config.smtp_server is not none %}
option smtp-server {{ subnet_config.smtp_server | join(', ') }};
{% endif %}
{% if subnet_config.time_server is defined and subnet_config.time_server is not none %}
option time-servers {{ subnet_config.time_server | join(', ') }};
{% endif %}
{% if subnet_config.wins_server is defined and subnet_config.wins_server is not none %}
option netbios-name-servers {{ subnet_config.wins_server | join(', ') }};
{% endif %}
{% if subnet_config.static_route is defined and subnet_config.static_route is not none %}
{% set static_default_route = '' %}
{% if subnet_config.default_router and subnet_config.default_router is not none %}
{% set static_default_route = ', ' + '0.0.0.0/0' | isc_static_route(subnet_config.default_router) %}
{% endif %}
{% if subnet_config.static_route is defined and subnet_config.static_route is not none %}
{% set rfc3442_routes = [] %}
{% for route, route_options in subnet_config.static_route.items() %}
{% set rfc3442_routes = rfc3442_routes.append(route | isc_static_route(route_options.next_hop)) %}
{% endfor %}
option rfc3442-static-route {{ rfc3442_routes | join(', ') }}{{ static_default_route }};
option windows-static-route {{ rfc3442_routes | join(', ') }};
{% endif %}
{% endif %}
{% if subnet_config.ip_forwarding is defined %}
option ip-forwarding true;
{% endif %}
{% if subnet_config.default_router and subnet_config.default_router is not none %}
option routers {{ subnet_config.default_router }};
{% endif %}
{% if subnet_config.server_identifier is defined and subnet_config.server_identifier is not none %}
option dhcp-server-identifier {{ subnet_config.server_identifier }};
{% endif %}
{% if subnet_config.subnet_parameters is defined and subnet_config.subnet_parameters is not none %}
# The following {{ subnet_config.subnet_parameters | length }} line(s) were added as
# subnet-parameters in the CLI and have not been validated!!!
{% for parameter in subnet_config.subnet_parameters %}
{{ parameter }}
{% endfor %}
{% endif %}
{% if subnet_config.tftp_server_name is defined and subnet_config.tftp_server_name is not none %}
option tftp-server-name "{{ subnet_config.tftp_server_name }}";
{% endif %}
{% if subnet_config.bootfile_name is defined and subnet_config.bootfile_name is not none %}
option bootfile-name "{{ subnet_config.bootfile_name }}";
filename "{{ subnet_config.bootfile_name }}";
{% endif %}
{% if subnet_config.bootfile_server is defined and subnet_config.bootfile_server is not none %}
next-server {{ subnet_config.bootfile_server }};
{% endif %}
{% if subnet_config.time_offset is defined and subnet_config.time_offset is not none %}
option time-offset {{ subnet_config.time_offset }};
{% endif %}
{% if subnet_config.wpad_url is defined and subnet_config.wpad_url is not none %}
option wpad-url "{{ subnet_config.wpad_url }}";
{% endif %}
{% if subnet_config.client_prefix_length is defined and subnet_config.client_prefix_length is not none %}
option subnet-mask {{ ('0.0.0.0/' ~ subnet_config.client_prefix_length) | netmask_from_cidr }};
{% endif %}
{% if subnet_config.lease is defined and subnet_config.lease is not none %}
default-lease-time {{ subnet_config.lease }};
max-lease-time {{ subnet_config.lease }};
{% endif %}
{% if network_config.ping_check is not defined and subnet_config.ping_check is defined %}
ping-check true;
{% endif %}
{% if subnet_config.static_mapping is defined and subnet_config.static_mapping is not none %}
{% for host, host_config in subnet_config.static_mapping.items() if host_config.disable is not defined %}
host {{ host | replace('_','-') if host_decl_name is defined else network | replace('_','-') + '_' + host | replace('_','-') }} {
{% if host_config.ip_address is defined and host_config.ip_address is not none %}
fixed-address {{ host_config.ip_address }};
{% endif %}
hardware ethernet {{ host_config.mac_address }};
{% if host_config.static_mapping_parameters is defined and host_config.static_mapping_parameters is not none %}
# The following {{ host_config.static_mapping_parameters | length }} line(s) were added
# as static-mapping-parameters in the CLI and have not been validated
{% for parameter in host_config.static_mapping_parameters %}
{{ parameter }}
{% endfor %}
{% endif %}
}
{% endfor %}
{% endif %}
{% if subnet_config.range is defined and subnet_config.range is not none %}
{# pool configuration can only be used if there follows a range option #}
pool {
{% endif %}
{% if subnet_config.enable_failover is defined %}
failover peer "{{ failover.name }}";
deny dynamic bootp clients;
{% endif %}
{% if subnet_config.range is defined and subnet_config.range is not none %}
{% for range, range_options in subnet_config.range.items() %}
range {{ range_options.start }} {{ range_options.stop }};
{% endfor %}
{% endif %}
{% if subnet_config.range is defined and subnet_config.range is not none %}
{# pool configuration can only be used if there follows a range option #}
}
{% endif %}
}
{% endfor %}
{% endif %}
on commit {
set shared-networkname = "{{ network | replace('_','-') }}";
{% if hostfile_update is defined %}
set ClientIp = binary-to-ascii(10, 8, ".", leased-address);
set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
set ClientName = pick-first-value(host-decl-name, option fqdn.hostname, option host-name, "empty_hostname");
if not (ClientName = "empty_hostname") {
set ClientDomain = pick-first-value(config-option domain-name, "..YYZ!");
execute("/usr/libexec/vyos/system/on-dhcp-event.sh", "commit", ClientName, ClientIp, ClientMac, ClientDomain);
} else {
log(concat("Hostname is not defined for client with IP: ", ClientIP, " MAC: ", ClientMac));
}
{% endif %}
}
}
{% endfor %}
{% endif %}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Fri, Nov 6, 8:54 AM (1 d, 3 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4620683
Default Alt Text
(12 KB)
Attached To
Mode
rVYOSONEX vyos-1x
Attached
Detach File
Event Timeline
Log In to Comment