Send dhcp-users mailing list submissions to
        dhcp-users@lists.isc.org

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.isc.org/mailman/listinfo/dhcp-users
or, via email, send a message with subject or body 'help' to
        dhcp-users-requ...@lists.isc.org

You can reach the person managing the list at
        dhcp-users-ow...@lists.isc.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of dhcp-users digest..."


Today's Topics:

   1. DHCP - DDNS Update (Jeremey Wise)


----------------------------------------------------------------------

Message: 1
Date: Tue, 25 Apr 2023 15:47:35 +0000
From: Jeremey Wise <jere...@cdw.com>
To: "dhcp-users@lists.isc.org" <dhcp-users@lists.isc.org>
Subject: DHCP - DDNS Update
Message-ID:
        
<bn7pr03mb4482fb68f55863496f3a741cb0...@bn7pr03mb4482.namprd03.prod.outlook.com>
        
Content-Type: text/plain; charset="iso-8859-1"


Greetings, and sorry up front for large email. But joining this forum and 
wanted to be comprehensive in my posting.  I googled around and seems I am not 
the only one with questions on how to do this task, as things have changed with 
certs and updates.  Hopefully this email formats in a means to make it easy for 
others to review and toss out ideas / links to where I can RTFM.

I am being tasked to help out with a POC / Demo lab.  It is a pair of VMs, 
running Ubuntu 22.04 fully updated / patched.

###
dnsuser@ps-dns-01:~$  named -v
BIND 9.18.12-0ubuntu0.22.04.1-Ubuntu (Extended Support Version) <id:>
dnsuser@ps-dns-01:~$ apt list |grep dhcp

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

dhcp-helper/jammy 1.2-3 amd64
dhcp-probe/jammy 1.3.0-10.1build2 amd64
dhcpcanon/jammy 0.8.5-2 all
dhcpcd-dbus/jammy 0.6.1-2 amd64
dhcpcd-gtk/jammy 0.7.8-1 amd64
dhcpcd5/jammy 7.1.0-2build1 amd64
dhcpd-pools/jammy 2.29-1.1 amd64
dhcpdump/jammy 1.8-2.2 amd64
dhcpig/jammy 1.5-3 all
dhcping/jammy 1.2-5 amd64
dhcpoptinj/jammy 0.5.3-1 amd64
dhcpstarv/jammy 0.2.2-2 amd64
dhcpy6d/jammy 1.0.7-1 all
freeradius-dhcp/jammy-updates,jammy-security 
3.0.26~dfsg~git20220223.1.00ed0241fa-0ubuntu3.1 amd64
fusiondirectory-plugin-dhcp-schema/jammy 1.3-4build1 all
fusiondirectory-plugin-dhcp/jammy 1.3-4build1 all
golang-github-d2g-dhcp4-dev/jammy 0.0~git20150413-3 all
golang-github-d2g-dhcp4client-dev/jammy 1.0.0-2 all
golang-github-insomniacslk-dhcp-dev/jammy 0.0~git20200621.d74cd86-1 all
golang-github-mdlayher-dhcp6-dev/jammy 0.0~git20190311.2a67805-2 all
gosa-plugin-dhcp-schema/jammy 2.7.4+reloaded3-16build1 all
gosa-plugin-dhcp/jammy 2.7.4+reloaded3-16build1 all
isc-dhcp-client-ddns/jammy-updates 4.4.1-2.3ubuntu2.4 amd64
isc-dhcp-client/jammy-updates,now 4.4.1-2.3ubuntu2.4 amd64 [installed,automatic]
isc-dhcp-common/jammy-updates,now 4.4.1-2.3ubuntu2.4 amd64 [installed,automatic]
isc-dhcp-dev/jammy-updates 4.4.1-2.3ubuntu2.4 amd64
isc-dhcp-relay/jammy-updates 4.4.1-2.3ubuntu2.4 amd64
isc-dhcp-server-ldap/jammy-updates 4.4.1-2.3ubuntu2.4 amd64
isc-dhcp-server/jammy-updates,now 4.4.1-2.3ubuntu2.4 amd64 [installed]
kea-dhcp-ddns-server/jammy 2.0.2-1 amd64
kea-dhcp4-server/jammy 2.0.2-1 amd64
kea-dhcp6-server/jammy 2.0.2-1 amd64
libnet-dhcp-perl/jammy 0.696+dfsg-1 all
libnet-dhcpv6-duid-parser-perl/jammy 1.01-2.1 all
librust-dhcp4r-dev/jammy 0.2.0-1 amd64
libtext-dhcpleases-perl/jammy 1.0-2.1 all
neutron-dhcp-agent/jammy-updates 2:20.2.0-0ubuntu1 all
opendrim-lmp-dhcp/jammy 1.0.0-0ubuntu2 amd64
python3-isc-dhcp-leases/jammy 0.9.1-2 all
udhcpc/jammy 1:1.30.1-7ubuntu3 amd64
udhcpd/jammy 1:1.30.1-7ubuntu3 amd64
wide-dhcpv6-client/jammy 20080615-23build1 amd64
wide-dhcpv6-relay/jammy 20080615-23build1 amd64
wide-dhcpv6-server/jammy 20080615-23build1 amd64
dnsuser@ps-dns-01:~$
###


