Hi Everybody!
I am testing kea 1.1.0 at the moment in a virtual environment Used Nameserver is bind-9.10.4-4.P6.fc25.x86_64 (most recent Bind9 available for Fedora 25)
Server and most of the clients are running Fedora 25 x86_64.
If a client (e.g. testclient1) updates its ipv4 dns record in the zone called "vmintern" , then everything works properly.
testclient1 gets an "A" record in the "vmintern." zone and as well one in reverse zone xxx.xxx.xxx.xxx.in-addr.arpa.
but then the same client gets an ipv6 address from the pool and updating the "vmintern" zone is not possible.
If ipv6 was first it's just the other way 'round with ipv4.
A Test Windows Client (Windows 8.1. professional) shows the same behaviour.
As I've seen in the logs each ddns Update request from the same machine seems to have a different DHCID .
This seems to be the problem, why the second ncr is rejected.
I then tried to set the "qualifying-suffix" in the ipv6 dhcp-ddns section to ipv6.vmintern.
Behaviour changes then:
The Windows client (Hostname : wintest81) gets entries in DNS as wintest81.vmintern for ipv4 and wintest81.ip6.vmintern
The Linux Clients (Fedora25) behaviour changes as follows:
IPv4 gets its normal record A testclient1 but ipv6 entry is a generated one only AAAA host.fd20-db8-XXXXXXXX.ip6.vmintern
entry.
How is it possible to get an A (ipv4) and AAAA (ipv6) forward DNS Entry for the same machine, like it is possible when you edit the zone-file manually.
(e.g. "host google.com" provides both at one) ?
kea and Bind are running on the same (virtual) machine
What am I doing wrong ? Can you help me?
Enclosed please find my kea.conf with identical qualifying suffix in ipv4 and ipv6 config.
If any other info is needed, please tell me.
Thanks in advance
buggy
# This is a basic configuration for the Kea DHCPv4 and DHCPv6 servers.
# Subnet declarations are commented out and no interfaces are listed.
# Therefore, the servers will not listen or respond to any queries.
# The basic configuration must be extended to specify interfaces on
# which the servers should listen. Also, subnets and options must be
# declared.
{
# DHCPv4 configuration starts here.
# "override-client-update": true,
# "replace-client-name": "when-not-present",
"Dhcp4":
{
"dhcp-ddns": {
"enable-updates": true,
"override-no-update": true,
"override-client-update": true,
"replace-client-name": "when-not-present",
"generated-prefix": "host",
"qualifying-suffix": "vmintern."
},
"option-data": [
{
"name": "domain-name-servers",
"code": 6,
"space": "dhcp4",
"csv-format": true,
"data": "192.168.20.230, 194.25.2.129"
},
],
# Add names of interfaces to listen on.
"interfaces-config": {
"interfaces": [ "ens3" ]
},
# Use Memfile lease database backend to store leases in a CSV file.
"lease-database": {
"type": "memfile"
},
# Setup reclamation of the expired leases and leases affinity.
# Expired leases will be reclaimed every 10 seconds. Every 25
# seconds reclaimed leases, which have expired more than 3600
# seconds ago, will be removed. The limits for leases reclamation
# are 100 leases or 250 ms for a single cycle. A warning message
# will be logged if there are still expired leases in the
# database after 5 consecutive reclamation cycles.
"expired-leases-processing": {
"reclaim-timer-wait-time": 10,
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"unwarned-reclaim-cycles": 5
},
# Global (inherited by all subnets) lease lifetime is mandatory parameter.
"valid-lifetime": 4000,
# Below an example of the simple subnet declaration. Uncomment to
# enable it. This is a list, denoted with [ ], of structure, denoted
# with { }. Each structure describes a single subnet and may have
# several parameters. One of those parameters is "pools" that is
# also a list of structures.
"subnet4": [
{ "subnet": "192.168.20.0/16",
"pools": [ { "pool": "192.168.20.1 - 192.168.20.200" } ],
"reservations": [
{
"hw-address": "52:54:00:2F:B8:D5",
"ip-address": "192.168.20.222"
}
]
}
]
},
# DHCPv6 configuration starts here.
"Dhcp6":
{
"dhcp-ddns": {
"enable-updates": true,
"override-no-update": true,
"override-client-update": true,
"replace-client-name": "when-not-present",
"generated-prefix": "host",
"qualifying-suffix": "vmintern."
},
# Add names of interfaces to listen on.
"interfaces-config": {
"interfaces": [ "ens3/fd20:db8:1::230" ]
},
"option-data": [
{
"name": "unicast",
"data": "fd20:db8:1::230"
},
{
"name": "dns-servers",
"code": 23,
"space": "dhcp6",
"csv-format": true,
"data": "fd20:db8:1::230, 2003:180:2:2000::1:0:53"
},
{
"name": "domain-search",
"code": 24,
"space": "dhcp6",
"csv-format": true,
"data": "ipv6.vmintern, vmintern"
}
],
# Use Memfile lease database backend to store leases in a CSV file.
"lease-database": {
"type": "memfile"
},
# Setup reclamation of the expired leases and leases affinity.
# Expired leases will be reclaimed every 10 seconds. Every 25
# seconds reclaimed leases, which have expired more than 3600
# seconds ago, will be removed. The limits for leases reclamation
# are 100 leases or 250 ms for a single cycle. A warning message
# will be logged if there are still expired leases in the
# database after 5 consecutive reclamation cycles.
"expired-leases-processing": {
"reclaim-timer-wait-time": 10,
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"unwarned-reclaim-cycles": 5
},
# Addresses will be assigned with preferred and valid lifetimes
# being 3000 and 4000, respectively. Client is told to start
# renewing after 1000 seconds. If the server does not respond
# after 2000 seconds since the lease was granted, client is supposed
# to start REBIND procedure (emergency renewal that allows switching
# to a different server).
"preferred-lifetime": 3000,
"valid-lifetime": 4000,
"renew-timer": 1000,
"rebind-timer": 2000,
# The following list defines subnets. Uncomment to enable them.
"subnet6": [
{
"subnet": "fd20:db8:1::/64",
"interface": "ens3",
"pools": [
{
"pool": "fd20:db8:1::1000 - fd20:db8:1::ffff"
}
],
"reservations": [
{
"duid":
"00:04:4E:60:70:C3:67:92:B9:21:57:C0:6B:7C:A0:64:A5:7F",
"ip-addresses": [ "fd20:db8:1::2220" ]
},
{
"hw-address": "52:54:00:2F:b8:d5",
"ip-addresses": [ "fd20:db8:1::0220" ]
},
{
"hw-address": "52:54:00:46:FF:FF",
"ip-addresses": [ "fd20:db8:1::33" ]
},
]
}
# { "subnet": "2001:db8:2::/64",
# "pools": [ { "pool": "2001:db8:2::/80" } ] },
# { "subnet": "2001:db8:3::/64",
# "pools": [ { "pool": "2001:db8:3::/80" } ] },
# { "subnet": "2001:db8:4::/64",
# "pools": [ { "pool": "2001:db8:4::/80" } ] }
]
},
# DHCP DDNS configuration starts here.
"DhcpDdns":
{
"ip-address": "127.0.0.1",
"port": 53001,
"tsig-keys": [
{ "name": "dhcpd-key",
"algorithm": "HMAC-MD5",
"secret": "XXXXXXXdeletedXXXXXX"
}
],
"forward-ddns" : {
"ddns-domains": [
{
"name": "vmintern.",
"key-name": "",
"dns-servers": [
{ "ip-address": "127.0.0.1" },
{ "ip-address": "::1" },
]
}
]
},
"reverse-ddns" : {
"ddns-domains": [
{
"name": "20.168.192.in-addr.arpa.",
"key-name": "",
"dns-servers": [
{ "ip-address": "127.0.0.1" }
]
},
{
"name": "1.0.0.0.8.b.d.0.0.2.d.f.ip6.arpa.",
"key-name": "",
"dns-servers": [
{ "ip-address": "::1" }
]
}
]
}
},
# Logging configuration starts here. It tells Kea servers to store
# all log messages (on severity INFO or more) in a file.
# debuglevel variable is used on DEBUG level only.
"Logging":
{
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [
{
"output": "/var/log/kea-dhcp4.log"
}
],
"severity": "DEBUG",
"debuglevel": 99
},
{
"name": "kea-dhcp6",
"output_options": [
{
"output": "/var/log/kea-dhcp6.log"
}
],
"severity": "DEBUG",
"debuglevel": 99
},
{
"name": "kea-dhcp-ddns",
"output_options": [
{
"output": "/var/log/kea-ddns.log"
}
],
"severity": "DEBUG",
"debuglevel": 99
}
]
}
}
_______________________________________________ Kea-users mailing list [email protected] https://lists.isc.org/mailman/listinfo/kea-users
