[Kea-users] New IP address after each reboot

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[Kea-users] New IP address after each reboot

Anton Starikov

Good afternoon!

Sorry for my english.

 

There is a problem with Kea Dhcp4 1.6.3 (1.8 is the same).

After each reboot, the client (Ubuntu, Arch) gets a new ip address from KeaDhcp. As I understand it, this is due to the fact that Kea, after receiving DHCPRELEASE from the client, does not immediately release the address (although it adds a line with expire = 0 to the lease-database), but does it after a while.

As an experiment, I limited the address pool to two ip. And with each reboot (interval ~ 20 seconds), the client received different addresses in a circle.

Previously, Mikrotik was used as DHCP, there was no such problem. The client rebooted and, if the address was still free, he received it back.

Is there any way to force Kea to immediately release such addresses?

 

I tried to change the settings described in the documentation in section "10. Lease Expiration", it didn't help.

 

 

 

 

{

  "Dhcp4": {

    "loggers": [

        {

            "name": "kea-dhcp4",

            "output_options": [

                {

                    "output": "/var/log/kea-debug.log",

                    "maxver": 8,

                    "maxsize": 204800,

                    "flush": true,

                    "pattern": "%d{%j %H:%M:%S.%q} %c %m\n"

                }

            ],

            "severity": "DEBUG",

            "debuglevel": 99

        },

        {

            "name": "kea-dhcp4.commands",

            "output_options": [

                {

                    "output": "syslog"

                }

            ],

            "severity": "DEBUG",

            "debuglevel": 99

        },

        {

            "name": "kea-dhcp4.http",

            "output_options": [

                {

                    "output": "syslog"

                }

            ],

            "severity": "DEBUG",

            "debuglevel": 99

        },

        {

            "name": "kea-dhcp4.callouts",

            "output_options": [

                {

                    "output": "syslog"

                }

            ],

            "severity": "DEBUG",

            "debuglevel": 99

        }],

    "authoritative": false,

    "boot-file-name": "",

    "calculate-tee-times": true,

    "client-classes": [

      {

        "boot-file-name": "",

        "name": "pxe",

        "next-server": "10.0.0.12",

        "only-if-required": true,

        "option-data": [

          {

            "always-send": false,

            "code": 66,

            "csv-format": true,

            "data": "10.0.0.12",

            "name": "tftp-server-name",

            "space": "dhcp4"

          },

          {

            "always-send": false,

            "code": 67,

            "csv-format": true,

            "data": "grldr",

            "name": "boot-file-name",

            "space": "dhcp4"

          }

        ],

        "option-def": [ ],

        "server-hostname": "",

        "test": "member('ALL')"

      },

      {

        "boot-file-name": "",

        "name": "voip",

        "next-server": "10.0.0.10",

        "only-if-required": true,

        "option-data": [

          {

            "always-send": false,

            "code": 66,

            "csv-format": true,

            "data": "10.0.0.10",

            "name": "tftp-server-name",

            "space": "dhcp4"

          },

          {

            "always-send": false,

            "code": 67,

            "csv-format": true,

            "data": "grldr1",

            "name": "boot-file-name",

            "space": "dhcp4"

          }

        ],

        "option-def": [ ],

        "server-hostname": "",

        "test": "member('ALL')"

      }

    ],

    "control-socket": {

      "socket-name": "/tmp/kea-dhcp4-ctrl.sock",

      "socket-type": "unix"

    },

    "decline-probation-period": 86400,

    "dhcp-ddns": {

      "enable-updates": false,

      "generated-prefix": "myhost",

      "max-queue-size": 1024,

      "ncr-format": "JSON",

      "ncr-protocol": "UDP",

      "override-client-update": false,

      "override-no-update": false,

      "qualifying-suffix": "",

      "replace-client-name": "never",

      "sender-ip": "0.0.0.0",

      "sender-port": 0,

      "server-ip": "127.0.0.1",

      "server-port": 53001

    },

    "dhcp-queue-control": {

      "capacity": 500,

      "enable-queue": false,

      "queue-type": "kea-ring4"

    },

    "dhcp4o6-port": 0,

    "echo-client-id": true,

    "expired-leases-processing": {

      "flush-reclaimed-timer-wait-time": 5,

      "hold-reclaimed-time": 1800,

      "max-reclaim-leases": 100,

      "max-reclaim-time": 250,

      "reclaim-timer-wait-time": 10,

      "unwarned-reclaim-cycles": 5

    },

    "hooks-libraries": [

      {

        "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so"

      }

    ],

    "host-reservation-identifiers": [ "hw-address"],

    "interfaces-config": {

      "interfaces": [ "*" ],

      "re-detect": true

    },

    "lease-database": {

      "name": "/var/lib/kea/dhcp4.leases",

      "persist": true,

      "type": "memfile"

    },

    "match-client-id": false,

    "next-server": "0.0.0.0",

    "option-data": [

      {

        "always-send": false,

        "code": 6,

        "csv-format": true,

        "data": "10.0.0.1",

        "name": "domain-name-servers",

        "space": "dhcp4"

      },

      {

        "always-send": false,

        "code": 15,

        "csv-format": true,

        "data": "lab.winitlab.com",

        "name": "domain-name",

        "space": "dhcp4"

      },

      {

        "always-send": false,

        "code": 119,

        "csv-format": false,

        "data": "057465636F6D046E6E6F76027275000A7465636F6D67726F757002727500",

        "name": "domain-search",

        "space": "dhcp4"

      }

    ],

    "option-def": [ ],

    "t1-percent": 0.5,

    "t2-percent": 0.875,

    "reservation-mode": "all",

    "sanity-checks": {

      "lease-checks": "warn"

    },

    "server-hostname": "",

    "server-tag": "",

    "shared-networks": [ ],

    "subnet4": [

      {

        "4o6-interface": "",

        "4o6-interface-id": "",

        "4o6-subnet": "",

        "authoritative": false,

        "calculate-tee-times": true,

        "id": 18,

        "match-client-id": false,

        "next-server": "1.1.1.1",

        "option-data": [

          {

            "always-send": false,

            "code": 3,

            "csv-format": true,

            "data": "10.0.50.1",

            "name": "routers",

            "space": "dhcp4"

          },

          {

            "always-send": false,

            "code": 6,

            "csv-format": true,

            "data": "10.200.0.1",

            "name": "domain-name-servers",

            "space": "dhcp4"

          },

          {

            "always-send": false,

            "code": 15,

            "csv-format": true,

            "data": "bncvbn.nnn",

            "name": "domain-name",

            "space": "dhcp4"

          }

        ],

        "pools": [

          {

            "option-data": [ ],

            "pool": "10.0.50.10-10.0.50.80"

          }

        ],

        "relay": {

          "ip-addresses": [ "10.0.50.1" ]

        },

        "reservation-mode": "all",

        "reservations": [],

        "subnet": "10.0.50.0/24",

        "t1-percent": 0.5,

        "t2-percent": 0.875,

        "valid-lifetime": 86400

      }

    ],

    "t1-percent": 0.5,

    "t2-percent": 0.875,

    "valid-lifetime": 4000

  }

}

 


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

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.

