Linux/DDNS

DDNS
BigDinosaur Blog - https://blog.bigdinosaur.org/running-bind9-and-isc-dhcp/

Dependencies
yum install bind dhcp
 * 1) centos 6.5

/usr/sbin/rndc-confgen -a
 * 1) generate /etc/rndc.key

key "rndc-key" { algorithm hmac-md5; secret "xxxxxxxxxxzk9EdYZ9SP8Q=="; };
 * 1) sample /etc/rndc.key

Bind
/etc/named.conf include "/etc/rndc.key";


 * 1) key "rndc-key" {
 * 2)        algorithm hmac-md5;
 * 3)        secret "xxxxxxxxxxzk9EdYZ9SP8Q==";
 * };

zone "lab" { type master; file "/var/named/db.lab"; allow-update { key rndc-key; }; };

zone "200.100.10.in-addr.arpa" { type master; file "/var/named/200.100.10.rev"; allow-update { key rndc-key; }; };

/var/named/db.lab: $ORIGIN. $TTL 10 ; 10 seconds lab                    IN SOA  ns1.lab. hostmaster.lab. (                               2014080111 ; serial                                120        ; refresh (2 minutes)                                120        ; retry (2 minutes)                                2419200    ; expire (4 weeks)                                120        ; minimum (2 minutes)                                ) NS     ns1.lab. $ORIGIN lab. $TTL 30 ; 30 seconds master                 A       10.100.200.3 ns1                    A       10.100.200.3

chmod g+w /var/named chmod g+w /var/named/db.lab chown :named /var/named/db.lab

DHCPd
/etc/dhcp/dhcpd.conf authoritative; option domain-name "lab"; option domain-search "lab", "example.com"; option domain-name-servers 10.100.200.3;
 * 1) option domain-name-servers 10.100.1.1, 10.100.2.1;

ddns-updates           on; ddns-update-style      interim; update-static-leases   on;
 * 1) ignore                 client-updates;

include "/etc/rndc.key";
 * 1) key rndc-key { algorithm hmac-md5; secret xxxxxxxxxxzk9EdYZ9SP8Q==;}

allow unknown-clients; use-host-decl-names on; default-lease-time 600; max-lease-time 7200; log-facility local7;

zone lab. {       primary localhost; key rndc-key; } zone 200.100.10.in-addr.arpa. {       primary localhost; key rndc-key; }

subnet 10.100.200.0 netmask 255.255.255.0 { range 10.100.200.100 10.100.200.254; option subnet-mask 255.255.255.0; option routers 10.100.200.1; option broadcast-address 10.100.200.255; ddns-domainname "lab."; ddns-rev-domainname "in-addr.arpa.";

## PXE stuff unrelated... #if exists user-class and option user-class = "iPXE" { # filename "bootstrap.ipxe"; #} else { # filename "undionly.kpxe"; #} #next-server 10.100.200.3; }

Services
Config check: named-checkconf

Restart services: service named restart service dhcpd restart