Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • Kea Kea
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 594
    • Issues 594
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 61
    • Merge requests 61
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • ISC Open Source ProjectsISC Open Source Projects
  • KeaKea
  • Issues
  • #181
Closed
Open
Issue created Oct 23, 2018 by Georg W.@wojtkowi

reallocate IPv6-Addr with one Host and different DUIDs not working

name: Bug report
about: Reallocate IPv6-Address not working properly with PXE (or multiple OS)

I've tried to get some help using the kea-users mailing list months ago but I didn't get a solution to this problem. For now, I compiled myself a workaround into the code to get the IPv6 leases by hw-addr and not by duid. Details following:

Description

The Kea dhcp6 daemon doesn't reallocate (active) IPv6-leases for an OS after a successful PXE IPv6 address allocation.

Configuration

(configuration file is attached)

  • lease-database: postgresql
  • hosts-database: postgresql
  • mac-sources: client-link-addr-option only
  • host-reservation-identifiers: hw-address only

To Reproduce

Steps to reproduce the behavior:

  1. Run Kea dhcpv6-daemon with: "mac-sources": ["client-link-addr-option"] and "host-reservation-identifiers": ["hw-address"] and an IPv6 host reservation with hw-address as the specific reservation-id-type
  2. boot the PXE-System (or the first OS) first, everything works fine
  3. boot another OS (e.g. Debian) with this host, daemon answers with "Sorry, no address could be allocated."

Expected behavior

In the configuration file exists a parameter called "host-reservation-identifiers". Kea uses only these specific identifier types to get host reservations from the host database. To get all active Leases of a hostsystem, Kea should use the same Method like in the reservation procedure.

If the host boots up the first time with PXE, kea gets a request, gets the host-reservation and allocate this IPv6 with its hw-address. Now the host boots up with its real OS (e.g. Debian) and kea should search for a lease like it was searching for a host-reservation.

In our case:

Kea gets the mac-address from the clients client-link-addr-option and so Kea should search for active leases by the mac-address, because of the host-reservation-identifiers option.

Environment

  • Kea version: 1.4.0 (from gitlab)
  • OS: debian stretch
  • used database back-end: postgresql
  • no hooks were used Atachements

kea-dhcp6.conf

{
"Dhcp6": {
  "interfaces-config": {
    "interfaces": [ "eth0/2001:db8::8d:37:c0:f6" ]
  },
  "control-socket": {
    "socket-type": "unix",
    "socket-name": "/tmp/kea-dhcp6-ctrl.sock"
  },
  "lease-database": {
    "type": "postgresql",
    "name": "kea",
    "user": "keauser",
    "password": "xxxxxx",
    "host": "localhost",
    "port": 5432
  },
  "hosts-database": {
    "readonly": true,
    "type": "postgresql",
    "name": "kea",
    "user": "keauser",
    "password": "xxxxxx",
    "host": "localhost",
    "port": 5432
  },
  "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
  },
        "renew-timer": 1800,
        "rebind-timer": 2880,
        "valid-lifetime": 3600,
  "mac-sources": ["client-link-addr-option"],
  "host-reservation-identifiers": [ "hw-address" ],
  "subnet6": [
    {
      "subnet": "2001:db8:0:24::/64",
      "id": 24,
      "reservations": [
      ]
    }
  ]
},

// Logging configuration starts here. Kea uses different loggers to log various
// activities. For details (e.g. names of loggers), see Chapter 18.
"Logging":
{
  "loggers": [
    {
      "name": "kea-dhcp6",
      "output_options": [
        {
          "output": "/var/log/kea/kea-dhcp6.log",
                                  "maxsize": 26214400,
                                  "maxver": 8
        }
      ],
      "severity": "DEBUG",
      "debuglevel": 99
    }
  ]
}
}

hosts-table

host_id dhcp_identifier dhcp_identifier_type ...
01 0x00163e01c01f 0 ...
02 0x... ... ...

ipv6_reservations

reservation_id address prefix_len type dhcp_iaid host_id
01 2001:db8:0:24::ff 128 0 (null) 01
02 ... ... ... ... ...

Remarks

I can push my short workaround, if you want o have a look at.

Edited Oct 24, 2018 by Georg W.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking