2022-02-21 21:35:01 +00:00
|
|
|
|
#
|
|
|
|
|
# {{ ansible_managed }}
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
# If this DHCP server is the official DHCP server for the local
|
|
|
|
|
# network, the authoritative directive should be uncommented.
|
|
|
|
|
authoritative;
|
|
|
|
|
|
|
|
|
|
# The style parameter must be one of ad-hoc, interim or none. The
|
|
|
|
|
# ddns-update-style statement is only meaningful in the outer scope - it
|
|
|
|
|
# is evaluated once after reading the dhcpd.conf file, rather than each
|
|
|
|
|
# time a client is assigned an IP address, so there is no way to use
|
|
|
|
|
# different DNS update styles for different clients. The default is
|
|
|
|
|
# nonrent DNS update styles for different clients. The default is none.
|
|
|
|
|
ddns-update-style interim;
|
|
|
|
|
|
|
|
|
|
# The first point to understand about this style of DNS update is that
|
|
|
|
|
# unlike the ad-hoc style, the DHCP server does not necessarily always
|
|
|
|
|
# update both the A and the PTR records. The FQDN option includes a flag
|
|
|
|
|
# which, when sent by the client, indicates that the client wishes to
|
|
|
|
|
# update its own A record. In that case, the server can be configured
|
|
|
|
|
# either to honor the client’s intentions or ignore them. This is
|
|
|
|
|
# done with the statement allow client-updates; or the statement ignore
|
|
|
|
|
# client-updates;. By default, client updates are allowed.
|
|
|
|
|
ignore client-updates;
|
|
|
|
|
|
2022-02-26 13:52:58 +00:00
|
|
|
|
{% for key in dhcpd_tsigkeys %}
|
2022-02-21 21:35:01 +00:00
|
|
|
|
key "{{ key.name }}" {
|
|
|
|
|
algorithm {{ key.algorithm }};
|
|
|
|
|
secret "{{ key.secret }}";
|
|
|
|
|
}
|
|
|
|
|
{% endfor %}
|
|
|
|
|
|
|
|
|
|
{% for zone in dhcpd_zones %}
|
|
|
|
|
zone {{ zone.name }} {
|
|
|
|
|
primary {{ zone.primary }};
|
|
|
|
|
key "{{ zone.key }}";
|
|
|
|
|
}
|
|
|
|
|
{% endfor %}
|
|
|
|
|
|
|
|
|
|
{% for subnet in dhcpd_subnets %}
|
|
|
|
|
subnet {{ subnet.network_start }} netmask {{ subnet.network_netmask }} {
|
|
|
|
|
interface {{ subnet.interface }};
|
|
|
|
|
|
|
|
|
|
range {{ subnet.network_range }};
|
|
|
|
|
|
|
|
|
|
# Time should be the length in seconds that will be assigned to a
|
|
|
|
|
# lease if the client requesting the lease does not ask for a specific
|
|
|
|
|
# expiration time. This is used for both DHCPv4 and DHCPv6 leases (it
|
|
|
|
|
# is also known as the "valid lifetime" in DHCPv6).
|
|
|
|
|
default-lease-time {{ subnet.default_lease_time }};
|
|
|
|
|
|
|
|
|
|
# Time should be the maximum length in seconds that will be assigned
|
|
|
|
|
# to a lease. If not defined, the default maximum lease time is 86400.
|
|
|
|
|
# The only exception to this is that Dynamic BOOTP lease lengths,
|
|
|
|
|
# which are not specified by the client, are not limited by this
|
|
|
|
|
# maximum.
|
|
|
|
|
max-lease-time {{ subnet.max_lease_time }};
|
|
|
|
|
|
|
|
|
|
# Time should be the minimum length in seconds that will be assigned
|
|
|
|
|
# to a lease. The default is the minimum of 300 seconds or
|
|
|
|
|
# max-lease-time.
|
|
|
|
|
min-lease-time {{ subnet.min_lease_time }};
|
|
|
|
|
|
|
|
|
|
# The name parameter should be the domain name that will be appended
|
|
|
|
|
# to the client's hostname to form a fully-qualified domain-name
|
|
|
|
|
# (FQDN).
|
|
|
|
|
ddns-domainname "{{ subnet.ddns_domainname }}";
|
|
|
|
|
|
|
|
|
|
# The update-static-leases flag, if enabled, causes the DHCP server to
|
|
|
|
|
# do DNS updates for clients even if those clients are being assigned
|
|
|
|
|
# their IP address using a fixed-address statement - that is, the
|
|
|
|
|
# client is being given a static assignment. This can only work with
|
|
|
|
|
# the interim DNS update scheme. It is not recommended because the
|
|
|
|
|
# DHCP server has no way to tell that the update has been done, and
|
|
|
|
|
# therefore will not delete the record when it is not in use. Also,
|
|
|
|
|
# the server must attempt the update each time the client renews its
|
|
|
|
|
# lease, which could have a significant performance impact in
|
|
|
|
|
# environments that place heavy demands on the DHCP server.
|
|
|
|
|
update-static-leases on;
|
|
|
|
|
|
|
|
|
|
option broadcast-address {{ subnet.option_broadcast_address }};
|
|
|
|
|
# option domain-name "{{ subnet.option_domain_name }}";
|
|
|
|
|
option domain-name-servers {{ subnet.option_domain_name_servers }};
|
|
|
|
|
option routers {{ subnet.option_routers }};
|
|
|
|
|
option subnet-mask {{ subnet.option_subnet_mask }};
|
|
|
|
|
|
|
|
|
|
# PXE-Boot-Settings
|
|
|
|
|
# allow booting;
|
|
|
|
|
# allow bootp;
|
|
|
|
|
# next-server 192.168.179.15;
|
|
|
|
|
# filename "pxelinux.0";
|
|
|
|
|
}
|
|
|
|
|
{% endfor %}
|
|
|
|
|
|
|
|
|
|
{% if dhcpd_static_hosts is defined and dhcpd_static_hosts | length > 0 %}
|
|
|
|
|
{% for host in dhcpd_static_hosts %}
|
|
|
|
|
host {{ host.name }} {
|
|
|
|
|
{% if host.ddns_hostname is defined %}
|
|
|
|
|
ddns-hostname {{ host.ddns_hostname }};
|
|
|
|
|
{% endif %}
|
|
|
|
|
{% if host.fixed_address is defined %}
|
|
|
|
|
fixed-address {{ host.fixed_address }};
|
|
|
|
|
{% endif %}
|
|
|
|
|
hardware ethernet {{ host.hardware_ethernet }};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
|
{% endif %}
|