Goal:

  1.  HA DNS and DHCP (failover / fail back)
  2.  DDNS updates from registered DHCP clients for PTR and A records (ipv4 
only for now)

Issues:

  1.  Getting flooding in /var/log/syslog , every update ..

###
Apr 25 14:51:34 ps-dns-02 dhcpd[202599]: DHCPACK on 10.89.132.129 to 
00:50:56:97:2b:f7 (op-web2) via 10.89.132.1
Apr 25 14:51:34 ps-dns-02 dhcpd[202599]: bind update on 10.89.132.129 from 
dhcpfailover rejected: incoming update is less critical than outgoing update
Apr 25 14:51:34 ps-dns-02 dhcpd[202599]: Unable to add forward map from 
op-web2.ps.labs.local to 10.89.132.129: REFUSED
Apr 25 14:51:35 ps-dns-02 dhcpd[202599]: DHCPREQUEST for 10.89.132.130 from 
00:50:56:97:df:98 (easytravel) via ens160
Apr 25 14:51:35 ps-dns-02 dhcpd[202599]: DHCPACK on 10.89.132.130 to 
00:50:56:97:df:98 (easytravel) via ens160
Apr 25 14:51:35 ps-dns-02 dhcpd[202599]: DHCPREQUEST for 10.89.132.130 from 
00:50:56:97:df:98 (easytravel) via 10.89.132.1
Apr 25 14:51:35 ps-dns-02 dhcpd[202599]: DHCPACK on 10.89.132.130 to 
00:50:56:97:df:98 (easytravel) via 10.89.132.1
Apr 25 14:51:35 ps-dns-02 dhcpd[202599]: bind update on 10.89.132.130 from 
dhcpfailover rejected: incoming update is less critical than outgoing update
Apr 25 14:51:35 ps-dns-02 dhcpd[202599]: bind update on 10.89.132.130 from 
dhcpfailover rejected: incoming update is less critical than outgoing update
Apr 25 14:51:35 ps-dns-02 dhcpd[202599]: Unable to add forward map from 
easytravel.ps.labs.local to 10.89.132.130: REFUSED
Apr 25 14:51:38 ps-dns-02 named[184617]: client @0x7f20082400b8 
10.89.132.90#50112 (mdbrtr-cisco-assist-00-ps-labs-local-svc): query (cache) 
'mdbrtr-cisco-assist-00-ps-labs-local-svc/AAAA/IN' denied (allow-query-cache 
did not match)
Apr 25 14:51:39 ps-dns-02 dhcpd[202599]: reuse_lease: lease age 122 (secs) 
under 25% threshold, reply with unaltered, existing lease for 10.89.135.132
Apr 25 14:51:39 ps-dns-02 dhcpd[202599]: DHCPREQUEST for 10.89.135.132 from 
00:50:56:8b:a5:85 via ens160
###
Similar posting was made with note that this would require configuration file 
review for what was / is misconfigured:  
https://dhcp-users.isc.narkive.com/KngCfNx3/rejected-incoming-update-is-less-critical-than-outgoing-update

As such below is sample of zone and DHCP /DNS configuration.

