DNS-DHCP configuration

From Playing with linux...
Jump to navigation Jump to search

IPv4

Configuration file for "dhcpd -4 -cf dhcpd.conf.ipv4 eth0"

dhcpd.conf.ipv4

# dhcpd.conf.ipv4

##############################
# default options:
authoritative;
log-facility local7;

ddns-update-style interim;
option domain-name "local.lan";

lease-file-name "/var/run/dhcpd/dhcpd.leases.ipv4";
default-lease-time 7200;
max-lease-time 28800;

update-conflict-detection false;

##############################
# dynamic dns updates

include "/etc/dhcp-dns.key";
 
zone local.lan. {
        primary 127.0.0.1;
        key updatekey;
}
 
zone 0.0.10.in-addr.arpa. {
        primary 127.0.0.1;
        key updatekey;
}

##############################
# subnet and host definitions

subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.128 10.0.0.191;
  option routers 10.0.0.1;
  option domain-name-servers 10.0.0.1;
  option ntp-servers 10.0.0.1;
  option broadcast-address 10.0.0.255;
}

group {
  host printer {
    hardware ethernet 00:de:ad:be:ef:01;
    fixed-address 10.0.0.10;
  }

  host fridge {
    hardware ethernet 00:de:ad:be:ef:02;
    fixed-address 10.0.0.11;
  }
update-static-leases on;
}

dhcp-dns.conf

And the dhcp-dns.conf file is generated by the following command:

dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER

It creates a file called Kdhcp_updater.+???+?????.key. Get your hash from the key file and paste it in dhcp-dns-conf, which should look like this:

key updatekey {
  algorithm hmac-md5;
  secret "abcdefghijklmnopqrstuv==";
};

named.conf

Then all we need is named.conf:

options {
        pid-file "/var/run/named/named.pid";
        directory "/var/named";
        listen-on port 53 {127.0.0.1;10.0.0.1;};
        allow-query {127.0.0.0/8;10.0.0.0/24;};
};

////////////////////////////////////////////
// include key to receive updates from dhcpd
include "/etc/dhcp-dns.key";


zone "." IN {
        type hint;
        file "named.root";
};

zone "local.lan" IN {
        type master;
        file "local.lan.zone";
        allow-update { key updatekey; };
};

zone "0.0.10.in-addr.arpa" IN {
        type master;
        file "0.0.10.in-addr.arpa.rev";
        allow-update { key updatekey; };
};

IPv6

Configuration file for "dhcpd -6 -cf dhcpd.conf.ipv6 eth0"

dhcpd.conf.ipv6

# dhcpd.conf.ipv6

##############################
# default options:
authoritative;
log-facility local7;

ddns-update-style interim;
#ddns-updates on;
ddns-domainname "local.lan";
option domain-name "local.lan";
option domain-search "local.lan";
option dhcp6.name-servers 2001:dead:beef::;
option dhcp6.sntp-servers 2001:dead:beef::;
dhcpv6-lease-file-name "/var/run/dhcpd/dhcpd.leases.ipv6";
default-lease-time 7200;
max-lease-time 28800;

update-conflict-detection false;

##############################
# dynamic dns updates

include "/etc/dhcp-dns.key";
 
zone local.lan. {
        primary 127.0.0.1;
        key updatekey;
}
 
zone f.e.e.b.d.a.e.d.1.0.0.2.ip6.arpa. {
        primary 127.0.0.1;
        key updatekey;
}

subnet6 2001:dead:beef::/64 {
     range6 2001:dead:beef::80 2001:dead:beef::ff;
}

named.conf

Stuff that needs to be added to named.conf for IPv6:

options {
        listen-on-v6 port 53 {2001:dead:beef::;::1;};
        query-source-v6 *;
        allow-query {2001:dead:beef::/48;::1;};
};

zone "f.e.e.b.d.a.e.d.1.0.0.2.ip6.arpa" in {
        type master;
        file "2001.dead.beef.ipv6.rev";
//      notify yes;
        allow-update { key updatekey; };
        allow-transfer { none; };
};