Kea-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/kea-users
Reply | Threaded
Open this post in threaded view
|

Re: [Kea-users] New IP address after each reboot

Peter Davies

Hi Anton,

   Have you considered dropping the DHCPRELEASE packets instead?

You can read how this could be done in Gitlab #606 "Drop packets in DROP class" at https://gitlab.isc.org/isc-projects/kea/-/issues/606


Please refer to the Kea Arm for a discussion on the "DROP" class.


Kind Regards Peter




From: Kea-users <[hidden email]> on behalf of Anton Starikov <[hidden email]>
Sent: 18 October 2020 19:02
To: [hidden email] <[hidden email]>
Subject: [Kea-users] New IP address after each reboot
 

Good afternoon!

Sorry for my english.

 

There is a problem with Kea Dhcp4 1.6.3 (1.8 is the same).

After each reboot, the client (Ubuntu, Arch) gets a new ip address from KeaDhcp. As I understand it, this is due to the fact that Kea, after receiving DHCPRELEASE from the client, does not immediately release the address (although it adds a line with expire = 0 to the lease-database), but does it after a while.

As an experiment, I limited the address pool to two ip. And with each reboot (interval ~ 20 seconds), the client received different addresses in a circle.

Previously, Mikrotik was used as DHCP, there was no such problem. The client rebooted and, if the address was still free, he received it back.

Is there any way to force Kea to immediately release such addresses?

 

I tried to change the settings described in the documentation in section "10. Lease Expiration", it didn't help.

 

 

 

 