I read through documents  https://kb.isc.org/docs/aa-01588   But did not see 
where their is misconfiguration in my configurations.


 cat /etc/dhcp/dhcpd.conf

ps-dns-01       ps-dns-02
# option definitions common to all supported networks...
option domain-name "ps.labs.local";
option domain-search "ps.labs.local";
option domain-name-servers 10.89.100.152, 10.89.100.153;
option time-offset -6;
option ntp-servers 10.89.66.1;
option time-servers 10.89.66.1;
#ddns-domainname "ps.labs.local";
default-lease-time 600;
max-lease-time 7200;


# Failover declaration
failover peer "dhcpfailover" {
        primary;        # primary server declaration
        address 10.89.100.152;
        port 647;
        peer address 10.89.100.153;
    peer port 647;
    max-response-delay 60;
    max-unacked-updates 10;
    mclt 3600;
    split 128;
    load balance max seconds 3;
}


key pslabslocal {
        secret cHNsYWJzbG9jYWw=;
        algorithm hmac-md5;
        }

# The ddns-updates-style parameter controls whether or not the server will
# 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.)
ddns-update-style standard;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
#log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology. This is for local NIC 
listening to dhcp broadcasts.
subnet 10.89.100.0 netmask 255.255.255.0 {
}

# ps_labs_local_infrastructure
subnet 10.89.128.0 netmask 255.255.255.0 {
}

# hx06 dynamic
subnet 10.89.130.0 netmask 255.255.255.0 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.130.1;
    pool {
        failover peer "dhcpfailover";
        range 10.89.130.10 10.89.130.254;
    }
}

# hx07 dynamic
subnet 10.89.132.0 netmask 255.255.255.0 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.132.1;
    pool {
        failover peer "dhcpfailover";
        range 10.89.132.10 10.89.132.254;
    }
}

# UCSX dynamic
subnet 10.89.134.0 netmask 255.255.255.0 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.134.1;
    pool {
        failover peer "dhcpfailover";
        range 10.89.134.10 10.89.134.254;
    }
}

# The following three network are for Tanzu work in hx06
# Update 20221004 by JW.  Data is all static as is mgmt.  Workload is all DHCP
# subnet 10.89.135.0 netmask 255.255.255.224

# k8s-tz-data-hx06 dynamic
subnet 10.89.135.0 netmask 255.255.255.224 {
        option domain-name-servers 10.89.100.152;
        option routers 10.89.135.1;
        pool {
                failover peer "dhcpfailover";
                range 10.89.135.2 10.89.135.30;
                }
        }

# k8s-tz-workload-hx06 dynamic
subnet 10.89.135.32 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.33;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.34 10.89.135.63;
    }
}

# k8s-tz-mgmt-hx06 dynamic
subnet 10.89.135.64 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.65;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.66 10.89.135.94;
    }
}

# k8s-ocp-data-hx06
subnet 10.89.135.96 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.97;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.98 10.89.135.126;
    }
}

# k8s-ocp-workload-hx06
subnet 10.89.135.128 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.129;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.130 10.89.135.158;
    }
}

# k8s-rke-mgmt-hx06
subnet 10.89.135.160 netmask 255.255.255.224 {
        option domain-name-servers 10.89.100.152;
        option routers 10.89.135.161;
        pool {
                failover peer "dhcpfailover";
                range 10.89.135.162 10.89.135.190;
                }
        # ocpbastion
        host ocpbastion {
                hardware ethernet 00:50:56:8b:db:a4;
                fixed-address 10.89.135.190;
                }
        }

# k8s-rke-data-hx06
subnet 10.89.135.192 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.193;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.194 10.89.135.222;
    }
}

# k8s-rke-workload-hx06
subnet 10.89.135.224 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.225;
    option routers 10.89.135.193;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.226 10.89.135.253;
    }
}


# Host reservations
    host tanzuprod-service-control-plane-bbwwb {
        hardware ethernet 00:50:56:8b:71:bf;
        fixed-address 10.89.135.48;
    }
<snip>
    host tanzuprod-workload-control-plane-zvm6t {
        hardware ethernet 00:50:56:8b:75:83;
        fixed-address 10.89.135.50;
    }

