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 /roles | |
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.
Diffstat (limited to 'roles')
-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 %} |