{

  "Dhcp4": {

    "loggers": [

        {

            "name": "kea-dhcp4",

            "output_options": [

                {

                    "output": "/var/log/kea-debug.log",

                    "maxver": 8,

                    "maxsize": 204800,

                    "flush": true,

                    "pattern": "%d{%j %H:%M:%S.%q} %c %m\n"

                }

            ],

            "severity": "DEBUG",

            "debuglevel": 99

        },

        {

            "name": "kea-dhcp4.commands",

            "output_options": [

                {

                    "output": "syslog"

                }

            ],

            "severity": "DEBUG",

            "debuglevel": 99

        },

        {

            "name": "kea-dhcp4.http",

            "output_options": [

                {

                    "output": "syslog"

                }

            ],

            "severity": "DEBUG",

            "debuglevel": 99

        },

        {

            "name": "kea-dhcp4.callouts",

            "output_options": [

                {

                    "output": "syslog"

                }

            ],

            "severity": "DEBUG",

            "debuglevel": 99

        }],

    "authoritative": false,

    "boot-file-name": "",

    "calculate-tee-times": true,

    "client-classes": [

      {

        "boot-file-name": "",

        "name": "pxe",

        "next-server": "10.0.0.12",

        "only-if-required": true,

        "option-data": [

          {

            "always-send": false,

            "code": 66,

            "csv-format": true,

            "data": "10.0.0.12",

            "name": "tftp-server-name",

            "space": "dhcp4"

          },

          {

            "always-send": false,

            "code": 67,

            "csv-format": true,

            "data": "grldr",

            "name": "boot-file-name",

            "space": "dhcp4"

          }

        ],

        "option-def": [ ],

        "server-hostname": "",

        "test": "member('ALL')"

      },

      {

        "boot-file-name": "",

        "name": "voip",

        "next-server": "10.0.0.10",

        "only-if-required": true,

        "option-data": [

          {

            "always-send": false,

            "code": 66,

            "csv-format": true,

            "data": "10.0.0.10",

            "name": "tftp-server-name",

            "space": "dhcp4"

          },

          {

            "always-send": false,

            "code": 67,

            "csv-format": true,

            "data": "grldr1",

            "name": "boot-file-name",

            "space": "dhcp4"

          }

        ],

        "option-def": [ ],

        "server-hostname": "",

        "test": "member('ALL')"

      }

    ],

    "control-socket": {

      "socket-name": "/tmp/kea-dhcp4-ctrl.sock",

      "socket-type": "unix"

    },

    "decline-probation-period": 86400,

    "dhcp-ddns": {

      "enable-updates": false,

      "generated-prefix": "myhost",

      "max-queue-size": 1024,

      "ncr-format": "JSON",

      "ncr-protocol": "UDP",

      "override-client-update": false,

      "override-no-update": false,

      "qualifying-suffix": "",

      "replace-client-name": "never",

      "sender-ip": "0.0.0.0",

      "sender-port": 0,

      "server-ip": "127.0.0.1",

      "server-port": 53001

    },

    "dhcp-queue-control": {

      "capacity": 500,

      "enable-queue": false,

      "queue-type": "kea-ring4"

    },

    "dhcp4o6-port": 0,

    "echo-client-id": true,

    "expired-leases-processing": {

      "flush-reclaimed-timer-wait-time": 5,

      "hold-reclaimed-time": 1800,

      "max-reclaim-leases": 100,

      "max-reclaim-time": 250,

      "reclaim-timer-wait-time": 10,

      "unwarned-reclaim-cycles": 5

    },

    "hooks-libraries": [

      {

        "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so"

      }

    ],

    "host-reservation-identifiers": [ "hw-address"],

    "interfaces-config": {

      "interfaces": [ "*" ],

      "re-detect": true

    },

    "lease-database": {

      "name": "/var/lib/kea/dhcp4.leases",

      "persist": true,

      "type": "memfile"

    },

    "match-client-id": false,

    "next-server": "0.0.0.0",

    "option-data": [

      {

        "always-send": false,

        "code": 6,

        "csv-format": true,

        "data": "10.0.0.1",

        "name": "domain-name-servers",

        "space": "dhcp4"

      },

      {

        "always-send": false,

        "code": 15,

        "csv-format": true,

        "data": "lab.winitlab.com",

        "name": "domain-name",

        "space": "dhcp4"

      },

      {

        "always-send": false,

        "code": 119,

        "csv-format": false,

        "data": "057465636F6D046E6E6F76027275000A7465636F6D67726F757002727500",

        "name": "domain-search",

        "space": "dhcp4"

      }

    ],

    "option-def": [ ],

    "t1-percent": 0.5,

    "t2-percent": 0.875,

    "reservation-mode": "all",

    "sanity-checks": {

      "lease-checks": "warn"

    },

    "server-hostname": "",

    "server-tag": "",

    "shared-networks": [ ],

    "subnet4": [

      {

        "4o6-interface": "",

        "4o6-interface-id": "",

        "4o6-subnet": "",

        "authoritative": false,

        "calculate-tee-times": true,

        "id": 18,

        "match-client-id": false,

        "next-server": "1.1.1.1",

        "option-data": [

          {

            "always-send": false,

            "code": 3,

            "csv-format": true,

            "data": "10.0.50.1",

            "name": "routers",

            "space": "dhcp4"

          },

          {

            "always-send": false,

            "code": 6,

            "csv-format": true,

            "data": "10.200.0.1",

            "name": "domain-name-servers",

            "space": "dhcp4"

          },

          {

            "always-send": false,

            "code": 15,

            "csv-format": true,

            "data": "bncvbn.nnn",

            "name": "domain-name",

            "space": "dhcp4"

          }

        ],

        "pools": [

          {

            "option-data": [ ],

            "pool": "10.0.50.10-10.0.50.80"

          }

        ],

        "relay": {

          "ip-addresses": [ "10.0.50.1" ]

        },

        "reservation-mode": "all",

        "reservations": [],

        "subnet": "10.0.50.0/24",

        "t1-percent": 0.5,

        "t2-percent": 0.875,

        "valid-lifetime": 86400

      }

    ],

    "t1-percent": 0.5,

    "t2-percent": 0.875,

    "valid-lifetime": 4000

  }

}

 


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

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.

Kea-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/kea-users