# DV Presales Lab
zone ps.labs.local. {
        primary 10.89.100.152;
        key pslabslocal;
        }

# option definitions common to all supported networks...
option domain-name "ps.labs.local";
option domain-search "ps.labs.local";
option domain-name-servers 10.89.100.152, 10.89.100.153;
option time-offset -6;
option ntp-servers 10.89.66.1;
option time-servers 10.89.66.1;
#ddns-domainname "ps.labs.local";
default-lease-time 600;
max-lease-time 7200;


# Failover declaration
failover peer "dhcpfailover" {
        secondary;      # secondary server declaration
        address 10.89.100.153;
        port 647;
        peer address 10.89.100.152;
    peer port 647;
    max-response-delay 60;
    max-unacked-updates 10;
    load balance max seconds 3;
}


key pslabslocal {
        secret cHNsYWJzbG9jYWw=;
        algorithm hmac-md5;
        }

# The ddns-updates-style parameter controls whether or not the server will
# 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.)
ddns-update-style standard;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
#log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology. This is for local NIC 
listening to dhcp broadcasts.
subnet 10.89.100.0 netmask 255.255.255.0 {
}

# ps_labs_local_infrastructure
subnet 10.89.128.0 netmask 255.255.255.0 {
}

# hx06 dynamic
subnet 10.89.130.0 netmask 255.255.255.0 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.130.1;
    pool {
        failover peer "dhcpfailover";
        range 10.89.130.10 10.89.130.254;
    }
}

# hx07 dynamic
subnet 10.89.132.0 netmask 255.255.255.0 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.132.1;
    pool {
        failover peer "dhcpfailover";
        range 10.89.132.10 10.89.132.254;
    }
}

# UCSX dynamic
subnet 10.89.134.0 netmask 255.255.255.0 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.134.1;
    pool {
        failover peer "dhcpfailover";
        range 10.89.134.10 10.89.134.254;
    }
}

# The following three network are for Tanzu work in hx06
# Update 20221004 by JW.  Data is all static as is mgmt.  Workload is all DHCP
# subnet 10.89.135.0 netmask 255.255.255.224

# k8s-tz-data-hx06 dynamic
subnet 10.89.135.0 netmask 255.255.255.224 {
        ddns-updates on;
        option domain-name-servers 10.89.100.152;
        option routers 10.89.135.1;
        pool {
                failover peer "dhcpfailover";
                range 10.89.135.2 10.89.135.30;
                }
        }

# k8s-tz-workload-hx06 dynamic
subnet 10.89.135.32 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.33;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.34 10.89.135.63;
    }
}

# k8s-tz-mgmt-hx06 dynamic
subnet 10.89.135.64 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.65;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.66 10.89.135.94;
    }
}

# k8s-ocp-data-hx06
subnet 10.89.135.96 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.97;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.98 10.89.135.126;
    }
}

# k8s-ocp-workload-hx06
subnet 10.89.135.128 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.129;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.130 10.89.135.158;
    }
}

# k8s-rke-mgmt-hx06
subnet 10.89.135.160 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.161;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.162 10.89.135.190;
    }
}

# k8s-rke-data-hx06
subnet 10.89.135.192 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.152;
    option routers 10.89.135.193;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.194 10.89.135.222;
    }
}

# k8s-rke-workload-hx06
subnet 10.89.135.224 netmask 255.255.255.224 {
    option domain-name-servers 10.89.100.225;
    option routers 10.89.135.193;
    pool {
        failover peer "dhcpfailover";
        range 10.89.135.226 10.89.135.253;
    }
}

# Host reservations
    host tanzuprod-service-control-plane-bbwwb {
        hardware ethernet 00:50:56:8b:71:bf;
        fixed-address 10.89.135.48;
    }
<snip>
    host tanzuprod-workload-control-plane-zvm6t {
        hardware ethernet 00:50:56:8b:75:83;
        fixed-address 10.89.135.50;
    }

# DV Presales Lab
zone ps.labs.local. {
        primary 10.89.100.152;
        key pslabslocal;
        }
dnsuser@ps-dns-02:~$




DDNS

cat /etc/bind/named.conf

ps-dns-01       ps-dns-02
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
server 10.89.9.10 {
        };
server 10.89.9.107 {
        };
