diff options
author | Emil Renner Berthing <esmil@labitat.dk> | 2019-04-02 21:03:51 +0200 |
---|---|---|
committer | Emil Renner Berthing <esmil@labitat.dk> | 2019-04-03 10:32:18 +0200 |
commit | 0e8322da2a110d60a067cc9f28bef6dbb89c5cff (patch) | |
tree | 854db21adccd2427fc5cc12cd68c42ecbdbd0396 | |
parent | 806bfb26907e9bb3d41f0c9225800a7f8c77683a (diff) | |
download | labitat-ansible-0e8322da2a110d60a067cc9f28bef6dbb89c5cff.tar.gz labitat-ansible-0e8322da2a110d60a067cc9f28bef6dbb89c5cff.tar.xz labitat-ansible-0e8322da2a110d60a067cc9f28bef6dbb89c5cff.zip |
space_server: dhcpd: add hosts to .dhcp zone
Only requests with the host-name header set will be added to
the dhcp zone (so it can be looked up at <hostname>.dhcp).
This will fail if the host-name is not a valid dns name though.
Also leases on the member wired, member wireless, and free
are added to the zone, but just like the s zone the
dhcp zone and reverse dns for 10.42.0.0/16 cannot be queried
from Labitat (free). This way you can connect gadgets to
Labitat (free), but still look them up in dns and connect
to them from the member networks.
-rw-r--r-- | roles/space_server/templates/dhcpd.conf.j2 | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/roles/space_server/templates/dhcpd.conf.j2 b/roles/space_server/templates/dhcpd.conf.j2 index 23e08da..8e02112 100644 --- a/roles/space_server/templates/dhcpd.conf.j2 +++ b/roles/space_server/templates/dhcpd.conf.j2 @@ -8,7 +8,30 @@ # attempt to do a DNS update when a lease is confirmed. We default to the # behavior of the version 2 packages ('none', since DHCP v2 didn't # have support for DDNS.) +{% if ddns_secret is defined %} +ddns-update-style interim; +ddns-local-address4 127.0.0.1; +ddns-local-address6 ::1; + +key dhcpupdate { + algorithm {{ ddns_secret.algorithm }}; + secret {{ ddns_secret.key }}; +} + +zone dhcp. { + primary 127.0.0.1; + primary6 ::1; + key dhcpupdate; +} + +zone 42.10.in-addr.arpa. { + primary 127.0.0.1; + primary6 ::1; + key dhcpupdate; +} +{% else %} ddns-update-style none; +{% endif %} # option definitions common to all supported networks... #option domain-name "labitat.dk"; @@ -35,6 +58,7 @@ subnet 10.42.0.0 netmask 255.255.255.0 { option routers 10.42.0.1; option domain-name-servers 185.38.175.0; #option ntp-servers 90.185.0.18; + ddns-updates off; deny bootp; allow duplicates; @@ -52,6 +76,13 @@ subnet 10.42.1.0 netmask 255.255.255.0 { next-server 10.42.1.1; filename "pxelinux.0"; + if exists host-name { + ddns-hostname = option host-name; + ddns-domainname "dhcp"; + } else { + ddns-updates off; + } + allow bootp; allow duplicates; allow declines; @@ -68,6 +99,13 @@ subnet 10.42.2.0 netmask 255.255.255.0 { next-server 10.42.2.1; filename "pxelinux.0"; + if exists host-name { + ddns-hostname = option host-name; + ddns-domainname "dhcp"; + } else { + ddns-updates off; + } + allow bootp; allow duplicates; allow declines; @@ -82,6 +120,13 @@ subnet 10.42.3.0 netmask 255.255.255.0 { option domain-name-servers 185.38.175.0; #option ntp-servers 90.185.0.18; + if exists host-name { + ddns-hostname = option host-name; + ddns-domainname "dhcp"; + } else { + ddns-updates off; + } + allow bootp; allow duplicates; deny declines; @@ -96,6 +141,13 @@ subnet 10.42.3.0 netmask 255.255.255.0 { # option domain-name-servers 185.38.175.0; # #option ntp-servers 90.185.0.18; # +# if exists host-name { +# ddns-hostname = option host-name; +# ddns-domainname "dhcp"; +# } else { +# ddns-updates off; +# } +# # allow bootp; # allow duplicates; # allow declines; @@ -104,6 +156,7 @@ subnet 10.42.3.0 netmask 255.255.255.0 { group { use-host-decl-names on; + ddns-updates off; {% for host in local_hosts %} {% if 'mac' in host and 'ipv4' in host %} |