key pslabslocal {
        algorithm hmac-md5;
        secret "c<snip>w=";
        };

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
key pslabslocal {
        algorithm hmac-md5;
        secret "c<snip>w=";
        };
server 10.89.100.153 {
        transfer-format many-answers;
        keys {
                pslabslocal;
                };
        };

" /etc/bind/named.conf.options"
        listen-on-v6 { any; };
        forwarders {
                10.89.9.10;
                10.89.9.107;
                };
        recursion yes;
        allow-query {
                any;
                };
        allow-recursion {
                any;
                };
};
"/etc/bind/named.conf.options"
options {
        directory "/var/cache/bind";


        listen-on-v6 { any; };
};
"/etc/bind/named.conf.local"
zone "ps.labs.local" {
        type master;
        file "/var/lib/bind/ps.labs.local.hosts";
        also-notify {
                10.89.100.153;
                };
        allow-transfer {
                10.89.100.153;
                };
        };
zone "128.89.10.in-addr.arpa" {
        type master;
        file "/var/lib/bind/10.89.128.rev";
        also-notify {
                10.89.100.153;
                };
        allow-transfer {
                10.89.100.153;
                };
        };
zone "129.89.10.in-addr.arpa" {
        type master;
        file "/var/lib/bind/10.89.129.rev";
        also-notify {
                10.89.100.153;
                };
        allow-transfer {
                10.89.100.153;
                };
        };
<snip other zones but all structured same>
"/etc/bind/named.conf.local"
zone "130.89.10.in-addr.arpa" {
        type slave;
        masters {
                10.89.100.152;
                };
        allow-transfer {
                10.89.100.152;
                };
        file "/var/lib/bind/10.89.130.rev";
        };
zone "ps.labs.local" {
        type slave;
        masters {
                10.89.100.152;
                };
        allow-transfer {
                10.89.100.152;
                };
        file "/var/lib/bind/ps.labs.local.hosts";
        };
zone "128.89.10.in-addr.arpa" {
        type slave;
        masters {
                10.89.100.152;
                };
        allow-transfer {
                10.89.100.152;
                };
        file "/var/lib/bind/10.89.128.rev";
        };
<snip other zones but all structured same>
"/etc/bind/named.conf.default-zones"

// prime the server with knowledge of the root servers
zone "." {
        type hint;
        file "/usr/share/dns/root.hints";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
        type master;
        file "/etc/bind/db.local";
        also-notify {
                10.89.100.153;
                };
        allow-transfer {
                10.89.100.153;
                };
};

zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
        also-notify {
                10.89.100.153;
                };
        allow-transfer {
                10.89.100.153;
                };
};

zone "0.in-addr.arpa" {
        type master;
        file "/etc/bind/db.0";
        also-notify {
                10.89.100.153;
                };
        allow-transfer {
                10.89.100.153;
                };
};

zone "255.in-addr.arpa" {
        type master;
        file "/etc/bind/db.255";
        also-notify {
                10.89.100.153;
                };
        allow-transfer {
                10.89.100.153;
                };
};



"/etc/bind/named.conf.default-zones"
// prime the server with knowledge of the root servers
zone "." {
        type hint;
        file "/usr/share/dns/root.hints";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
        type master;
        file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
        type master;
        file "/etc/bind/db.255";
};



Questions:

  1.  What is missconfigured to get flood of events about DHCP cache?
  2.  Why are not DHCP leases pushing updates to DNS to create recoreds (A and 
PTR)
  3.  I see almost no logs as I boot up test Vm. and get lease.. as to attempts 
to create from DHCP to DNS ..  Where are the logs for these to track down DDNS 
communication.
  4.  DNS server on replica is not a flat file but a binary hash replica.  In 
event of failover (Ex: ps-dns-01) goes offline..) , how would DHCP push via 
DDNS update records of server?




Thanks,


Penguinpages


-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<https://lists.isc.org/pipermail/dhcp-users/attachments/20230425/82d1f210/attachment.htm>

------------------------------

Subject: Digest Footer

_______________________________________________
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.

dhcp-users mailing list
dhcp-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/dhcp-users


------------------------------

End of dhcp-users Digest, Vol 173, Issue 2
******************************************

Reply via email to